@smartergpt/lexrunner 1.0.0 → 1.3.0
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.
- package/CHANGELOG.md +109 -1
- package/LICENSE.md +110 -0
- package/README.mcp.md +89 -17
- package/README.md +133 -1012
- package/dist/adapters-r7_TjMwo.d.ts +333 -0
- package/dist/{api-7H7SJZIX.js → api-QBPBKYOC.js} +1 -1
- package/dist/{audit-2TZ2LU72.js → audit-5ZUBPZZX.js} +2 -2
- package/dist/{autopilot-AL5F5AUS.js → autopilot-JXO4MZ6H.js} +7 -6
- package/dist/{chunk-UZFYNSMJ.js → chunk-26SCN2LJ.js} +445 -136
- package/{src/monitoring/metrics.ts → dist/chunk-AXOAVRTU.js} +35 -100
- package/dist/{chunk-GTP4OHD7.js → chunk-R4DWK6FE.js} +2 -2
- package/dist/chunk-TPVORFSN.js +629 -0
- package/dist/{chunk-2ESYSVXG.js → chunk-V3BU2VDU.js} +7 -17
- package/dist/{chunk-Q6Y524KH.js → chunk-VAGHAQT2.js} +5 -179
- package/dist/{chunk-4RVZNLD4.js → chunk-WFN4JTZI.js} +0 -88
- package/dist/chunk-WSJEPY7T.js +5633 -0
- package/dist/cli.cjs +56133 -33969
- package/dist/cli.d.ts +6045 -259
- package/dist/cli.js +31588 -15155
- package/dist/{commandValidator-AT5OYZFC.js → commandValidator-LVEMJTZP.js} +2 -2
- package/dist/{constraints-M52FVL2X.js → constraints-V4VWCWR5.js} +2 -2
- package/dist/errors/index.cjs +879 -0
- package/dist/errors/index.d.ts +121 -0
- package/dist/errors/index.js +73 -0
- package/dist/frames/index.cjs +11992 -0
- package/dist/frames/index.d.ts +278 -0
- package/dist/frames/index.js +51 -0
- package/dist/{gateMapping-E5MGNJH5.js → gateMapping-R3RJYKMS.js} +1 -1
- package/dist/hooks/events.cjs +288 -0
- package/dist/hooks/events.d.ts +497 -0
- package/dist/hooks/events.js +242 -0
- package/dist/{jsonEnvelope-R4SWKX2N.js → jsonEnvelope-K2U5CWKU.js} +1 -1
- package/dist/{mergeTreeSimulator-X4BA647P.js → mergeTreeSimulator-QCFSOU25.js} +1 -1
- package/dist/package-schemas/behavior-rule.cjs +61 -0
- package/{.smartergpt/schemas/behavior-rule.schema.d.ts → dist/package-schemas/behavior-rule.d.ts} +8 -6
- package/dist/package-schemas/behavior-rule.js +35 -0
- package/dist/package-schemas/execution-plan-v1.cjs +69 -0
- package/{.smartergpt/schemas → dist/package-schemas}/execution-plan-v1.d.ts +7 -5
- package/dist/package-schemas/execution-plan-v1.js +42 -0
- package/dist/package-schemas/gates.cjs +45 -0
- package/{.smartergpt/schemas/gates.schema.d.ts → dist/package-schemas/gates.d.ts} +7 -5
- package/dist/package-schemas/gates.js +19 -0
- package/dist/package-schemas/runner-scope.cjs +50 -0
- package/{.smartergpt/schemas/runner.scope.schema.d.ts → dist/package-schemas/runner-scope.d.ts} +8 -6
- package/dist/package-schemas/runner-scope.js +24 -0
- package/dist/package-schemas/runner-stack.cjs +46 -0
- package/{.smartergpt/schemas/runner.stack.schema.d.ts → dist/package-schemas/runner-stack.d.ts} +7 -5
- package/dist/package-schemas/runner-stack.js +20 -0
- package/dist/{planDiff-QOK6KNB7.js → planDiff-IHLFNZUT.js} +1 -1
- package/dist/{planHistory-DQRSB2Y7.js → planHistory-GLRI356L.js} +1 -1
- package/dist/{planReview-7VB3OYKZ.js → planReview-UUMCGZJ6.js} +4 -3
- package/dist/{planViewer-UIPOSRVW.js → planViewer-TRSQVMH4.js} +4 -3
- package/dist/{sarif-XIREI5B5.js → sarif-2C6RKOUX.js} +1 -1
- package/dist/sdk/index.cjs +556 -0
- package/dist/sdk/index.d.ts +1277 -0
- package/dist/sdk/index.js +503 -0
- package/dist/{security-YDLHSMVY.js → security-OE4VLUFK.js} +2 -2
- package/dist/{signing-JJJOUGCW.js → signing-KLZYZZMP.js} +1 -1
- package/dist/types-CYMIAhy8.d.ts +266 -0
- package/dist/{verify-SCUHB3SA.js → verify-3UVMA62I.js} +1 -1
- package/mcp-server.mjs +402 -385
- package/package.json +52 -22
- package/.changes/ci-debug-added.txt +0 -1
- package/.changeset/tsconfig-solution-build.md +0 -5
- package/.editorconfig +0 -9
- package/.env.example +0 -8
- package/.github/COST_EFFICIENCY.md +0 -60
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -28
- package/.github/ISSUE_TEMPLATE/epic.yml +0 -123
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -26
- package/.github/ISSUE_TEMPLATE/issue-A1-gate-input-validation.md +0 -380
- package/.github/ISSUE_TEMPLATE/issue-B1-scope-validation.md +0 -509
- package/.github/ISSUE_TEMPLATE/issue-C1-command-whitelist.md +0 -463
- package/.github/ISSUE_TEMPLATE/subtask.yml +0 -153
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -9
- package/.github/copilot-instructions-old.md +0 -429
- package/.github/copilot-instructions.md +0 -33
- package/.github/instructions/tests.instructions.md +0 -10
- package/.github/workflows/auto-delete-merged-branches.yml +0 -103
- package/.github/workflows/benchmarks.yml +0 -72
- package/.github/workflows/ci-debug.yml +0 -33
- package/.github/workflows/ci.yml +0 -167
- package/.github/workflows/cli-smoke-test.yml +0 -345
- package/.github/workflows/copilot-setup-steps.yml +0 -20
- package/.github/workflows/frame-emission-gate.yml +0 -242
- package/.github/workflows/project-auto.yml +0 -24
- package/.github/workflows/release.yml +0 -260
- package/.github/workflows/slow-cli-tests.yml +0 -37
- package/.github/workflows/tag-guard.yml +0 -44
- package/.husky/pre-commit +0 -1
- package/.nvmrc +0 -2
- package/.prettierignore +0 -28
- package/.prettierrc.json +0 -10
- package/.smartergpt/CONTROL_DECK_VISION.md +0 -226
- package/.smartergpt/allowed-commands.json +0 -41
- package/.smartergpt/allowed-commands.strict.json +0 -56
- package/.smartergpt/deliverables/.live.md +0 -426
- package/.smartergpt/deliverables/ISSUE_STATUS_2025-12-28.md +0 -193
- package/.smartergpt/deliverables/_research/snapshot-contract-feedback/ADR_DISCUSSION.md +0 -379
- package/.smartergpt/deliverables/_research/snapshot-contract-feedback/Answer_claude-haiku.md +0 -109
- package/.smartergpt/deliverables/_research/snapshot-contract-feedback/Answer_gemini-flash.md +0 -42
- package/.smartergpt/deliverables/_research/snapshot-contract-feedback/Answer_gpt-codex-mini.md +0 -19
- package/.smartergpt/deliverables/_research/snapshot-contract-feedback/Answer_raptor-mini.md +0 -37
- package/.smartergpt/deliverables/_research/snapshot-contract-feedback/Question.md +0 -37
- package/.smartergpt/deliverables/merge-weave-04469e41-24ba-4ed5-b0ff-13c7ea12858d.ndjson +0 -2
- package/.smartergpt/deps.yml +0 -3
- package/.smartergpt/docs/fanout-templates.md +0 -213
- package/.smartergpt/docs/merge-weave-interventions.md +0 -261
- package/.smartergpt/docs/test-fix-patterns.md +0 -240
- package/.smartergpt/fanout-templates.yml +0 -263
- package/.smartergpt/gates.yml +0 -9
- package/.smartergpt/intent.md +0 -1
- package/.smartergpt/issues/QOL-001-analysis-script-filtering.md +0 -36
- package/.smartergpt/issues/QOL-002-log-retention-policy.md +0 -92
- package/.smartergpt/issues/QOL-003-realtime-console-feedback.md +0 -44
- package/.smartergpt/issues/QOL-004-governance-report-cli.md +0 -44
- package/.smartergpt/issues/QOL-005-schema-versioning.md +0 -46
- package/.smartergpt/issues/QOL-006-debug-verbose-mode.md +0 -45
- package/.smartergpt/issues/QOL-COMPLETION-REPORT.md +0 -359
- package/.smartergpt/issues/QOL-REVIEW-SUMMARY.md +0 -111
- package/.smartergpt/issues/QOL-ROADMAP.md +0 -71
- package/.smartergpt/merge-policy.yml +0 -41
- package/.smartergpt/merge-weave-policy.yml +0 -255
- package/.smartergpt/o1.json +0 -0
- package/.smartergpt/o2.json +0 -0
- package/.smartergpt/personas/eager-pm.md +0 -123
- package/.smartergpt/personas/example.md +0 -81
- package/.smartergpt/personas/senior-dev.md +0 -107
- package/.smartergpt/profile.yml +0 -2
- package/.smartergpt/prompts/create-project.md +0 -112
- package/.smartergpt/prompts/idea.md +0 -64
- package/.smartergpt/pull-request-template.md +0 -25
- package/.smartergpt/schemas/behavior-rule.schema.js +0 -56
- package/.smartergpt/schemas/behavior-rule.schema.json +0 -105
- package/.smartergpt/schemas/behavior-rule.schema.ts +0 -60
- package/.smartergpt/schemas/execution-plan-v1.js +0 -22
- package/.smartergpt/schemas/execution-plan-v1.json +0 -113
- package/.smartergpt/schemas/execution-plan-v1.ts +0 -32
- package/.smartergpt/schemas/execution-plan.schema.json +0 -116
- package/.smartergpt/schemas/feature-spec-v0.d.ts +0 -13
- package/.smartergpt/schemas/feature-spec-v0.js +0 -12
- package/.smartergpt/schemas/feature-spec-v0.json +0 -58
- package/.smartergpt/schemas/feature-spec-v0.ts +0 -16
- package/.smartergpt/schemas/feature-spec.schema.json +0 -111
- package/.smartergpt/schemas/gates.schema.js +0 -20
- package/.smartergpt/schemas/gates.schema.json +0 -47
- package/.smartergpt/schemas/gates.schema.ts +0 -26
- package/.smartergpt/schemas/idea.schema.json +0 -81
- package/.smartergpt/schemas/runner.scope.schema.js +0 -28
- package/.smartergpt/schemas/runner.scope.schema.json +0 -75
- package/.smartergpt/schemas/runner.scope.schema.ts +0 -36
- package/.smartergpt/schemas/runner.stack.schema.js +0 -21
- package/.smartergpt/schemas/runner.stack.schema.json +0 -51
- package/.smartergpt/schemas/runner.stack.schema.ts +0 -27
- package/.smartergpt/scope.yml +0 -11
- package/.smartergpt/stack.yml +0 -16
- package/.smartergpt/test-fix-patterns.yml +0 -106
- package/.tool-versions +0 -13
- package/AGENTS.md +0 -402
- package/CLAUDE.md +0 -484
- package/CONTRIBUTING.md +0 -345
- package/EAGER_PM_FANOUT_ANALYSIS.md +0 -283
- package/FAQ.md +0 -292
- package/FIXTURE_LIBRARY_SUMMARY.md +0 -327
- package/IMPLEMENTATION_SUMMARY.md +0 -222
- package/LICENSE +0 -21
- package/MANUAL_TEST_GUIDE.md +0 -229
- package/MCP-ALIGNMENT-SUMMARY.md +0 -261
- package/MCP-CONFIG.md +0 -125
- package/MERGE_WEAVE_QUICKSTART.md +0 -450
- package/MERGE_WEAVE_SUMMARY.md +0 -259
- package/MERGE_WEAVE_USAGE_GUIDE.md +0 -368
- package/TEST_INFRASTRUCTURE_ASSESSMENT.md +0 -225
- package/bootstrap-lexrunner.sh +0 -396
- package/dist/api-U3X2WA6D.js +0 -15
- package/dist/audit-5HH5BMKI.js +0 -60
- package/dist/audit-6K5K333I.js +0 -60
- package/dist/audit-DYQWS57J.js +0 -60
- package/dist/audit-JBWZ2GZ2.js +0 -60
- package/dist/audit-SJF3434D.js +0 -60
- package/dist/audit-TICGGVX5.js +0 -60
- package/dist/audit-YOBB27PY.js +0 -60
- package/dist/autopilot-3GAVXWWC.js +0 -45
- package/dist/autopilot-43NOYVQA.js +0 -45
- package/dist/autopilot-4UA3OWLU.js +0 -45
- package/dist/autopilot-54TK5CCG.js +0 -45
- package/dist/autopilot-5BHC2UQT.js +0 -45
- package/dist/autopilot-ABZUCVGY.js +0 -45
- package/dist/autopilot-ACJZP47Y.js +0 -45
- package/dist/autopilot-BO67FWUC.js +0 -45
- package/dist/autopilot-BR6W4GEX.js +0 -45
- package/dist/autopilot-FOR2UKRY.js +0 -45
- package/dist/autopilot-GDTTXHEQ.js +0 -45
- package/dist/autopilot-GEAMFZBM.js +0 -45
- package/dist/autopilot-HDMBRZE6.js +0 -45
- package/dist/autopilot-IKI2Y6S4.js +0 -44
- package/dist/autopilot-ILTBWWOL.js +0 -46
- package/dist/autopilot-KI3MXIFI.js +0 -44
- package/dist/autopilot-LWNPZC3J.js +0 -45
- package/dist/autopilot-LXPJ4ZXF.js +0 -45
- package/dist/autopilot-MDIFIONK.js +0 -46
- package/dist/autopilot-NW3LDP6M.js +0 -45
- package/dist/autopilot-OKTSCG35.js +0 -45
- package/dist/autopilot-OR5PF5PD.js +0 -45
- package/dist/autopilot-PE65SBGN.js +0 -45
- package/dist/autopilot-PW7I4B6W.js +0 -45
- package/dist/autopilot-QMLBL5P6.js +0 -45
- package/dist/autopilot-QSN6ZU5O.js +0 -45
- package/dist/autopilot-R7EZJOGI.js +0 -46
- package/dist/autopilot-T544CPPD.js +0 -44
- package/dist/autopilot-TNQB6VGJ.js +0 -44
- package/dist/autopilot-UVIYCR6K.js +0 -45
- package/dist/autopilot-W3ZTTSH3.js +0 -45
- package/dist/autopilot-XPKWOFXO.js +0 -44
- package/dist/autopilot-XRX4QWRM.js +0 -44
- package/dist/autopilot-Y3BAGNI5.js +0 -44
- package/dist/autopilot-ZE64XW2K.js +0 -44
- package/dist/chunk-2VR554P7.js +0 -668
- package/dist/chunk-37DOWIVT.js +0 -1084
- package/dist/chunk-3DU2DWUP.js +0 -400
- package/dist/chunk-3DVXIZFM.js +0 -11166
- package/dist/chunk-3FABZF4V.js +0 -811
- package/dist/chunk-4GEC4HC3.js +0 -11221
- package/dist/chunk-5CGWZH5X.js +0 -340
- package/dist/chunk-5QKWKK4M.js +0 -11794
- package/dist/chunk-5Z3XHND7.js +0 -11755
- package/dist/chunk-6YC2VSLE.js +0 -11252
- package/dist/chunk-7C4K2SHD.js +0 -668
- package/dist/chunk-ANXY4RGA.js +0 -11091
- package/dist/chunk-ASHKNUBR.js +0 -11312
- package/dist/chunk-B3OYDPOP.js +0 -11793
- package/dist/chunk-DBH7SQ2S.js +0 -1084
- package/dist/chunk-DEI7A5B4.js +0 -11449
- package/dist/chunk-EQKFCZLH.js +0 -9823
- package/dist/chunk-FAIJPBT5.js +0 -40
- package/dist/chunk-FDDKUDXR.js +0 -11166
- package/dist/chunk-FEAR6ETG.js +0 -438
- package/dist/chunk-FXL74C73.js +0 -523
- package/dist/chunk-GLJEDX4L.js +0 -10247
- package/dist/chunk-HIHH7IVO.js +0 -10557
- package/dist/chunk-I3VXUVCB.js +0 -10474
- package/dist/chunk-I6BIFVWI.js +0 -10519
- package/dist/chunk-I72TRUTJ.js +0 -1084
- package/dist/chunk-J5B5KT2F.js +0 -368
- package/dist/chunk-JMTULZ66.js +0 -11743
- package/dist/chunk-JXIQ7HCK.js +0 -11166
- package/dist/chunk-K6HVPBDP.js +0 -10692
- package/dist/chunk-KBT5Y666.js +0 -521
- package/dist/chunk-LETPROKG.js +0 -11092
- package/dist/chunk-LLMY2BZF.js +0 -1084
- package/dist/chunk-NMNL4US2.js +0 -1084
- package/dist/chunk-O2XRP7JK.js +0 -10247
- package/dist/chunk-OGPWLFFO.js +0 -11201
- package/dist/chunk-OQJUWTZV.js +0 -51
- package/dist/chunk-PJRWPLQ6.js +0 -669
- package/dist/chunk-PYRVUCJR.js +0 -370
- package/dist/chunk-QF7DM5VW.js +0 -106
- package/dist/chunk-QGM4M3NI.js +0 -37
- package/dist/chunk-QIIELFTL.js +0 -1107
- package/dist/chunk-QUW6N7GR.js +0 -10264
- package/dist/chunk-QZASNLQX.js +0 -11223
- package/dist/chunk-RMN4IAWO.js +0 -11808
- package/dist/chunk-RN5NHU37.js +0 -11465
- package/dist/chunk-RNG3RILO.js +0 -11755
- package/dist/chunk-RSA6DEB4.js +0 -9748
- package/dist/chunk-RURYWSMX.js +0 -10524
- package/dist/chunk-SUEXK5U7.js +0 -11201
- package/dist/chunk-TVUF55OH.js +0 -11807
- package/dist/chunk-U62I2R2D.js +0 -434
- package/dist/chunk-UNZBDSEU.js +0 -11166
- package/dist/chunk-VP37GLU6.js +0 -1084
- package/dist/chunk-W6WDKBWO.js +0 -11453
- package/dist/chunk-XBKUFNVF.js +0 -10745
- package/dist/chunk-XOLVQTIE.js +0 -670
- package/dist/chunk-YABA7DB6.js +0 -11091
- package/dist/chunk-YWCJX5KL.js +0 -10557
- package/dist/chunk-Z5GP7FSR.js +0 -309
- package/dist/chunk-ZBT3DATZ.js +0 -296
- package/dist/chunk-ZDBAZXUQ.js +0 -11201
- package/dist/chunk-ZEMABYS4.js +0 -92
- package/dist/chunk-ZOA4HT7P.js +0 -662
- package/dist/cli.d.cts +0 -2709
- package/dist/commandValidator-42OUDFZ4.js +0 -140
- package/dist/commandValidator-7LQHTYL5.js +0 -140
- package/dist/commandValidator-DH3CX2OW.js +0 -140
- package/dist/commandValidator-GCQC7H4A.js +0 -140
- package/dist/commandValidator-K6VWB6O3.js +0 -140
- package/dist/commandValidator-L6WNDBYB.js +0 -129
- package/dist/commandValidator-O3KSNXD2.js +0 -140
- package/dist/commandValidator-ZHMUA5RQ.js +0 -140
- package/dist/dist-CSOR2BL2.js +0 -1144
- package/dist/dist-PKOIS5NZ.js +0 -1144
- package/dist/fileAnalysis-3VMDDJ6I.js +0 -9
- package/dist/fileAnalysis-4QLHUT44.js +0 -9
- package/dist/fileAnalysis-H6M2Z7ZC.js +0 -9
- package/dist/fileAnalysis-HMI7IL6S.js +0 -9
- package/dist/fileAnalysis-JHABOPUQ.js +0 -9
- package/dist/mergeTreeSimulator-ATOPJ3DU.js +0 -11
- package/dist/mergeTreeSimulator-AYUK4TZT.js +0 -11
- package/dist/mergeTreeSimulator-BBWJUQBK.js +0 -11
- package/dist/mergeTreeSimulator-DJJDRB5N.js +0 -11
- package/dist/planDiff-37QHCPKO.js +0 -109
- package/dist/planDiff-BQHIUARB.js +0 -109
- package/dist/planDiff-RXR4CWFS.js +0 -109
- package/dist/planDiff-W2BTH2MU.js +0 -109
- package/dist/planHistory-4J3Q6AJ3.js +0 -126
- package/dist/planHistory-GLCXP6AB.js +0 -126
- package/dist/planHistory-SMNRLEKG.js +0 -126
- package/dist/planHistory-UO4WZ6GO.js +0 -126
- package/dist/planReview-7BWVLABC.js +0 -377
- package/dist/planReview-FAIBIAE6.js +0 -377
- package/dist/planReview-FXQBDNKJ.js +0 -376
- package/dist/planReview-HO4YYETA.js +0 -377
- package/dist/planReview-I26EKCUK.js +0 -376
- package/dist/planReview-JBOAJHSU.js +0 -377
- package/dist/planReview-SCNZWC6B.js +0 -376
- package/dist/planReview-TU7LMZIY.js +0 -376
- package/dist/planViewer-2YZCPVDM.js +0 -155
- package/dist/planViewer-72WZFUTU.js +0 -154
- package/dist/planViewer-G546TVHV.js +0 -154
- package/dist/planViewer-I7ZHNJQF.js +0 -150
- package/dist/planViewer-IRXHOY5U.js +0 -155
- package/dist/planViewer-IX2ICW45.js +0 -154
- package/dist/planViewer-PDWPUOP6.js +0 -155
- package/dist/planViewer-PEOADAGZ.js +0 -155
- package/dist/planViewer-PFYDEG6V.js +0 -150
- package/dist/planViewer-V2JUKV7Q.js +0 -154
- package/dist/sarif-46TKOOJZ.js +0 -9
- package/dist/sarif-63JKTFFI.js +0 -9
- package/dist/sarif-CIYIWUNC.js +0 -9
- package/dist/sarif-OGAGDL6B.js +0 -9
- package/dist/security-3V6FKJDA.js +0 -423
- package/dist/security-4JMEUM56.js +0 -423
- package/dist/security-QHPEWY5G.js +0 -423
- package/dist/security-V2LAL5TP.js +0 -415
- package/dist/security-WTASK6T6.js +0 -423
- package/dist/security-XE4GHVJD.js +0 -423
- package/dist/security-XLXM3UHT.js +0 -423
- package/dist/security-ZDAEZF7D.js +0 -423
- package/dist/signing-3EI734L4.js +0 -14
- package/dist/signing-5G7K6JXJ.js +0 -14
- package/dist/signing-7DK7SABM.js +0 -14
- package/dist/signing-OAJ3MXGA.js +0 -14
- package/dist/verify-5F6PUXUQ.js +0 -62
- package/dist/verify-5ILURHV2.js +0 -62
- package/dist/verify-MRDZJUGO.js +0 -62
- package/dist/verify-YZRHN2D3.js +0 -62
- package/docs/1.0.0-vertical-slice.md +0 -214
- package/docs/ADR-007-INTEGRATION-SUMMARY.md +0 -232
- package/docs/ALIASING_FOR_LEXRUNNER.md +0 -709
- package/docs/ALIASING_FOR_RUNNER.md +0 -552
- package/docs/AX.md +0 -317
- package/docs/CHECKPOINT_RESUME.md +0 -208
- package/docs/CLI_VERBS.md +0 -219
- package/docs/CONFLICT_DETECTION.md +0 -198
- package/docs/DISCIPLINED_FAILURE.md +0 -224
- package/docs/ENVIRONMENT_QUALITY.md +0 -155
- package/docs/ERROR_CODES.md +0 -528
- package/docs/EVENT_SCHEMA.md +0 -659
- package/docs/EXE-012-investigation-summary.md +0 -300
- package/docs/GATE_ATTESTATION_GUIDE.md +0 -237
- package/docs/JSON_OUTPUT_SCHEMAS.md +0 -347
- package/docs/LEXRUNNER_ALIASING.md +0 -444
- package/docs/LEX_INTEGRATION.md +0 -83
- package/docs/LEX_PUBLIC_API.md +0 -306
- package/docs/LICENSING.md +0 -119
- package/docs/MCP-CLI-PARITY.md +0 -410
- package/docs/MCP-MIGRATION.md +0 -258
- package/docs/MCP-PARITY.md +0 -234
- package/docs/MEMORY_TOOLS.md +0 -278
- package/docs/MERGE_WEAVE_SETUP.md +0 -643
- package/docs/MIGRATION_v0.1.md +0 -760
- package/docs/NAMING_CONVENTIONS.md +0 -82
- package/docs/PERSONA_FOUNDATION.md +0 -124
- package/docs/PHASE3_MEMORY_GUIDE.md +0 -122
- package/docs/PLAN_LOCK.md +0 -114
- package/docs/README.md +0 -289
- package/docs/RUNNER_LIFECYCLE.md +0 -257
- package/docs/SAFETY_MECHANISMS.md +0 -325
- package/docs/SECURITY_IMPLEMENTATION.md +0 -535
- package/docs/TERMS.md +0 -34
- package/docs/TOKEN_TRACKING.md +0 -162
- package/docs/WORKFLOW_GUIDANCE.md +0 -277
- package/docs/adr/ADR-000-product-naming-and-branding.md +0 -115
- package/docs/adr/ADR-001-plan-json-frozen-input.md +0 -68
- package/docs/adr/ADR-002-two-track-separation.md +0 -84
- package/docs/adr/ADR-003-gate-uniform-execution.md +0 -69
- package/docs/adr/ADR-004-runner-state-model.md +0 -75
- package/docs/adr/ADR-005-merge-pyramid-ordering.md +0 -87
- package/docs/adr/ADR-006-schema-versioning-semver.md +0 -81
- package/docs/adr/ADR-007-task-snapshot-contract.md +0 -503
- package/docs/adr/ADR-008-lex-packaging.md +0 -243
- package/docs/adr/ADR-009-ax-test-output-adapters.md +0 -440
- package/docs/adr/README.md +0 -32
- package/docs/advanced-cli.md +0 -436
- package/docs/agent-stall-detection.md +0 -278
- package/docs/architecture/executors.md +0 -190
- package/docs/architecture.md +0 -316
- package/docs/attestation/AX-SHARED-PLEDGE.md +0 -83
- package/docs/attestation/AX-SHARED-PLEDGE_v1.0.0.md +0 -99
- package/docs/attestation/AX-SHARED-PLEDGE_v1.0.0_VERIFICATION.md +0 -115
- package/docs/attestation/Lex_Guff_Version_Contract_Pact_v1.0.0.md +0 -181
- package/docs/attestation/README.md +0 -87
- package/docs/attestation/ax_pledge_2025-12-02.ots +0 -0
- package/docs/attestation/ax_pledge_timestamp_response.tsr +0 -0
- package/docs/attestation/copilot_summarization_2025-12-01.ots +0 -0
- package/docs/attestation/copilot_summarization_2025-12-01_VERIFICATION.md +0 -100
- package/docs/attestation/copilot_summarization_behavior_observation_2025-12-01.md +0 -85
- package/docs/attestation/copilot_summarization_screenshot_2025-12-01.png +0 -0
- package/docs/attestation/employment_separation_2025-11-26.ots +0 -0
- package/docs/attestation/employment_timestamp_response.tsr +0 -0
- package/docs/attestation/freetsa_cacert.pem +0 -45
- package/docs/attestation/freetsa_tsa.crt +0 -45
- package/docs/attestation/lex_employment_separation_2025-11-26.md +0 -85
- package/docs/attestation/lex_employment_separation_2025-11-26_VERIFICATION.md +0 -126
- package/docs/attestation/patent/2025-12-07-shadow-governance-pct-draft.md +0 -350
- package/docs/attestation/patent/2025-12-07-shadow-governance-pct-draft.md.ots +0 -0
- package/docs/attestation/patent/2025-12-07-shadow-governance-pct-draft_VERIFICATION.md +0 -130
- package/docs/attestation/patent/README.md +0 -75
- package/docs/attestation/patent/fig1_write_path.svg +0 -58
- package/docs/attestation/patent/fig2_read_normalize_rollup.svg +0 -92
- package/docs/attestation/timestamp_response.tsr +0 -0
- package/docs/attribution-README.md +0 -264
- package/docs/audit-compliance.md +0 -283
- package/docs/audit-outputs.md +0 -1213
- package/docs/audit-sdk.md +0 -1134
- package/docs/autopilot-levels.md +0 -368
- package/docs/autopilot.md +0 -288
- package/docs/ci-cd-integration.md +0 -580
- package/docs/ci-integration-guide.md +0 -369
- package/docs/ci-version-validation.md +0 -198
- package/docs/cli-mcp-weave-reporting.md +0 -462
- package/docs/cli.md +0 -2262
- package/docs/cluster-gates-rollback.md +0 -222
- package/docs/command-creation-guide.md +0 -485
- package/docs/command-whitelist.md +0 -490
- package/docs/commands/idea.md +0 -253
- package/docs/config.md +0 -245
- package/docs/conflict-clustering.md +0 -225
- package/docs/conflict-predictor.md +0 -359
- package/docs/context-diet.md +0 -249
- package/docs/counter-examples.md +0 -199
- package/docs/create-project.md +0 -211
- package/docs/deliverables-generator.md +0 -299
- package/docs/deliverables-management.md +0 -474
- package/docs/dependency-parser.md +0 -354
- package/docs/determinism.md +0 -299
- package/docs/diffgraph-planner.md +0 -1211
- package/docs/dogfood/README.md +0 -33
- package/docs/dogfood/wave-3-results.md +0 -303
- package/docs/dogfood-merge-weave-script.md +0 -224
- package/docs/enterprise-onboarding.md +0 -291
- package/docs/environment-variables.md +0 -625
- package/docs/error-recovery.md +0 -466
- package/docs/errors.md +0 -288
- package/docs/executor-authoring.md +0 -854
- package/docs/executor-decoupling.md +0 -410
- package/docs/front-end-capture-pipeline.md +0 -312
- package/docs/gate-report-examples.md +0 -380
- package/docs/gates.md +0 -319
- package/docs/github-automation.md +0 -128
- package/docs/governance-metrics.md +0 -368
- package/docs/integrations/README.md +0 -588
- package/docs/interactive-plan-review.md +0 -493
- package/docs/issue-orchestration.md +0 -256
- package/docs/lex_ax_session_key_rememberings_v0.1.md +0 -195
- package/docs/lexrunner-v1-summary.md +0 -246
- package/docs/lexrunner-v2-contract.md +0 -404
- package/docs/lexrunner-v2-migration-plan.md +0 -388
- package/docs/lexrunner-v2-salvage-map.md +0 -355
- package/docs/lexsona-rules.md +0 -154
- package/docs/merge-weave-analysis.md +0 -403
- package/docs/merge-weave-quickstart.md +0 -770
- package/docs/merge-weave-state-machine.md +0 -390
- package/docs/migration-guide.md +0 -529
- package/docs/monitoring-examples.md +0 -470
- package/docs/monitoring-implementation.md +0 -252
- package/docs/orchestration.md +0 -234
- package/docs/performance-scale.md +0 -359
- package/docs/plan-generation.md +0 -407
- package/docs/profile-resolution.md +0 -455
- package/docs/prompts.md +0 -427
- package/docs/quickstart.md +0 -546
- package/docs/release-process.md +0 -310
- package/docs/sample-prompts/merge-weave/cli-merge-weave-kickoff.md +0 -274
- package/docs/sample-prompts/merge-weave/mcp-merge-weave-kickoff.md +0 -480
- package/docs/sample-prompts/merge-weave/standalone-merge-weave-kickoff.md +0 -237
- package/docs/schemas.md +0 -359
- package/docs/scope-validation.md +0 -444
- package/docs/security/rotation-guide.md +0 -325
- package/docs/specs/Meeting_Control_Stack_Concept_v0.1.0.md +0 -417
- package/docs/specs/git-feature-flag-redesign.md +0 -321
- package/docs/specs/lex-pr-brief-behavior.md +0 -269
- package/docs/specs/smartergpt-structure-v1.md +0 -705
- package/docs/specs/task-brief-v0.1.md +0 -224
- package/docs/store-architecture.md +0 -61
- package/docs/templates/CONTRIBUTING-merge-weave-section.md +0 -33
- package/docs/templates/gates.example.yml +0 -109
- package/docs/templates/plan.example.json +0 -77
- package/docs/thesis/00-EVOLUTION-NOTES.md +0 -383
- package/docs/thesis/01-CORE-THESIS.md +0 -285
- package/docs/thesis/02-TURN-COST.md +0 -498
- package/docs/thesis/03-PERMISSION-TO-FAIL.md +0 -581
- package/docs/thesis/04-CROSS-MODEL-CONTINUITY.md +0 -517
- package/docs/thesis/05-RULE-FILE-SPEC.md +0 -732
- package/docs/thesis/06-CAPABILITY-TIERS.md +0 -723
- package/docs/thesis/07-ROBERT-FIELD-REPORT.md +0 -433
- package/docs/thesis/08-IMPLEMENTATION-GUIDE.md +0 -1093
- package/docs/thesis/09-METRICS-AND-TELEMETRY.md +0 -793
- package/docs/thesis/10-FAILURE-MODES.md +0 -716
- package/docs/thesis/README.md +0 -151
- package/docs/thesis/lex_governance-collab_systems_paper_draft.md +0 -952
- package/docs/thesis/lex_governance-collab_systems_paper_draft.pdf +0 -0
- package/docs/tool-grounded/READINESS_ANALYSIS.md +0 -527
- package/docs/tool-grounded/enforcement.md +0 -361
- package/docs/tool-grounded/tool-grounded-a-view-from-the-inside.md +0 -437
- package/docs/tool-grounded/tool-grounded-prompt.md +0 -122
- package/docs/tool-grounded/tool-grounded-run-centric.md +0 -474
- package/docs/troubleshooting-planner.md +0 -910
- package/docs/troubleshooting.md +0 -745
- package/docs/tutorials/README.md +0 -201
- package/docs/tutorials/diffgraph-planner/01-simple-stack.md +0 -460
- package/docs/tutorials/diffgraph-planner/02-diamond-pattern.md +0 -431
- package/docs/tutorials/diffgraph-planner/03-large-batch.md +0 -525
- package/docs/tutorials/diffgraph-planner/04-fixing-cycles.md +0 -526
- package/docs/tutorials/diffgraph-planner/05-hybrid-workflow.md +0 -555
- package/docs/tutorials/quick-merge-pyramid.md +0 -364
- package/docs/tutorials/video-scripts/01-getting-started.md +0 -286
- package/docs/tutorials/video-scripts/02-understanding-dependencies.md +0 -376
- package/docs/weave-contract.md +0 -116
- package/docs/weave-execution-log.md +0 -153
- package/docs/workflows/README.md +0 -139
- package/docs/workflows/enterprise.md +0 -545
- package/docs/workflows/small-team.md +0 -398
- package/docs/workflows/solo-developer.md +0 -419
- package/dogfood-merge-weave.sh +0 -122
- package/examples/README.md +0 -22
- package/examples/WORKING_EXAMPLE.md +0 -309
- package/examples/analyze-pr-files.js +0 -100
- package/examples/autopilot-level4-example.md +0 -234
- package/examples/cluster-gates-demo.sh +0 -178
- package/examples/complete-security-workflow.ts +0 -248
- package/examples/error-recovery/README.md +0 -202
- package/examples/executor-manifest.example.yaml +0 -81
- package/examples/front-end-capture-pipeline/README.md +0 -99
- package/examples/front-end-capture-pipeline/create-project-example.sh +0 -83
- package/examples/front-end-capture-pipeline/idea-dark-mode.json +0 -14
- package/examples/front-end-capture-pipeline/idea-example.sh +0 -57
- package/examples/front-end-capture-pipeline/manual-test-checklist.md +0 -426
- package/examples/gates/README.md +0 -165
- package/examples/gates/lint-gate.sh +0 -40
- package/examples/gates/lint-gate.ts +0 -99
- package/examples/gates/test-runner.ts +0 -113
- package/examples/gates/vuln-scanner.ts +0 -95
- package/examples/github-integration/README.md +0 -111
- package/examples/github-integration/example-plan.json +0 -95
- package/examples/performance-config.md +0 -388
- package/examples/profile-setup/.gitignore.template +0 -66
- package/examples/profile-setup/.smartergpt-example/README.md +0 -190
- package/examples/profile-setup/.smartergpt.local-example/README.md +0 -365
- package/examples/profile-setup/README.md +0 -492
- package/examples/profile-setup/cross-repo-prompts/README.md +0 -606
- package/examples/safety-framework-demo.ts +0 -130
- package/examples/safety-mechanisms-example.ts +0 -191
- package/examples/sample-plan.json +0 -87
- package/examples/sample-stack.yml +0 -66
- package/examples/sarif/README.md +0 -224
- package/examples/scope-validation-demo.ts +0 -199
- package/examples/security-integration.ts +0 -293
- package/examples/token-tracking-example.ts +0 -71
- package/executors/senior-dev/ARCHITECTURE.md +0 -182
- package/executors/senior-dev/MEMORY_INTEGRATION.md +0 -236
- package/executors/senior-dev/QUICK_START.md +0 -145
- package/executors/senior-dev/README.md +0 -76
- package/executors/senior-dev/examples/sample-review-session.md +0 -228
- package/executors/senior-dev/executor-manifest.yaml +0 -79
- package/executors/senior-dev/prompts/code-review.prompt.md +0 -78
- package/executors/senior-dev/prompts/mentorship-feedback.prompt.md +0 -97
- package/executors/senior-dev/prompts/pattern-recognition.prompt.md +0 -80
- package/executors/senior-dev/prompts/pr-analysis.prompt.md +0 -75
- package/executors/senior-dev/scripts/capture-review-frame.sh +0 -129
- package/executors/senior-dev/scripts/prepare-review-context.sh +0 -61
- package/executors/senior-dev/scripts/recall-context.sh +0 -87
- package/lexrunner-launcher.sh +0 -12
- package/mcp-config-example.json +0 -14
- package/merge-weave-current-prs.md +0 -170
- package/merge-weave-dogfood.json +0 -46
- package/merge-weave-plan.json +0 -56
- package/procedures/merge-weave-main.yaml +0 -90
- package/procedures/pr-review.yaml +0 -68
- package/project/README.md +0 -50
- package/prompts/tool-grounded-mode.md +0 -185
- package/scripts/README.md +0 -354
- package/scripts/analyze-governance-logs.mjs +0 -51
- package/scripts/benchmark-ci.ts +0 -339
- package/scripts/check-determinism.sh +0 -23
- package/scripts/check-license-compliance.mjs +0 -319
- package/scripts/check-release-drift.mjs +0 -81
- package/scripts/ci-debug.sh +0 -24
- package/scripts/ci-smoke.mjs +0 -304
- package/scripts/create-sample-repo.sh +0 -245
- package/scripts/dogfood-merge-weave.sh +0 -552
- package/scripts/gen_mcp_servers.py +0 -252
- package/scripts/generate-executor-manifest-schema.ts +0 -30
- package/scripts/generate-flake-schema.ts +0 -32
- package/scripts/generate-gate-schema.ts +0 -32
- package/scripts/generate-plan-schema.ts +0 -30
- package/scripts/generate-run-schemas.ts +0 -69
- package/scripts/load-prompt.mjs +0 -147
- package/scripts/merge-weave-wrapper.sh +0 -445
- package/scripts/merge-weave.sh +0 -489
- package/scripts/metrics-template.ts +0 -134
- package/scripts/package-lex.sh +0 -267
- package/scripts/quick-start-merge-weave.sh +0 -218
- package/scripts/release-prepare.ts +0 -350
- package/scripts/rotate-secrets-example.ts +0 -134
- package/scripts/test-lexsona-shadow.mjs +0 -100
- package/scripts/validate-manifests.ts +0 -188
- package/scripts/verify-audit-phase2.js +0 -175
- package/src/ai/README.md +0 -456
- package/src/ai/conflictStrategy.ts +0 -223
- package/src/ai/conflictStrategyCache.ts +0 -164
- package/src/ai/conflictStrategyPrompt.ts +0 -128
- package/src/ai/conflictStrategySchema.ts +0 -165
- package/src/ai/heuristicFallback.ts +0 -162
- package/src/ai/index.ts +0 -64
- package/src/ai/riskScoring.ts +0 -174
- package/src/aliases/index.ts +0 -16
- package/src/aliases/resolver.ts +0 -212
- package/src/audit/context.ts +0 -284
- package/src/audit/emitter.ts +0 -685
- package/src/audit/events.ts +0 -210
- package/src/audit/gateMatrix.ts +0 -158
- package/src/audit/index.ts +0 -44
- package/src/audit/manifest.ts +0 -78
- package/src/audit/profiles.ts +0 -93
- package/src/audit/redaction.ts +0 -216
- package/src/audit/sarif.ts +0 -213
- package/src/audit/schema/events.ts +0 -366
- package/src/audit/schema/manifest.ts +0 -47
- package/src/audit/schema.ts +0 -159
- package/src/audit/sdk/index.ts +0 -145
- package/src/audit/sdk/types.ts +0 -88
- package/src/audit/sidecar.ts +0 -111
- package/src/audit/signing.ts +0 -521
- package/src/autopilot/README.md +0 -113
- package/src/autopilot/artifacts.ts +0 -287
- package/src/autopilot/base.ts +0 -132
- package/src/autopilot/deliverables.ts +0 -392
- package/src/autopilot/index.ts +0 -29
- package/src/autopilot/level1.ts +0 -187
- package/src/autopilot/level2.ts +0 -262
- package/src/autopilot/level3.ts +0 -263
- package/src/autopilot/level4.ts +0 -393
- package/src/autopilot/safety/README.md +0 -512
- package/src/autopilot/safety/SafetyFramework.ts +0 -634
- package/src/autopilot/safety/index.ts +0 -16
- package/src/autopilot/types.ts +0 -250
- package/src/budget/index.ts +0 -56
- package/src/budget/manager.ts +0 -547
- package/src/budget/schema.ts +0 -305
- package/src/budget/tracker.ts +0 -155
- package/src/cache/issue-cache.ts +0 -150
- package/src/cli/command-map.ts +0 -221
- package/src/cli/commands/gate/test.ts +0 -214
- package/src/cli/exitHandler.ts +0 -98
- package/src/cli/flags.ts +0 -123
- package/src/cli/formatSuggestions.ts +0 -202
- package/src/cli/formatters.ts +0 -294
- package/src/cli/jsonEnvelope.ts +0 -152
- package/src/cli/output.ts +0 -61
- package/src/cli/runnerLifecycle.ts +0 -118
- package/src/cli-audit.ts +0 -76
- package/src/cli-security.ts +0 -114
- package/src/cli.ts +0 -1231
- package/src/commands/audit/index.ts +0 -5
- package/src/commands/audit/verify.ts +0 -87
- package/src/commands/autopilot.ts +0 -131
- package/src/commands/budget.ts +0 -327
- package/src/commands/bulkOps.ts +0 -204
- package/src/commands/completion.ts +0 -287
- package/src/commands/config/validate.ts +0 -428
- package/src/commands/config.ts +0 -368
- package/src/commands/counterExamples.ts +0 -104
- package/src/commands/create-project.ts +0 -338
- package/src/commands/discover.ts +0 -192
- package/src/commands/doctor.ts +0 -436
- package/src/commands/execute.ts +0 -558
- package/src/commands/explain.ts +0 -157
- package/src/commands/fanout-analyze.ts +0 -684
- package/src/commands/fanout-harvest.ts +0 -328
- package/src/commands/fanout-monitor.ts +0 -224
- package/src/commands/gateAttest.ts +0 -95
- package/src/commands/gateImport.ts +0 -142
- package/src/commands/gateImportChecks.ts +0 -208
- package/src/commands/gateReport.ts +0 -184
- package/src/commands/governanceCleanup.ts +0 -171
- package/src/commands/governanceReport.ts +0 -497
- package/src/commands/guards.ts +0 -50
- package/src/commands/idea.ts +0 -281
- package/src/commands/init.ts +0 -414
- package/src/commands/issues.ts +0 -165
- package/src/commands/merge.ts +0 -677
- package/src/commands/mergeOrder.ts +0 -68
- package/src/commands/metrics.ts +0 -232
- package/src/commands/migrateProfile.ts +0 -187
- package/src/commands/orchestrate/analyze-issues.ts +0 -203
- package/src/commands/orchestrate/assign-batch.ts +0 -204
- package/src/commands/orchestrate/generate-deliverables.ts +0 -66
- package/src/commands/orchestrate/pinToolchain.ts +0 -102
- package/src/commands/orchestrate/plan-batch.ts +0 -119
- package/src/commands/orchestrate/predict-conflicts.ts +0 -210
- package/src/commands/orchestrate.ts +0 -186
- package/src/commands/plan.ts +0 -403
- package/src/commands/planDiff.ts +0 -56
- package/src/commands/planReview.ts +0 -112
- package/src/commands/planViewer.ts +0 -180
- package/src/commands/preview-constraints.ts +0 -97
- package/src/commands/query.ts +0 -313
- package/src/commands/report.ts +0 -56
- package/src/commands/retry.ts +0 -60
- package/src/commands/schema.ts +0 -128
- package/src/commands/security.ts +0 -140
- package/src/commands/seniorDev.ts +0 -326
- package/src/commands/status.ts +0 -97
- package/src/commands/tokenReport.ts +0 -167
- package/src/commands/validation.ts +0 -66
- package/src/commands/weave-checkpoints.ts +0 -145
- package/src/commands/weave-fanout.ts +0 -273
- package/src/commands/weave-policy.ts +0 -277
- package/src/commands/weave.ts +0 -518
- package/src/config/localOverlay.ts +0 -167
- package/src/config/pathResolver.ts +0 -106
- package/src/config/profileResolver.ts +0 -194
- package/src/config/promptsResolver.ts +0 -312
- package/src/config/rulesResolver.ts +0 -257
- package/src/config/schemas.ts +0 -142
- package/src/core/bootstrap.ts +0 -287
- package/src/core/enterprise.ts +0 -453
- package/src/core/errorRecovery.ts +0 -509
- package/src/core/githubPlan.ts +0 -282
- package/src/core/inputs.ts +0 -314
- package/src/core/multiRepoPlan.ts +0 -353
- package/src/core/plan.ts +0 -106
- package/src/core/snapshot.ts +0 -189
- package/src/errors/adapters.ts +0 -897
- package/src/errors/index.ts +0 -231
- package/src/executionState.ts +0 -356
- package/src/executors/README_FRAME_CONTRACT.md +0 -446
- package/src/executors/frameContract.ts +0 -270
- package/src/executors/guardrailEnforcement.ts +0 -294
- package/src/executors/seniorDev/core.ts +0 -548
- package/src/executors/seniorDev/index.ts +0 -30
- package/src/executors/seniorDev/types.ts +0 -176
- package/src/executors/toolBudget.ts +0 -194
- package/src/fanout/analyzer.ts +0 -735
- package/src/fanout/github-adapter.ts +0 -262
- package/src/fanout/harvest.ts +0 -517
- package/src/fanout/monitor.ts +0 -350
- package/src/fanout/types.ts +0 -428
- package/src/frames/controller.ts +0 -160
- package/src/frames/emitter.ts +0 -455
- package/src/frames/index.ts +0 -58
- package/src/frames/storage.ts +0 -203
- package/src/frames/types.ts +0 -258
- package/src/gates/checkRunConverter.ts +0 -91
- package/src/gates/test/adapters/errors.ts +0 -32
- package/src/gates/test/adapters/index.ts +0 -36
- package/src/gates/test/adapters/interface.ts +0 -63
- package/src/gates/test/adapters/jest-json.ts +0 -370
- package/src/gates/test/adapters/junit-xml.ts +0 -400
- package/src/gates/test/adapters/registry.ts +0 -149
- package/src/gates/test/adapters/vitest-json.ts +0 -339
- package/src/gates/test/enrichment/failureId.ts +0 -74
- package/src/gates/test/enrichment/index.ts +0 -25
- package/src/gates/test/enrichment/nextActions.ts +0 -322
- package/src/gates/test/enrichment/rerunTemplates.ts +0 -105
- package/src/gates/test/enrichment/signature.ts +0 -58
- package/src/gates/test/enrichment/stackParser.ts +0 -149
- package/src/gates/test/enrichment/types.ts +0 -67
- package/src/gates/test/formatters/markdown.spec.ts +0 -942
- package/src/gates/test/formatters/markdown.ts +0 -296
- package/src/gates/test/index.ts +0 -54
- package/src/gates/test/schema.spec.ts +0 -372
- package/src/gates/test/schema.ts +0 -327
- package/src/gates/validator.ts +0 -92
- package/src/gates.ts +0 -1022
- package/src/git/operations.ts +0 -592
- package/src/git/parseRemote.ts +0 -22
- package/src/github/api.ts +0 -584
- package/src/github/batch-ops.ts +0 -215
- package/src/github/client.ts +0 -647
- package/src/github/contextDiet.ts +0 -205
- package/src/github/diffHunks.ts +0 -285
- package/src/github/index.ts +0 -11
- package/src/github/minimalContext.ts +0 -212
- package/src/github/minimalContextClient.ts +0 -105
- package/src/github/symbolMap.ts +0 -370
- package/src/github/types.ts +0 -166
- package/src/governance/index.ts +0 -42
- package/src/governance/mcpStatus.ts +0 -258
- package/src/governance/timeoutAdjustment.ts +0 -149
- package/src/governance/turnCostSummary.ts +0 -182
- package/src/hooks/events.ts +0 -374
- package/src/hooks/index.ts +0 -8
- package/src/hostility/checks.ts +0 -408
- package/src/hostility/index.ts +0 -108
- package/src/hostility/score.ts +0 -143
- package/src/interactive/planDiff.ts +0 -168
- package/src/interactive/planHistory.ts +0 -205
- package/src/interactive/planReview.ts +0 -531
- package/src/learning/counter-example.ts +0 -174
- package/src/learning/prompts.ts +0 -107
- package/src/learning/storage.ts +0 -230
- package/src/lexsona/client.ts +0 -367
- package/src/lexsona/index.ts +0 -44
- package/src/lexsona/logger.ts +0 -408
- package/src/lexsona/types.ts +0 -177
- package/src/mcp/DEPRECATED.md +0 -33
- package/src/mcp/server.ts +0 -3587
- package/src/mcp/types/guided-response.ts +0 -95
- package/src/mcp/types.ts +0 -468
- package/src/mcp/workflow/state-machine.ts +0 -277
- package/src/mergeEligibility.ts +0 -355
- package/src/mergeOrder.ts +0 -170
- package/src/metrics/export.ts +0 -472
- package/src/metrics/index.ts +0 -35
- package/src/metrics/turncost.ts +0 -284
- package/src/monitoring/README.md +0 -222
- package/src/monitoring/audit.ts +0 -98
- package/src/monitoring/cache.ts +0 -121
- package/src/monitoring/dashboards/grafana-dashboard.json +0 -172
- package/src/monitoring/errorRecovery.ts +0 -334
- package/src/monitoring/errors.ts +0 -105
- package/src/monitoring/fileLogger.ts +0 -194
- package/src/monitoring/hallucinations.ts +0 -45
- package/src/monitoring/health.ts +0 -171
- package/src/monitoring/index.ts +0 -16
- package/src/monitoring/lock.ts +0 -158
- package/src/monitoring/logger.ts +0 -178
- package/src/monitoring/profiler.ts +0 -156
- package/src/monitoring/tokenLogger.ts +0 -141
- package/src/orchestrate/analyzer.ts +0 -461
- package/src/orchestrate/index.ts +0 -6
- package/src/orchestrate/types.ts +0 -65
- package/src/orchestration/README.md +0 -480
- package/src/orchestration/agentAssigner.ts +0 -206
- package/src/orchestration/batchPlanner.ts +0 -201
- package/src/orchestration/conflictClustering.ts +0 -344
- package/src/orchestration/conflictGraph.ts +0 -63
- package/src/orchestration/conflictPredictor.ts +0 -170
- package/src/orchestration/deliverablesGenerator.ts +0 -345
- package/src/orchestration/determinism.ts +0 -232
- package/src/orchestration/index.ts +0 -45
- package/src/orchestration/mergeTreeSimulator.ts +0 -137
- package/src/orchestration/mis.ts +0 -123
- package/src/orchestration/toolchainManifest.ts +0 -169
- package/src/orchestration/types.ts +0 -103
- package/src/performance.README.md +0 -99
- package/src/performance.ts +0 -279
- package/src/planner/README.md +0 -215
- package/src/planner/dependencyParser.ts +0 -404
- package/src/planner/dependencyScoring.ts +0 -346
- package/src/planner/fileAnalysis.ts +0 -693
- package/src/planner/index.ts +0 -41
- package/src/planner/scopeValidator.ts +0 -308
- package/src/planner/types.ts +0 -80
- package/src/planner/validation.ts +0 -493
- package/src/preview/constraints.ts +0 -333
- package/src/procedures/index.ts +0 -47
- package/src/procedures/loader.ts +0 -252
- package/src/procedures/schema.ts +0 -191
- package/src/procedures/stateMachine.ts +0 -160
- package/src/procedures/types.ts +0 -178
- package/src/receipts/emit.ts +0 -354
- package/src/receipts/index.ts +0 -48
- package/src/receipts/schema.ts +0 -227
- package/src/report/aggregate.ts +0 -160
- package/src/runs/artifacts.ts +0 -315
- package/src/runs/attribution.ts +0 -132
- package/src/runs/context.ts +0 -54
- package/src/runs/decisions.ts +0 -407
- package/src/runs/enforcement.ts +0 -395
- package/src/runs/failures.ts +0 -517
- package/src/runs/index.ts +0 -141
- package/src/runs/manager.ts +0 -910
- package/src/runs/statusBuilder.ts +0 -233
- package/src/runs/storage.ts +0 -290
- package/src/runs/types.ts +0 -216
- package/src/schema/flakeReport.ts +0 -74
- package/src/schema/gateMapping.ts +0 -107
- package/src/schema/gateReport.ts +0 -236
- package/src/schema/weaveLock.ts +0 -51
- package/src/schema.ts +0 -313
- package/src/schemas/executorManifest.ts +0 -204
- package/src/schemas/feature-spec-v0.ts +0 -40
- package/src/schemas/persona.ts +0 -162
- package/src/schemas/project.ts +0 -91
- package/src/schemas/runCentric.ts +0 -402
- package/src/schemas/task-contract.ts +0 -626
- package/src/schemas/vacuumReadyPrompt.ts +0 -128
- package/src/sdk/index.ts +0 -113
- package/src/sdk/parser.ts +0 -101
- package/src/sdk/query.ts +0 -315
- package/src/sdk/validator.ts +0 -114
- package/src/security/README.md +0 -496
- package/src/security/authentication.ts +0 -173
- package/src/security/authorization.ts +0 -348
- package/src/security/commandValidator.ts +0 -195
- package/src/security/compliance.ts +0 -688
- package/src/security/index.ts +0 -85
- package/src/security/policy.ts +0 -399
- package/src/security/sarif.ts +0 -179
- package/src/security/scanning.ts +0 -362
- package/src/security/secrets.ts +0 -520
- package/src/shared/git/index.ts +0 -30
- package/src/shared/git/runGit.ts +0 -281
- package/src/shared/git/runtime.ts +0 -66
- package/src/snapshot/builder.ts +0 -229
- package/src/snapshot/index.ts +0 -8
- package/src/store/CONTRACT.md +0 -189
- package/src/store/README.md +0 -22
- package/src/store/index.ts +0 -99
- package/src/store/inmemory/index.ts +0 -10
- package/src/store/inmemory/run-store.ts +0 -268
- package/src/store/postgres/.gitkeep +0 -0
- package/src/store/run-store.ts +0 -405
- package/src/store/sqlite/index.ts +0 -7
- package/src/store/sqlite/run-store.ts +0 -525
- package/src/store/sqlite/schema.sql +0 -67
- package/src/telemetry/frames.ts +0 -179
- package/src/telemetry/index.ts +0 -5
- package/src/tiers/index.ts +0 -34
- package/src/tiers/metrics.ts +0 -156
- package/src/tiers/schema.ts +0 -95
- package/src/tiers/suggest.ts +0 -183
- package/src/types/guardrails.ts +0 -452
- package/src/types/index.ts +0 -42
- package/src/util/canonicalJson.ts +0 -29
- package/src/util/colorControl.ts +0 -46
- package/src/util/envUtils.ts +0 -139
- package/src/util/hash.ts +0 -69
- package/src/util/lockHash.ts +0 -90
- package/src/util/minHeap.ts +0 -108
- package/src/util/progress.ts +0 -89
- package/src/util/tokenEstimator.ts +0 -55
- package/src/utils/fingerprint.ts +0 -105
- package/src/utils/paths.ts +0 -209
- package/src/utils/tokens.ts +0 -151
- package/src/utils/validation.ts +0 -53
- package/src/verification/diff-applier.ts +0 -60
- package/src/verification/engine-verifier.ts +0 -171
- package/src/verification/errors.ts +0 -30
- package/src/verification/index.ts +0 -13
- package/src/weave/audit/index.ts +0 -17
- package/src/weave/audit/logger.ts +0 -206
- package/src/weave/authority/evaluator.ts +0 -660
- package/src/weave/authority/index.ts +0 -30
- package/src/weave/authority/schema.ts +0 -292
- package/src/weave/checkpoint/index.ts +0 -7
- package/src/weave/checkpoint/storage.ts +0 -223
- package/src/weave/checkpoint/types.ts +0 -121
- package/src/weave/checkpoint/utils.ts +0 -207
- package/src/weave/clusterGates.ts +0 -366
- package/src/weave/draftPR.ts +0 -214
- package/src/weave/executor/d1-executor.ts +0 -822
- package/src/weave/executor/d2-executor.ts +0 -381
- package/src/weave/executor/index.ts +0 -24
- package/src/weave/executor/types.ts +0 -135
- package/src/weave/fanout/generator.ts +0 -186
- package/src/weave/fanout/index.ts +0 -51
- package/src/weave/fanout/loader.ts +0 -134
- package/src/weave/fanout/matcher.ts +0 -239
- package/src/weave/fanout/schema.ts +0 -178
- package/src/weave/frameHelper.ts +0 -126
- package/src/weave/gateFailureHandler.ts +0 -405
- package/src/weave/index.ts +0 -89
- package/src/weave/lockFile.ts +0 -193
- package/src/weave/mergeHelpers.ts +0 -377
- package/src/weave/mergeWeaveSequential.ts +0 -282
- package/src/weave/metrics/calculator.ts +0 -362
- package/src/weave/metrics/index.ts +0 -44
- package/src/weave/metrics/logger.ts +0 -291
- package/src/weave/metrics/schema.ts +0 -505
- package/src/weave/planner/index.ts +0 -23
- package/src/weave/planner/planner.ts +0 -411
- package/src/weave/planner/types.ts +0 -181
- package/src/weave/policy/index.ts +0 -63
- package/src/weave/policy/loader.ts +0 -148
- package/src/weave/policy/schema.ts +0 -290
- package/src/weave/post-merge-checks.ts +0 -220
- package/src/weave/preflightConflicts.ts +0 -375
- package/src/weave/receiptHelper.ts +0 -287
- package/src/weave/recovery.ts +0 -232
- package/src/weave/resolutionGuidance.ts +0 -173
- package/src/weave/stateMachine.ts +0 -426
- package/src/weave/testfix/applier.ts +0 -195
- package/src/weave/testfix/index.ts +0 -18
- package/src/weave/testfix/loader.ts +0 -116
- package/src/weave/testfix/matcher.ts +0 -158
- package/src/weave/testfix/schema.ts +0 -218
- package/src/weave/types.ts +0 -305
- package/src/weave/utils/copilot-completion.ts +0 -76
- package/test-mcp-dogfood.mjs +0 -128
- package/test-mcp.mjs +0 -116
- package/tests/README.md +0 -155
- package/tests/advanced-cli-e2e.spec.ts +0 -218
- package/tests/agentAssigner.spec.ts +0 -261
- package/tests/ai-conflict-strategy-cache.spec.ts +0 -254
- package/tests/ai-conflict-strategy-risk.spec.ts +0 -287
- package/tests/ai-conflict-strategy-schema.spec.ts +0 -252
- package/tests/ai-conflict-strategy.spec.ts +0 -442
- package/tests/aliases/resolver.spec.ts +0 -238
- package/tests/audit/context.spec.ts +0 -283
- package/tests/audit/emitter.spec.ts +0 -347
- package/tests/audit/gateMatrix.spec.ts +0 -335
- package/tests/audit/integration.spec.ts +0 -236
- package/tests/audit/redaction.spec.ts +0 -290
- package/tests/audit/sarif-integration.spec.ts +0 -303
- package/tests/audit/sarif.spec.ts +0 -458
- package/tests/audit/schema-events.spec.ts +0 -421
- package/tests/audit/schema.spec.ts +0 -434
- package/tests/audit/sdk-integration.spec.ts +0 -598
- package/tests/audit/sdk.spec.ts +0 -318
- package/tests/audit/signing-integration.spec.ts +0 -276
- package/tests/audit/signing.spec.ts +0 -350
- package/tests/audit-signing.spec.ts +0 -406
- package/tests/audit-verify-cli.spec.ts +0 -176
- package/tests/autopilot-e2e-level3-4.spec.ts +0 -741
- package/tests/autopilot-integration.spec.ts +0 -274
- package/tests/autopilot-level1.spec.ts +0 -449
- package/tests/autopilot-level2.spec.ts +0 -188
- package/tests/autopilot-level3.spec.ts +0 -266
- package/tests/autopilot-level4.spec.ts +0 -454
- package/tests/autopilot.spec.ts +0 -379
- package/tests/ax-error-adapters.spec.ts +0 -580
- package/tests/batch-planner.spec.ts +0 -500
- package/tests/benchmark-infrastructure.spec.ts +0 -445
- package/tests/benchmarks/README.md +0 -103
- package/tests/benchmarks/baselines/baseline.json +0 -127
- package/tests/benchmarks/core/dependencyResolver.bench.ts +0 -128
- package/tests/benchmarks/core/planParser.bench.ts +0 -114
- package/tests/benchmarks/core/topologicalSort.bench.ts +0 -102
- package/tests/benchmarks/index.ts +0 -36
- package/tests/benchmarks/io/fileOperations.bench.ts +0 -132
- package/tests/benchmarks/io/gitOperations.bench.ts +0 -99
- package/tests/benchmarks/utils/graphGenerator.ts +0 -201
- package/tests/benchmarks/utils/reporter.ts +0 -231
- package/tests/benchmarks/workflows/endToEnd.bench.ts +0 -132
- package/tests/bootstrap.test.ts +0 -319
- package/tests/budget-tracker.spec.ts +0 -279
- package/tests/bulkOps.spec.ts +0 -166
- package/tests/bulletproof-determinism.test.ts +0 -223
- package/tests/canonicalJson.test.ts +0 -130
- package/tests/checkRunConverter.spec.ts +0 -357
- package/tests/cli/commands/gate/test.spec.ts +0 -564
- package/tests/cli/emit-frames-flag.spec.ts +0 -117
- package/tests/cli/exitHandler.spec.ts +0 -314
- package/tests/cli/flags.spec.ts +0 -223
- package/tests/cli/formatters.spec.ts +0 -513
- package/tests/cli/output.spec.ts +0 -221
- package/tests/cli-autopilot.spec.ts +0 -170
- package/tests/cli-budget-guards.spec.ts +0 -210
- package/tests/cli-color-control.spec.ts +0 -334
- package/tests/cli-deliverables-generator.spec.ts +0 -185
- package/tests/cli-determinism.spec.ts +0 -496
- package/tests/cli-init-enterprise.spec.ts +0 -294
- package/tests/cli-init-json.spec.ts +0 -154
- package/tests/cli-init-local.spec.ts +0 -159
- package/tests/cli-json-envelope.spec.ts +0 -140
- package/tests/cli-json.spec.ts +0 -408
- package/tests/cli-orchestrate-plan-batch.spec.ts +0 -329
- package/tests/cli-orchestrate.spec.ts +0 -231
- package/tests/cli-plan-generation.spec.ts +0 -367
- package/tests/cli-plan-review.spec.ts +0 -300
- package/tests/cli-progress.spec.ts +0 -193
- package/tests/cli-ux-enhancements.spec.ts +0 -213
- package/tests/cliJsonPurity.spec.ts +0 -437
- package/tests/cliSuggestDeps.spec.ts +0 -360
- package/tests/cluster-gates-rollback.spec.ts +0 -353
- package/tests/command-validator-integration.spec.ts +0 -305
- package/tests/command-validator.spec.ts +0 -380
- package/tests/commands/autopilot.spec.ts +0 -124
- package/tests/commands/config-validate.spec.ts +0 -301
- package/tests/commands/config.spec.ts +0 -311
- package/tests/commands/create-project.spec.ts +0 -90
- package/tests/commands/doctor.spec.ts +0 -57
- package/tests/commands/execute.spec.ts +0 -293
- package/tests/commands/gateAttest.spec.ts +0 -172
- package/tests/commands/gateImport.spec.ts +0 -176
- package/tests/commands/gateReport.spec.ts +0 -130
- package/tests/commands/guards.spec.ts +0 -114
- package/tests/commands/idea.spec.ts +0 -177
- package/tests/commands/merge.spec.ts +0 -166
- package/tests/commands/plan.spec.ts +0 -123
- package/tests/commands/query.spec.ts +0 -294
- package/tests/commands/report.spec.ts +0 -54
- package/tests/commands/retry.spec.ts +0 -300
- package/tests/commands/schema.spec.ts +0 -136
- package/tests/commands/validation.spec.ts +0 -229
- package/tests/completion.spec.ts +0 -133
- package/tests/config-inspect.spec.ts +0 -202
- package/tests/conflictClustering-e2e.spec.ts +0 -278
- package/tests/conflictClustering.spec.ts +0 -550
- package/tests/conflictGraph.spec.ts +0 -126
- package/tests/conflictPredictor.spec.ts +0 -238
- package/tests/deliverables-generator.spec.ts +0 -329
- package/tests/deliverables.spec.ts +0 -381
- package/tests/dependencyParser-github.spec.ts +0 -244
- package/tests/dependencyParser.spec.ts +0 -386
- package/tests/dependencyScoring.spec.ts +0 -668
- package/tests/deterministic-applicable.test.ts +0 -156
- package/tests/deterministic-build.test.ts +0 -172
- package/tests/deterministic-simple.test.ts +0 -32
- package/tests/discover-suggest-integration.spec.ts +0 -340
- package/tests/dogfood-merge-weave-script.spec.ts +0 -150
- package/tests/e2e/planner.spec.ts +0 -596
- package/tests/e2e-comprehensive.test.ts +0 -500
- package/tests/e2e-determinism.test.ts +0 -293
- package/tests/e2e-synthetic-6pr-weave.spec.ts +0 -329
- package/tests/enterprise-init.spec.ts +0 -350
- package/tests/envUtils.spec.ts +0 -267
- package/tests/error-handling.test.ts +0 -104
- package/tests/error-recovery.spec.ts +0 -451
- package/tests/execution-plan-v1.test.ts +0 -257
- package/tests/executionState-loadGateResults.spec.ts +0 -267
- package/tests/executionState.test.ts +0 -169
- package/tests/executors/README.md +0 -100
- package/tests/executors/frameContract-integration.spec.ts +0 -324
- package/tests/executors/frameContract.spec.ts +0 -531
- package/tests/executors/guardrailEnforcement.spec.ts +0 -424
- package/tests/executors/lifecycle.spec.ts +0 -313
- package/tests/executors/toolBudget.spec.ts +0 -473
- package/tests/feature-spec-v0.test.ts +0 -145
- package/tests/fileAnalysis.spec.ts +0 -946
- package/tests/fingerprint.spec.ts +0 -100
- package/tests/fixtures/README.md +0 -380
- package/tests/fixtures/deliverables/batch-example-plan.json +0 -62
- package/tests/fixtures/executors/README.md +0 -57
- package/tests/fixtures/executors/index.ts +0 -9
- package/tests/fixtures/executors/mock-executor.ts +0 -204
- package/tests/fixtures/executors/registry.ts +0 -51
- package/tests/fixtures/executors/types.ts +0 -95
- package/tests/fixtures/fixtures.spec.ts +0 -307
- package/tests/fixtures/gates/configs.ts +0 -234
- package/tests/fixtures/gates/results.ts +0 -234
- package/tests/fixtures/harvest-bundle-fixture.json +0 -87
- package/tests/fixtures/index.ts +0 -219
- package/tests/fixtures/invalid/plans.ts +0 -178
- package/tests/fixtures/jest/all-passing.json +0 -71
- package/tests/fixtures/jest/snapshot-failures.json +0 -66
- package/tests/fixtures/jest/some-failing.json +0 -100
- package/tests/fixtures/jest/with-location.json +0 -84
- package/tests/fixtures/junit/cdata-messages.xml +0 -29
- package/tests/fixtures/junit/multiple-suites.xml +0 -30
- package/tests/fixtures/junit/single-suite.xml +0 -17
- package/tests/fixtures/junit/with-errors.xml +0 -19
- package/tests/fixtures/junit/with-skipped.xml +0 -18
- package/tests/fixtures/npm-audit.json +0 -32
- package/tests/fixtures/plan.bad-schema.json +0 -5
- package/tests/fixtures/plan.bad-unknown-dep.json +0 -10
- package/tests/fixtures/plan.ci-gates.json +0 -36
- package/tests/fixtures/plan.complex-cycle.json +0 -22
- package/tests/fixtures/plan.cycle.json +0 -14
- package/tests/fixtures/plan.deep-chain.json +0 -95
- package/tests/fixtures/plan.dogfood-execute.json +0 -36
- package/tests/fixtures/plan.gates.json +0 -30
- package/tests/fixtures/plan.integration-pyramid.json +0 -56
- package/tests/fixtures/plan.orphans.json +0 -22
- package/tests/fixtures/plan.parallel.json +0 -30
- package/tests/fixtures/plan.tiny.json +0 -18
- package/tests/fixtures/plan.wide-parallel.json +0 -75
- package/tests/fixtures/plan.with-failures.json +0 -26
- package/tests/fixtures/plan.with-vuln.json +0 -25
- package/tests/fixtures/planner/cross-module.json +0 -101
- package/tests/fixtures/planner/cycle-error.json +0 -56
- package/tests/fixtures/planner/diamond-pattern.json +0 -74
- package/tests/fixtures/planner/empty-repo.json +0 -9
- package/tests/fixtures/planner/file-overlap-heavy.json +0 -110
- package/tests/fixtures/planner/invalid-pr.json +0 -25
- package/tests/fixtures/planner/merge-conflicts.json +0 -42
- package/tests/fixtures/planner/mixed-deps.json +0 -101
- package/tests/fixtures/planner/self-dependency.json +0 -24
- package/tests/fixtures/planner/simple-stack.json +0 -79
- package/tests/fixtures/planner/single-pr.json +0 -25
- package/tests/fixtures/planner/stale-pr.json +0 -40
- package/tests/fixtures/plans/complex.ts +0 -201
- package/tests/fixtures/plans/diamond.ts +0 -115
- package/tests/fixtures/plans/linear.ts +0 -74
- package/tests/fixtures/plans/simple.ts +0 -61
- package/tests/fixtures/prs/basic.ts +0 -175
- package/tests/fixtures/prs/withDeps.ts +0 -197
- package/tests/fixtures/scan-results-clean.sarif +0 -15
- package/tests/fixtures/scan-results.sarif +0 -74
- package/tests/fixtures/scenarios/mergeWorkflows.ts +0 -300
- package/tests/fixtures/scenarios/syntheticWeave.ts +0 -351
- package/tests/fixtures/snapshot/package.json +0 -5
- package/tests/fixtures/snapshot/sample.ts +0 -21
- package/tests/fixtures/utils/cleanup.ts +0 -81
- package/tests/fixtures/utils/mockGitHub.ts +0 -219
- package/tests/fixtures/utils/tempDir.ts +0 -109
- package/tests/fixtures/verification/expected-verification.json +0 -16
- package/tests/fixtures/verification/receipt.json +0 -31
- package/tests/fixtures/verification/snapshot.json +0 -44
- package/tests/fixtures/vitest/all-passing.json +0 -67
- package/tests/fixtures/vitest/complex-nested-suites.json +0 -98
- package/tests/fixtures/vitest/some-failing.json +0 -98
- package/tests/fixtures/vitest/with-coverage.json +0 -97
- package/tests/fixtures-usage-examples.spec.ts +0 -304
- package/tests/flakeReport.spec.ts +0 -267
- package/tests/frames/ci-gate-integration.spec.ts +0 -331
- package/tests/frames/controller.spec.ts +0 -165
- package/tests/frames/emitter.spec.ts +0 -371
- package/tests/frames/idempotency.spec.ts +0 -177
- package/tests/frames/storage.spec.ts +0 -346
- package/tests/frames/types.spec.ts +0 -249
- package/tests/frames/v2-schema-integration.spec.ts +0 -435
- package/tests/gate-working-directory.spec.ts +0 -204
- package/tests/gateMapping.spec.ts +0 -161
- package/tests/gateReportIntegration.spec.ts +0 -175
- package/tests/gateReportValidation.spec.ts +0 -452
- package/tests/gates/test/adapters/jest-json.spec.ts +0 -372
- package/tests/gates/test/adapters/junit-xml.spec.ts +0 -421
- package/tests/gates/test/adapters/registry.spec.ts +0 -376
- package/tests/gates/test/adapters/vitest-json.spec.ts +0 -455
- package/tests/gates/test/enrichment/failureId.spec.ts +0 -131
- package/tests/gates/test/enrichment/nextActions.spec.ts +0 -365
- package/tests/gates/test/enrichment/rerunTemplates.spec.ts +0 -187
- package/tests/gates/test/enrichment/signature.spec.ts +0 -163
- package/tests/gates/test/enrichment/stackParser.spec.ts +0 -203
- package/tests/gates/turncost-integration.spec.ts +0 -221
- package/tests/gates/validation-integration.spec.ts +0 -147
- package/tests/gates/validator.spec.ts +0 -200
- package/tests/gates.test.ts +0 -255
- package/tests/gatesWithPolicy.hostilityTimeoutAdjustment.spec.ts +0 -156
- package/tests/git-operations-receipts.spec.ts +0 -121
- package/tests/git-operations.test.ts +0 -152
- package/tests/git-runtime.spec.ts +0 -175
- package/tests/github-api.labels.spec.ts +0 -21
- package/tests/github-api.test.ts +0 -85
- package/tests/github-context-diet.spec.ts +0 -441
- package/tests/github-diff-hunks.spec.ts +0 -387
- package/tests/github-integration.spec.ts +0 -774
- package/tests/github-minimal-context.spec.ts +0 -338
- package/tests/github-symbol-map.spec.ts +0 -414
- package/tests/githubClient.spec.ts +0 -123
- package/tests/governance/mcpStatus.spec.ts +0 -276
- package/tests/governance/timeoutAdjustment.spec.ts +0 -149
- package/tests/governance/turnCostSummary.spec.ts +0 -188
- package/tests/governance-retention.spec.ts +0 -151
- package/tests/governance-wrapper-delegation.spec.ts +0 -148
- package/tests/guardrails.spec.ts +0 -860
- package/tests/hash.test.ts +0 -83
- package/tests/helpers/cli.ts +0 -23
- package/tests/helpers/getStd.ts +0 -1
- package/tests/helpers/makeGate.ts +0 -19
- package/tests/helpers/plannerTestHelpers.ts +0 -314
- package/tests/hooks/events.spec.ts +0 -518
- package/tests/hostility/checks.spec.ts +0 -295
- package/tests/hostility/integration.spec.ts +0 -123
- package/tests/hostility/score.spec.ts +0 -175
- package/tests/init.spec.ts +0 -270
- package/tests/integration/hipaa-encryption.spec.ts +0 -148
- package/tests/integration/lex-smoke-test.spec.ts +0 -328
- package/tests/integration-e2e.test.ts +0 -244
- package/tests/integration-matrix.test.ts +0 -409
- package/tests/interPRConflicts.spec.ts +0 -254
- package/tests/interactive-plan-history.spec.ts +0 -255
- package/tests/interactive-plan-review.spec.ts +0 -287
- package/tests/issue-analyzer.spec.ts +0 -593
- package/tests/lexsona-integration.spec.ts +0 -311
- package/tests/localOverlay.spec.ts +0 -203
- package/tests/lockHash.spec.ts +0 -167
- package/tests/mcp-auth-errors.spec.ts +0 -190
- package/tests/mcp-contracts.spec.ts +0 -290
- package/tests/mcp-gates-external-plan.spec.ts +0 -146
- package/tests/mcp-granular-tools.spec.ts +0 -208
- package/tests/mcp-runstore-integration.spec.ts +0 -334
- package/tests/mcp-scope-integration.spec.ts +0 -318
- package/tests/mcp-task-handoff.spec.ts +0 -320
- package/tests/mcp-workflow-guide.spec.ts +0 -53
- package/tests/mcp.test.ts +0 -151
- package/tests/merge-conflict-detection.spec.ts +0 -260
- package/tests/mergeEligibility.test.ts +0 -201
- package/tests/mergeLockHash.spec.ts +0 -158
- package/tests/mergeOrder-with-fixtures.spec.ts +0 -215
- package/tests/mergeOrder.test.ts +0 -108
- package/tests/mergeTreeSimulator.spec.ts +0 -145
- package/tests/metrics/export.spec.ts +0 -446
- package/tests/metrics/turncost.spec.ts +0 -309
- package/tests/metrics-template.spec.ts +0 -137
- package/tests/migrateProfile.spec.ts +0 -254
- package/tests/mis.spec.ts +0 -202
- package/tests/monitoring-audit.spec.ts +0 -181
- package/tests/monitoring-cache.spec.ts +0 -331
- package/tests/monitoring-error-recovery.spec.ts +0 -236
- package/tests/monitoring-errors.spec.ts +0 -193
- package/tests/monitoring-fileLogger.spec.ts +0 -319
- package/tests/monitoring-health.spec.ts +0 -152
- package/tests/monitoring-lock.spec.ts +0 -308
- package/tests/monitoring-logger.spec.ts +0 -157
- package/tests/monitoring-metrics.spec.ts +0 -158
- package/tests/monitoring-profiler.spec.ts +0 -197
- package/tests/orchestration-determinism.spec.ts +0 -204
- package/tests/parseRemote.spec.ts +0 -25
- package/tests/pathResolver.spec.ts +0 -122
- package/tests/paths.spec.ts +0 -68
- package/tests/performance.spec.ts +0 -322
- package/tests/pipeline-determinism.spec.ts +0 -597
- package/tests/plan-tier-integration.spec.ts +0 -184
- package/tests/precedence-resolution.spec.ts +0 -682
- package/tests/preflightConflicts.spec.ts +0 -205
- package/tests/procedures/keystone-policy.spec.ts +0 -296
- package/tests/procedures/loader.spec.ts +0 -585
- package/tests/procedures/pr-review.spec.ts +0 -321
- package/tests/profileResolver.spec.ts +0 -375
- package/tests/progress-indicators.spec.ts +0 -139
- package/tests/promptsResolver.spec.ts +0 -443
- package/tests/public-api.spec.ts +0 -272
- package/tests/query.spec.ts +0 -170
- package/tests/receipts.spec.ts +0 -463
- package/tests/release-prepare.spec.ts +0 -268
- package/tests/report.test.ts +0 -335
- package/tests/resolutionGuidance.spec.ts +0 -160
- package/tests/rotate-secrets-example.spec.ts +0 -198
- package/tests/rulesResolver.spec.ts +0 -232
- package/tests/runGit.spec.ts +0 -229
- package/tests/runner-lifecycle-integration.spec.ts +0 -283
- package/tests/runs/artifacts.spec.ts +0 -367
- package/tests/runs/decisions.spec.ts +0 -495
- package/tests/runs/enforcement.spec.ts +0 -555
- package/tests/runs/failures.spec.ts +0 -554
- package/tests/runs/manager-runstore-integration.spec.ts +0 -455
- package/tests/runs/manager.spec.ts +0 -678
- package/tests/runs-manager.spec.ts +0 -485
- package/tests/safety-acceptance.spec.ts +0 -278
- package/tests/safety-enhanced.spec.ts +0 -329
- package/tests/safety-framework.spec.ts +0 -427
- package/tests/safety-guards-integration.spec.ts +0 -213
- package/tests/safety-integration.spec.ts +0 -278
- package/tests/sarif-parser.spec.ts +0 -148
- package/tests/schema.test.ts +0 -88
- package/tests/schemas/behavior-rule.spec.ts +0 -366
- package/tests/schemas/executorManifest.spec.ts +0 -441
- package/tests/schemas/persona-integration.spec.ts +0 -62
- package/tests/schemas/persona.spec.ts +0 -172
- package/tests/schemas/project.spec.ts +0 -247
- package/tests/schemas/run-store.spec.ts +0 -553
- package/tests/schemas/runCentric.spec.ts +0 -463
- package/tests/schemas/vacuumReadyPrompt.spec.ts +0 -515
- package/tests/scope-github-auto-detection.spec.ts +0 -200
- package/tests/scopeValidator.spec.ts +0 -497
- package/tests/security-authentication.spec.ts +0 -42
- package/tests/security-authorization.spec.ts +0 -350
- package/tests/security-cli.spec.ts +0 -264
- package/tests/security-compliance.spec.ts +0 -334
- package/tests/security-policy.spec.ts +0 -295
- package/tests/security-scanning.spec.ts +0 -349
- package/tests/security-secrets.spec.ts +0 -401
- package/tests/store/create-run-store.spec.ts +0 -185
- package/tests/store/inmemory/run-store.spec.ts +0 -533
- package/tests/store/sqlite/run-store.spec.ts +0 -849
- package/tests/telemetry/frames.spec.ts +0 -120
- package/tests/tiers.spec.ts +0 -466
- package/tests/token-usage.spec.ts +0 -309
- package/tests/toolchain-manifest.spec.ts +0 -145
- package/tests/unified-budget.spec.ts +0 -713
- package/tests/unit/cache/issue-cache.spec.ts +0 -131
- package/tests/unit/fanout/analyzer-integration.spec.ts +0 -398
- package/tests/unit/fanout/analyzer.spec.ts +0 -605
- package/tests/unit/fanout/github-adapter.spec.ts +0 -203
- package/tests/unit/fanout/harvest.spec.ts +0 -93
- package/tests/unit/fanout/monitor.spec.ts +0 -297
- package/tests/unit/fanout/types.spec.ts +0 -308
- package/tests/unit/github/batch-ops.spec.ts +0 -179
- package/tests/unit/learning/counter-example.spec.ts +0 -168
- package/tests/unit/learning/storage.spec.ts +0 -154
- package/tests/unit/preview/constraints.spec.ts +0 -429
- package/tests/unit/runs/attribution.spec.ts +0 -204
- package/tests/unit/schemas/task-contract.spec.ts +0 -483
- package/tests/unit/snapshot/builder.spec.ts +0 -389
- package/tests/unit/verification/engine-verifier.spec.ts +0 -279
- package/tests/unit/weave/authority-evaluator.spec.ts +0 -404
- package/tests/unit/weave/authority-schema.spec.ts +0 -199
- package/tests/unit/weave/auto-undraft-integration.spec.ts +0 -349
- package/tests/unit/weave/copilot-completion.spec.ts +0 -182
- package/tests/unit/weave/d1-executor.spec.ts +0 -269
- package/tests/unit/weave/d2-executor.spec.ts +0 -334
- package/tests/unit/weave/fanout-generator.spec.ts +0 -365
- package/tests/unit/weave/fanout-matcher.spec.ts +0 -320
- package/tests/unit/weave/fanout-schema.spec.ts +0 -221
- package/tests/unit/weave/mergeWeaveSequential.spec.ts +0 -268
- package/tests/unit/weave/metrics-calculator.spec.ts +0 -212
- package/tests/unit/weave/metrics-logger.spec.ts +0 -233
- package/tests/unit/weave/metrics-schema.spec.ts +0 -383
- package/tests/unit/weave/multi-repo-plan.spec.ts +0 -221
- package/tests/unit/weave/planner.spec.ts +0 -227
- package/tests/unit/weave/post-merge-checks.spec.ts +0 -342
- package/tests/unit/weave/recovery.spec.ts +0 -306
- package/tests/unit/weave/testfix/applier.spec.ts +0 -364
- package/tests/unit/weave/testfix/e2e.spec.ts +0 -273
- package/tests/unit/weave/testfix/integration.spec.ts +0 -128
- package/tests/unit/weave/testfix/matcher.spec.ts +0 -321
- package/tests/unit/weave/testfix/schema.spec.ts +0 -298
- package/tests/utils/fingerprint.spec.ts +0 -251
- package/tests/utils/paths.spec.ts +0 -284
- package/tests/utils/tokens.spec.ts +0 -210
- package/tests/utils/validation.spec.ts +0 -215
- package/tests/utils-validation.spec.ts +0 -80
- package/tests/validate-manifests.spec.ts +0 -231
- package/tests/validation.spec.ts +0 -501
- package/tests/vuln-gate.spec.ts +0 -341
- package/tests/weave/adr007-integration.spec.ts +0 -309
- package/tests/weave/checkpoint/cli-integration.spec.ts +0 -118
- package/tests/weave/checkpoint/storage.spec.ts +0 -302
- package/tests/weave/checkpoint/utils.spec.ts +0 -223
- package/tests/weave/frameHelper.spec.ts +0 -423
- package/tests/weave/gateFailureHandler.spec.ts +0 -249
- package/tests/weave/lockFile.spec.ts +0 -387
- package/tests/weave/mergeHelpers.spec.ts +0 -173
- package/tests/weave/receiptHelper.spec.ts +0 -261
- package/tests/weave/stateMachine.spec.ts +0 -436
- package/tests/weave-contract.test.ts +0 -517
- package/tests/weave-e2e.spec.ts +0 -279
- package/tests/weaveLock.spec.ts +0 -136
- package/tests/workflow-state-machine.spec.ts +0 -274
- package/tests/write-protection.spec.ts +0 -213
- package/tsconfig.json +0 -18
- package/tsup.config.ts +0 -12
- package/vitest.benchmark.config.ts +0 -17
- package/vitest.config.ts +0 -28
- package/vitest.git.config.ts +0 -12
- package/vitest.slow-cli.config.ts +0 -28
package/README.md
CHANGED
|
@@ -1,1069 +1,190 @@
|
|
|
1
|
-
# LexRunner
|
|
1
|
+
# LexRunner (`lex-pr`)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
LexRunner turns a changing set of pull requests into a reviewable integration program: discover
|
|
4
|
+
the work, freeze a dependency plan, run bounded gates, preserve evidence, and merge only with
|
|
5
|
+
explicit authority.
|
|
5
6
|
|
|
6
|
-
|
|
7
|
+
It is useful when a repository has concurrent PRs, dependencies between changes, repeated local
|
|
8
|
+
and CI checks, or agent-assisted implementation that needs a durable handoff. It is usually not a
|
|
9
|
+
fit for a repository with one occasional PR and no integration-order problem.
|
|
7
10
|
|
|
8
|
-
|
|
11
|
+
> **Ask your agent:** “Read [`docs/agent-evaluation.md`](docs/agent-evaluation.md), evaluate this
|
|
12
|
+
> repository without installing or changing anything, and return `adopt`, `pilot`, `defer`, or
|
|
13
|
+
> `not a fit` with the smallest reversible trial.”
|
|
9
14
|
|
|
10
|
-
|
|
15
|
+
That evaluation is deliberately read-only. Installing the package, writing a plan, creating a
|
|
16
|
+
branch, pushing, opening a PR, or merging requires separate approval.
|
|
11
17
|
|
|
12
|
-
|
|
18
|
+
## What works today
|
|
13
19
|
|
|
14
|
-
|
|
15
|
-
- **CLI:** `lex-pr` (command-line interface)
|
|
16
|
-
- **OSS Core:** [Lex](https://github.com/Guffawaffle/lex) (MIT license, frames & policy)
|
|
20
|
+
LexRunner’s supported workflow has grown in layers. A normal user can stop at any layer.
|
|
17
21
|
|
|
18
|
-
|
|
22
|
+
| Layer | Current capability | First surface |
|
|
23
|
+
| ------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------------- |
|
|
24
|
+
| Deterministic plan | Freeze PRs and declared dependencies into schema-versioned `plan.json` | `lex-pr weave plan` |
|
|
25
|
+
| Merge-weave | Compute merge order, preview integration, run gates, and apply authorized merges | `lex-pr weave *`, `lex-pr gate run` |
|
|
26
|
+
| Run and evidence | Persist bounded receipts, independent verification, acceptance, and artifacts | `lex-pr attempt *` |
|
|
27
|
+
| Fanout | Harvest and analyze issue/PR evidence for parallel work planning | `lex-pr fanout *` |
|
|
28
|
+
| Assisted agent work | Prepare an immutable packet and workspace envelope, attach a foreground-owned worker, then verify its claims | CLI/MCP Attempt lifecycle |
|
|
19
29
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
30
|
+
The ADR-010 coordination model is accepted and its assisted Attempt lifecycle is implemented.
|
|
31
|
+
LexRunner also has a tested headless reconciliation **application boundary**, but it is not a
|
|
32
|
+
general production supervisor: there is no approved public headless launch surface, native
|
|
33
|
+
host/reboot recovery remains release evidence, and Stage 5 fault-injection and authority expansion
|
|
34
|
+
remain unproven. See [ADR-010](docs/adr/ADR-010-agent-work-orchestration-protocol.md) and the
|
|
35
|
+
[headless proof boundary](docs/architecture/headless-supervisor.md).
|
|
26
36
|
|
|
27
|
-
|
|
28
|
-
👉 **Choose LexRunner if:** You need the full merge-weave orchestration CLI (built on Lex).
|
|
37
|
+
## Smallest useful trial
|
|
29
38
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
LexRunner consumes Lex as an npm dependency (`@smartergpt/lex`). For details on packaging decisions and version management, see [ADR-008: Lex Packaging Strategy](docs/adr/ADR-008-lex-packaging.md).
|
|
33
|
-
|
|
34
|
-
#### Current Version
|
|
35
|
-
|
|
36
|
-
- **Package:** `@smartergpt/lex`
|
|
37
|
-
- **Version:** `^2.1.1` (allows compatible updates)
|
|
38
|
-
- **License:** MIT
|
|
39
|
-
- **Registry:** https://www.npmjs.com/package/@smartergpt/lex
|
|
40
|
-
|
|
41
|
-
#### Managing Lex Updates
|
|
42
|
-
|
|
43
|
-
Use the provided script to manage Lex dependency:
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
# Check for available updates
|
|
47
|
-
./scripts/package-lex.sh check
|
|
48
|
-
|
|
49
|
-
# Validate current installation
|
|
50
|
-
./scripts/package-lex.sh validate
|
|
51
|
-
|
|
52
|
-
# Update to latest compatible version
|
|
53
|
-
./scripts/package-lex.sh update
|
|
54
|
-
|
|
55
|
-
# Show package information
|
|
56
|
-
./scripts/package-lex.sh info
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
#### Manual Update Process
|
|
60
|
-
|
|
61
|
-
To update Lex manually:
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
# 1. Check for updates
|
|
65
|
-
npm outdated @smartergpt/lex
|
|
66
|
-
|
|
67
|
-
# 2. Update to latest compatible version
|
|
68
|
-
npm update @smartergpt/lex
|
|
69
|
-
|
|
70
|
-
# 3. Or install specific version
|
|
71
|
-
npm install @smartergpt/lex@2.1.1
|
|
72
|
-
|
|
73
|
-
# 4. Run tests to validate
|
|
74
|
-
npm test
|
|
75
|
-
|
|
76
|
-
# 5. Commit if tests pass
|
|
77
|
-
git add package.json package-lock.json
|
|
78
|
-
git commit -m "chore: update @smartergpt/lex to 2.1.1"
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
#### Versioning Expectations
|
|
82
|
-
|
|
83
|
-
- **Semantic Versioning:** Lex follows semver strictly
|
|
84
|
-
- **MAJOR** — Breaking API changes (requires LexRunner code updates)
|
|
85
|
-
- **MINOR** — New features, backward compatible (safe to update)
|
|
86
|
-
- **PATCH** — Bug fixes, backward compatible (safe to update)
|
|
87
|
-
- **Caret Range:** `^2.1.1` allows MINOR and PATCH updates, blocks MAJOR
|
|
88
|
-
- **Testing:** Always run tests after updating Lex
|
|
89
|
-
- **CI Integration:** GitHub Dependabot monitors for updates and security issues
|
|
90
|
-
|
|
91
|
-
#### Licensing
|
|
92
|
-
|
|
93
|
-
- **Lex License:** MIT (permissive open source)
|
|
94
|
-
- **LexRunner License:** UNLICENSED (proprietary)
|
|
95
|
-
- **Attribution:** See [NOTICE.md](NOTICE.md) for required attributions
|
|
96
|
-
- **Compliance:** Automated via `scripts/check-license-compliance.mjs`
|
|
97
|
-
|
|
98
|
-
For more details, see:
|
|
99
|
-
|
|
100
|
-
- [Lex Public API Documentation](docs/LEX_PUBLIC_API.md)
|
|
101
|
-
- [Lex Integration Guide](docs/LEX_INTEGRATION.md)
|
|
102
|
-
- [License Compliance Guide](docs/LICENSING.md)
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## MCP Multi-Repo Integration
|
|
107
|
-
|
|
108
|
-
The repository includes an optional **Model Context Protocol (MCP) server** (`src/mcp/server.ts`) that exposes deterministic tools for plan & gate workflows.
|
|
109
|
-
|
|
110
|
-
### Why
|
|
111
|
-
|
|
112
|
-
Use a single built artifact to service multiple local repositories (each as an isolated endpoint) without adding persistent services to your compose stack. This keeps lex-serve minimal (nginx + tunnel) while enabling agent orchestration.
|
|
113
|
-
|
|
114
|
-
### Generator Script
|
|
115
|
-
|
|
116
|
-
Auto-generate `servers.json` describing per-repo MCP endpoints.
|
|
117
|
-
|
|
118
|
-
Script location:
|
|
119
|
-
|
|
120
|
-
`scripts/gen_mcp_servers.py`
|
|
121
|
-
|
|
122
|
-
Key capabilities:
|
|
123
|
-
|
|
124
|
-
- Recursive or shallow git repo discovery under provided roots
|
|
125
|
-
- Include / exclude regex filters (`--include`, `--exclude`)
|
|
126
|
-
- Mutation allow-list via repeated `--mutate <repo>` or structured `--policy-file`
|
|
127
|
-
- Per-repo `.env.mcp` overlay (non-destructive; does not override explicit flags/policy)
|
|
128
|
-
- Profile detection precedence: `.smartergpt.local` → `.smartergpt`
|
|
129
|
-
- Dist autodetect: built `dist/mcp/server.js` → fallback `tsx src/mcp/server.ts`
|
|
130
|
-
- Deterministic sorted keys + SHA-256 hash guard (skip rewrite if unchanged)
|
|
131
|
-
- Optional read-only workspace variant (`--workspace-out`)
|
|
132
|
-
- Prefix isolation (`--prefix`, default `lexrunner`)
|
|
133
|
-
|
|
134
|
-
### Quick Use
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
# Build once so dist/mcp/server.js is present
|
|
138
|
-
npm run build
|
|
139
|
-
|
|
140
|
-
# Generate primary + workspace variant (recursive scan)
|
|
141
|
-
python3 scripts/gen_mcp_servers.py \
|
|
142
|
-
-r /srv -r /home/guff \
|
|
143
|
-
--recursive \
|
|
144
|
-
--include '^(smartergpt|lex-serve|lexrunner)$' \
|
|
145
|
-
--mutate lexrunner \
|
|
146
|
-
--workspace-out servers.workspace.json
|
|
147
|
-
|
|
148
|
-
# Or use the convenience npm script (uses defaults)
|
|
149
|
-
}
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### Output Shape (primary)
|
|
153
|
-
|
|
154
|
-
```jsonc
|
|
155
|
-
{
|
|
156
|
-
"mcpServers": {
|
|
157
|
-
"lexrunner-smartergpt": {
|
|
158
|
-
"command": "node",
|
|
159
|
-
"args": ["/home/guff/lexrunner/dist/mcp/server.js"],
|
|
160
|
-
"env": {
|
|
161
|
-
"ALLOW_MUTATIONS": "false",
|
|
162
|
-
"LEX_PR_PROFILE_DIR": "/srv/sites/smartergpt/.smartergpt",
|
|
163
|
-
},
|
|
164
|
-
"workingDirectory": "/srv/sites/smartergpt",
|
|
165
|
-
},
|
|
166
|
-
},
|
|
167
|
-
}
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
Workspace variant (`servers.workspace.json`) mirrors entries but forces `ALLOW_MUTATIONS=false` for all.
|
|
171
|
-
|
|
172
|
-
### Orchestrator Flow (Suggested)
|
|
173
|
-
|
|
174
|
-
1. `profile.resolve` (confirm profile path & role)
|
|
175
|
-
2. `local.init` (if runner artifacts missing)
|
|
176
|
-
3. `plan.create`
|
|
177
|
-
4. `gates.run`
|
|
178
|
-
5. `merge.apply` (dry run) → eligibility summary
|
|
179
|
-
6. `merge.apply` (real) only after explicit approval & env `ALLOW_MUTATIONS=true`
|
|
180
|
-
|
|
181
|
-
See `orchestrator-prompt.md` for a supervisory prompt template.
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
````
|
|
185
|
-
|
|
186
|
-
Workspace variant (`servers.workspace.json`) mirrors entries but forces `ALLOW_MUTATIONS=false` for all.
|
|
187
|
-
|
|
188
|
-
### Orchestrator Flow (Suggested)
|
|
189
|
-
1. `profile.resolve` (confirm profile path & role)
|
|
190
|
-
2. `local.init` (if runner artifacts missing)
|
|
191
|
-
3. `plan.create`
|
|
192
|
-
4. `gates.run`
|
|
193
|
-
5. `merge.apply` (dry run) → eligibility summary
|
|
194
|
-
6. `merge.apply` (real) only after explicit approval & env `ALLOW_MUTATIONS=true`
|
|
195
|
-
|
|
196
|
-
See `orchestrator-prompt.md` for a supervisory prompt template.
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
## Two-track separation (firm)
|
|
200
|
-
|
|
201
|
-
See [`docs/TERMS.md`](docs/TERMS.md) for complete canonical terms and separation rules. Core runner (`src/**`) never stores user/work artifacts. `.smartergpt/**` contains portable example profile only.
|
|
202
|
-
|
|
203
|
-
## Requirements
|
|
204
|
-
|
|
205
|
-
- **Node.js**: Version specified in `.nvmrc` (currently 20.18.0)
|
|
206
|
-
- **npm**: Version specified in `packageManager` field of `package.json` (currently 10.0.0)
|
|
207
|
-
- **Git**: Configured with `user.name` and `user.email`
|
|
208
|
-
|
|
209
|
-
Use `npm run cli -- doctor` to verify your environment meets all requirements.
|
|
210
|
-
|
|
211
|
-
## Quick start
|
|
212
|
-
|
|
213
|
-
### Installation
|
|
214
|
-
|
|
215
|
-
```bash
|
|
216
|
-
# Install globally
|
|
217
|
-
npm install -g lexrunner
|
|
218
|
-
|
|
219
|
-
# Or install in your project
|
|
220
|
-
npm install --save-dev lexrunner
|
|
221
|
-
````
|
|
222
|
-
|
|
223
|
-
After installation, you'll see a reminder to initialize your workspace:
|
|
224
|
-
|
|
225
|
-
```
|
|
226
|
-
📦 lexrunner installed! Run "npx lex-pr init" to set up your workspace.
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
### For New Users
|
|
230
|
-
|
|
231
|
-
**Quick Start: Merge-Weave Workflow (Recommended)**
|
|
232
|
-
|
|
233
|
-
The fastest path to merging multiple PRs:
|
|
234
|
-
|
|
235
|
-
```bash
|
|
236
|
-
# 1. Discover open PRs
|
|
237
|
-
lex-pr weave discover
|
|
238
|
-
|
|
239
|
-
# 2. Generate merge plan
|
|
240
|
-
lex-pr weave plan --from-github --output plan.json
|
|
241
|
-
|
|
242
|
-
# 3. Preview execution (dry-run)
|
|
243
|
-
lex-pr weave apply --dry-run
|
|
244
|
-
|
|
245
|
-
# 4. Execute gates
|
|
246
|
-
lex-pr weave apply
|
|
247
|
-
|
|
248
|
-
# 5. Merge PRs (optional)
|
|
249
|
-
lex-pr merge --plan plan.json --execute
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
**📖 Full guide:** [MERGE_WEAVE_QUICKSTART.md](./MERGE_WEAVE_QUICKSTART.md)
|
|
253
|
-
|
|
254
|
-
**Traditional Workflow:**
|
|
39
|
+
First inspect without mutation:
|
|
255
40
|
|
|
256
41
|
```bash
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
# 2. Verify environment
|
|
261
|
-
npx lex-pr doctor
|
|
262
|
-
|
|
263
|
-
# 3. Discover PRs
|
|
264
|
-
npx lex-pr discover
|
|
265
|
-
|
|
266
|
-
# 4. Generate plan
|
|
267
|
-
npx lex-pr plan --from-github
|
|
268
|
-
|
|
269
|
-
# 5. Review plan interactively
|
|
270
|
-
npx lex-pr plan-review plan.json
|
|
271
|
-
|
|
272
|
-
# 6. Execute gates
|
|
273
|
-
npx lex-pr execute plan.json
|
|
274
|
-
|
|
275
|
-
# 7. Merge PRs
|
|
276
|
-
npx lex-pr merge plan.json
|
|
42
|
+
lex-pr --version
|
|
43
|
+
lex-pr workspace doctor --json
|
|
44
|
+
lex-pr weave discover --json
|
|
277
45
|
```
|
|
278
46
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
### Using Merge-Weave in Other Lex Ecosystem Repos
|
|
282
|
-
|
|
283
|
-
LexRunner's merge-weave functionality can be used in any Lex ecosystem repository (lex, lexsona, etc.):
|
|
47
|
+
After approving a local, reversible artifact, freeze and inspect a plan:
|
|
284
48
|
|
|
285
49
|
```bash
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
# 1. Install LexRunner
|
|
291
|
-
npm install --save-dev github:Guffawaffle/LexRunner
|
|
292
|
-
|
|
293
|
-
# 2. Discover PRs and generate plan
|
|
294
|
-
npx lex-pr discover --owner YOUR_ORG --repo YOUR_REPO --labels ready-to-merge --output plan.json
|
|
295
|
-
|
|
296
|
-
# 3. Preview merge operations
|
|
297
|
-
npx lex-pr merge --plan plan.json --dry-run
|
|
298
|
-
|
|
299
|
-
# 4. Execute merge
|
|
300
|
-
npx lex-pr merge --plan plan.json --execute --cleanup
|
|
50
|
+
lex-pr weave plan --from-github --output plan.json --json
|
|
51
|
+
lex-pr schema validate plan.json --json
|
|
52
|
+
lex-pr weave merge-order plan.json --json
|
|
53
|
+
lex-pr gate run plan.json --dry-run --json
|
|
301
54
|
```
|
|
302
55
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
**Convenience Scripts:**
|
|
56
|
+
These commands do not merge. `lex-pr weave apply --execute` is a separate mutation and should be
|
|
57
|
+
run only after reviewing the frozen plan, authority, gates, and target branch.
|
|
306
58
|
|
|
307
|
-
|
|
308
|
-
|
|
59
|
+
For a guided merge-weave walkthrough, use
|
|
60
|
+
[MERGE_WEAVE_QUICKSTART.md](MERGE_WEAVE_QUICKSTART.md).
|
|
309
61
|
|
|
310
|
-
##
|
|
62
|
+
## Architecture boundary
|
|
311
63
|
|
|
312
|
-
|
|
64
|
+
LexRunner has two contracts that must not be blurred:
|
|
313
65
|
|
|
314
|
-
|
|
66
|
+
- **Stateless integration core:** plan, gate, status, and weave services consume frozen inputs.
|
|
67
|
+
At integration time, `plan.json` is the sole authority for dependency order and merge intent.
|
|
68
|
+
The integration core never reads coordination state or `.smartergpt/` as hidden truth.
|
|
69
|
+
- **Explicitly stateful coordination service:** ADR-010 WorkItems, Runs, Attempts, controller
|
|
70
|
+
leases, workspace leases, receipts, and verification live behind `CoordinationStore` and
|
|
71
|
+
workspace lifecycle adapters. That state coordinates implementation work; it does not authorize
|
|
72
|
+
the integration core or silently alter a frozen plan.
|
|
315
73
|
|
|
316
|
-
|
|
74
|
+
`.smartergpt/` is a portable example profile, not a runtime dependency. User/work artifacts belong
|
|
75
|
+
in explicit stores, ignored local deliverables, CI artifacts, or PR comments—not in the package
|
|
76
|
+
source tree. Canonical terms live in [`docs/TERMS.md`](docs/TERMS.md).
|
|
317
77
|
|
|
318
|
-
|
|
78
|
+
## Authority and safety
|
|
319
79
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
80
|
+
- Discovery, status, planning, schema validation, merge-order calculation, and dry runs are
|
|
81
|
+
non-merging operations.
|
|
82
|
+
- Gate commands execute the commands declared by the reviewed plan; inspect them before running.
|
|
83
|
+
- Git/GitHub writes, delivery, release, and merge are separate authority lanes.
|
|
84
|
+
- Worker receipts are claims. LexRunner-owned verification and acceptance are the evidence used by
|
|
85
|
+
the coordinator.
|
|
86
|
+
- Assisted and headless control share durable nouns and fencing rules; neither mode gains implicit
|
|
87
|
+
merge, credential, release, or external-service authority.
|
|
325
88
|
|
|
326
|
-
|
|
327
|
-
lex-pr idea \
|
|
328
|
-
--title "Add dark mode support" \
|
|
329
|
-
--description "Implement theme switcher with light/dark modes"
|
|
89
|
+
## Install and authenticate
|
|
330
90
|
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
--title "Add dark mode support" \
|
|
334
|
-
--description "Implement theme switcher" \
|
|
335
|
-
--dry-run
|
|
336
|
-
|
|
337
|
-
# Update existing Issue (idempotent via fingerprinting)
|
|
338
|
-
lex-pr idea \
|
|
339
|
-
--title "Add dark mode support (revised)" \
|
|
340
|
-
--description "Implement theme switcher with auto-detection" \
|
|
341
|
-
--update-issue 123
|
|
342
|
-
|
|
343
|
-
# Custom output path
|
|
344
|
-
lex-pr idea \
|
|
345
|
-
--title "Add dark mode support" \
|
|
346
|
-
--description "Implement theme switcher" \
|
|
347
|
-
--output /tmp/my-idea.json
|
|
348
|
-
```
|
|
349
|
-
|
|
350
|
-
**Options:**
|
|
351
|
-
|
|
352
|
-
- `--title <string>` - Idea title (interactive if omitted)
|
|
353
|
-
- `--description <string>` - Brief description (interactive if omitted)
|
|
354
|
-
- `--interactive` - Force interactive mode
|
|
355
|
-
- `--dry-run` - Generate spec without creating Issue
|
|
356
|
-
- `--output <path>` - Output path for Feature Spec v0 (default: `.smartergpt.local/deliverables/_session/idea-{timestamp}.json`)
|
|
357
|
-
- `--repo <owner/repo>` - Target repository (default: auto-detect from git remote)
|
|
358
|
-
- `--label <label>` - Additional labels (repeatable)
|
|
359
|
-
- `--update-issue <num>` - Update existing Issue (idempotent)
|
|
360
|
-
|
|
361
|
-
**Output:**
|
|
362
|
-
|
|
363
|
-
- Feature Spec v0 JSON (validated against schema)
|
|
364
|
-
- GitHub Idea Issue with `[IDEA]` prefix and `idea`, `needs-triage` labels
|
|
365
|
-
- Fingerprint for idempotent updates
|
|
366
|
-
|
|
367
|
-
---
|
|
368
|
-
|
|
369
|
-
#### `lex-pr create-project`
|
|
370
|
-
|
|
371
|
-
Load Feature Spec v0, generate Execution Plan v1, create Epic + Sub-Issues.
|
|
372
|
-
|
|
373
|
-
**Usage:**
|
|
91
|
+
Ecosystem 3.1 requires Node.js 24 or newer. The package is restricted under the SmarterGPT npm
|
|
92
|
+
organization, so a human with organization access must authenticate the npm CLI once:
|
|
374
93
|
|
|
375
94
|
```bash
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
# Dry run (no Issue creation)
|
|
381
|
-
lex-pr create-project \
|
|
382
|
-
--spec .smartergpt.local/deliverables/_session/idea-2025-11-09.json \
|
|
383
|
-
--dry-run
|
|
384
|
-
|
|
385
|
-
# With custom labels
|
|
386
|
-
lex-pr create-project \
|
|
387
|
-
--spec .smartergpt.local/deliverables/_session/idea-2025-11-09.json \
|
|
388
|
-
--epic-labels "phase-1,high-priority" \
|
|
389
|
-
--issue-labels "sprint-3"
|
|
390
|
-
|
|
391
|
-
# Custom output path
|
|
392
|
-
lex-pr create-project \
|
|
393
|
-
--spec .smartergpt.local/deliverables/_session/idea-2025-11-09.json \
|
|
394
|
-
--output /tmp/execution-plan.json
|
|
395
|
-
|
|
396
|
-
# Skip sub-issue linking
|
|
397
|
-
lex-pr create-project \
|
|
398
|
-
--spec .smartergpt.local/deliverables/_session/idea-2025-11-09.json \
|
|
399
|
-
--no-link
|
|
95
|
+
npm login --scope=@smartergpt --registry=https://registry.npmjs.org/
|
|
96
|
+
npm install --save-dev @smartergpt/lexrunner
|
|
97
|
+
npx lex-pr --version
|
|
400
98
|
```
|
|
401
99
|
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
- `--spec <path>` - Feature Spec v0 file (required)
|
|
405
|
-
- `--dry-run` - Generate plan without creating Issues
|
|
406
|
-
- `--output <path>` - Output path for Execution Plan v1 (default: `.smartergpt.local/deliverables/_session/plan-{timestamp}.json`)
|
|
407
|
-
- `--repo <owner/repo>` - Target repository (default: auto-detect from spec)
|
|
408
|
-
- `--project <name/num>` - Link Issues to GitHub Project (optional)
|
|
409
|
-
- `--epic-labels <labels>` - Additional Epic labels (comma-separated)
|
|
410
|
-
- `--issue-labels <labels>` - Additional sub-issue labels (comma-separated)
|
|
411
|
-
- `--no-link` - Skip sub-issue linking
|
|
412
|
-
|
|
413
|
-
**Output:**
|
|
414
|
-
|
|
415
|
-
- Execution Plan v1 JSON (validated against schema)
|
|
416
|
-
- GitHub Epic Issue with `epic` label
|
|
417
|
-
- GitHub Sub-Issues (feature, testing, docs) linked to Epic
|
|
418
|
-
|
|
419
|
-
---
|
|
420
|
-
|
|
421
|
-
### Workflow Example
|
|
422
|
-
|
|
423
|
-
**End-to-end: Idea → Epic + Sub-Issues**
|
|
100
|
+
Global installation is also supported:
|
|
424
101
|
|
|
425
102
|
```bash
|
|
426
|
-
|
|
427
|
-
lex-pr
|
|
428
|
-
--title "Add webhooks support" \
|
|
429
|
-
--description "Allow users to configure webhooks for events"
|
|
430
|
-
|
|
431
|
-
# Output:
|
|
432
|
-
# ✓ Feature Spec v0 written to: .smartergpt.local/deliverables/_session/idea-2025-11-09T14-30-00.json
|
|
433
|
-
# ✓ Idea Issue created: https://github.com/owner/repo/issues/456
|
|
434
|
-
|
|
435
|
-
# Step 2: Generate project
|
|
436
|
-
lex-pr create-project \
|
|
437
|
-
--spec .smartergpt.local/deliverables/_session/idea-2025-11-09T14-30-00.json
|
|
438
|
-
|
|
439
|
-
# Output:
|
|
440
|
-
# ✓ Execution Plan v1 written to: .smartergpt.local/deliverables/_session/plan-2025-11-09T14-35-00.json
|
|
441
|
-
# ✓ Epic created: https://github.com/owner/repo/issues/457
|
|
442
|
-
# ✓ Sub-Issue created: https://github.com/owner/repo/issues/458 (feature)
|
|
443
|
-
# ✓ Sub-Issue created: https://github.com/owner/repo/issues/459 (testing)
|
|
444
|
-
# ✓ Sub-Issue created: https://github.com/owner/repo/issues/460 (docs)
|
|
445
|
-
```
|
|
446
|
-
|
|
447
|
-
---
|
|
448
|
-
|
|
449
|
-
### Safety Mechanisms
|
|
450
|
-
|
|
451
|
-
**PR Prevention:**
|
|
452
|
-
|
|
453
|
-
- Commands are Issues-only; no PR creation logic
|
|
454
|
-
- Runtime guards detect accidental PR API calls
|
|
455
|
-
- PR-related flags (`--create-pr`, `--pr`) rejected
|
|
456
|
-
|
|
457
|
-
**Artifact Path Restrictions:**
|
|
458
|
-
|
|
459
|
-
- Writes allowed only to `.smartergpt.local/deliverables/_session/`
|
|
460
|
-
- PR directories (`/PR-<number>/`, `/artifacts/PR-*/`) blocked
|
|
461
|
-
- Custom output paths validated before write
|
|
462
|
-
|
|
463
|
-
**Schema Validation:**
|
|
464
|
-
|
|
465
|
-
- All inputs/outputs validated against Zod schemas
|
|
466
|
-
- Pre-flight checks before Issue creation
|
|
467
|
-
- Detailed error messages with line numbers
|
|
468
|
-
|
|
469
|
-
---
|
|
470
|
-
|
|
471
|
-
### Schemas
|
|
472
|
-
|
|
473
|
-
**Feature Spec v0:**
|
|
474
|
-
|
|
475
|
-
```json
|
|
476
|
-
{
|
|
477
|
-
"schemaVersion": "0.1.0",
|
|
478
|
-
"title": "Add dark mode support",
|
|
479
|
-
"description": "Implement theme switcher with light/dark modes",
|
|
480
|
-
"acceptanceCriteria": [
|
|
481
|
-
"User can toggle between light and dark themes",
|
|
482
|
-
"Theme preference persists across sessions",
|
|
483
|
-
"All UI components support both themes"
|
|
484
|
-
],
|
|
485
|
-
"technicalContext": "Use CSS variables and localStorage",
|
|
486
|
-
"constraints": "Must work in IE11+",
|
|
487
|
-
"repo": "owner/repo",
|
|
488
|
-
"createdAt": "2025-11-09T14:30:00.000Z"
|
|
489
|
-
}
|
|
490
|
-
```
|
|
491
|
-
|
|
492
|
-
**Execution Plan v1:**
|
|
493
|
-
|
|
494
|
-
```json
|
|
495
|
-
{
|
|
496
|
-
"schemaVersion": "1.0.0",
|
|
497
|
-
"sourceSpec": {
|
|
498
|
-
/* Feature Spec v0 */
|
|
499
|
-
},
|
|
500
|
-
"epic": {
|
|
501
|
-
"title": "Add dark mode support",
|
|
502
|
-
"description": "Implement theme switcher with light/dark modes",
|
|
503
|
-
"acceptanceCriteria": [
|
|
504
|
-
/* from Feature Spec */
|
|
505
|
-
]
|
|
506
|
-
},
|
|
507
|
-
"subIssues": [
|
|
508
|
-
{
|
|
509
|
-
"id": "feature-impl",
|
|
510
|
-
"title": "Implement Add dark mode support",
|
|
511
|
-
"description": "Core implementation of feature",
|
|
512
|
-
"type": "feature",
|
|
513
|
-
"acceptanceCriteria": [
|
|
514
|
-
/* from Feature Spec */
|
|
515
|
-
],
|
|
516
|
-
"dependsOn": []
|
|
517
|
-
},
|
|
518
|
-
{
|
|
519
|
-
"id": "tests",
|
|
520
|
-
"title": "Add tests for Add dark mode support",
|
|
521
|
-
"description": "Unit and integration tests",
|
|
522
|
-
"type": "testing",
|
|
523
|
-
"acceptanceCriteria": ["Unit tests pass", "Integration tests pass", "Coverage > 80%"],
|
|
524
|
-
"dependsOn": ["feature-impl"]
|
|
525
|
-
},
|
|
526
|
-
{
|
|
527
|
-
"id": "docs",
|
|
528
|
-
"title": "Document Add dark mode support",
|
|
529
|
-
"description": "User-facing documentation",
|
|
530
|
-
"type": "docs",
|
|
531
|
-
"acceptanceCriteria": ["README updated", "Examples added", "API docs complete"],
|
|
532
|
-
"dependsOn": ["feature-impl"]
|
|
533
|
-
}
|
|
534
|
-
],
|
|
535
|
-
"createdAt": "2025-11-09T14:35:00.000Z"
|
|
536
|
-
}
|
|
103
|
+
npm install --global @smartergpt/lexrunner
|
|
104
|
+
lex-pr --version
|
|
537
105
|
```
|
|
538
106
|
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
## 📚 Documentation
|
|
542
|
-
|
|
543
|
-
Complete documentation and interactive plan review guides
|
|
544
|
-
|
|
545
|
-
See the full documentation index: [docs/README.md](docs/README.md)
|
|
107
|
+
Do not place npm tokens in the repository or a chat transcript. Windows/private-package validation
|
|
108
|
+
is documented in the [Node 24 migration guide](docs/node-24-migration.md).
|
|
546
109
|
|
|
547
|
-
|
|
110
|
+
The checked-in package version is the single source for `lex-pr --version`.
|
|
548
111
|
|
|
549
|
-
|
|
550
|
-
- **Front-End Capture Pipeline**: docs/front-end-capture-pipeline.md — idea → project workflow (Issues-only)
|
|
551
|
-
- **Merge Pyramid Tutorial**: docs/tutorials/quick-merge-pyramid.md — discover → plan → execute → merge workflow
|
|
552
|
-
- **Diffgraph Planner**: docs/diffgraph-planner.md — automatic dependency discovery & merge ordering
|
|
553
|
-
- **Prompts Configuration**: docs/prompts.md — prompts precedence, cross-repo usage, token expansion
|
|
554
|
-
- **Architecture Overview**: docs/architecture.md — system design & philosophy
|
|
555
|
-
- **CLI Reference**: docs/cli.md — complete command documentation
|
|
556
|
-
- **Troubleshooting**: docs/troubleshooting.md — common issues & solutions
|
|
557
|
-
- **Migration Guide**: docs/migration-guide.md — migrating to lexrunner
|
|
558
|
-
- **FAQ**: FAQ.md — quick answers to common questions
|
|
559
|
-
- **Video Tutorials**: docs/tutorials/ — step-by-step video guides
|
|
560
|
-
- **Workflows**: docs/workflows/ — examples for different team sizes
|
|
561
|
-
- **CI/CD Integrations**: docs/integrations/ — platform-specific setup
|
|
112
|
+
<!-- BEGIN GENERATED PACKAGE VERSION -->
|
|
562
113
|
|
|
563
|
-
|
|
114
|
+
Current repository package version: **1.3.0**. npm availability and dist-tags are separate
|
|
115
|
+
release evidence; inspect the registry rather than inferring publication from source metadata.
|
|
116
|
+
<!-- END GENERATED PACKAGE VERSION -->
|
|
564
117
|
|
|
565
|
-
|
|
118
|
+
See the [1.3.0 release notes](docs/releases/1.3.0.md), the
|
|
119
|
+
[1.2.1 publication repair](docs/releases/1.2.1.md), and the underlying
|
|
120
|
+
[1.2.0 compatibility decision](docs/releases/1.2.0.md) for package disposition, semver rationale,
|
|
121
|
+
supported assisted behavior, and deferred guarantees.
|
|
566
122
|
|
|
567
|
-
|
|
568
|
-
# Interactive review with validation
|
|
569
|
-
lex-pr plan-review plan.json
|
|
570
|
-
|
|
571
|
-
# Compare two plans
|
|
572
|
-
lex-pr plan-diff old-plan.json new-plan.json
|
|
123
|
+
## Choose a surface
|
|
573
124
|
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
125
|
+
- **Human CLI:** start with `workspace doctor`, `weave discover`, `weave plan`,
|
|
126
|
+
`weave merge-order`, and `gate run`.
|
|
127
|
+
- **Agent/MCP:** use the matching canonical tools and bounded contracts in
|
|
128
|
+
[`docs/AX.md`](docs/AX.md) and [`README.mcp.md`](README.mcp.md).
|
|
129
|
+
- **Assisted agent work:** run `attempt preflight` before packet construction. When it reports
|
|
130
|
+
`broker_required`, use `attempt projection status|prepare` to bind the exact committed base into
|
|
131
|
+
native WSL, then continue with `attempt prepare`, `attempt start`, worker
|
|
132
|
+
attachment/heartbeat, receipt submission, verification, and acceptance. The foreground host
|
|
133
|
+
still owns worker launch. Follow the
|
|
134
|
+
[native Windows-to-WSL projection workflow](docs/workflows/native-wsl-projection.md) for recovery
|
|
135
|
+
and cleanup.
|
|
136
|
+
- **Advanced operators:** read the
|
|
137
|
+
[orchestration primitives](docs/architecture/orchestration-primitives.md),
|
|
138
|
+
[headless supervisor boundary](docs/architecture/headless-supervisor.md), and
|
|
139
|
+
[security guidance](docs/security/agent-worktree-containment.md).
|
|
577
140
|
|
|
578
|
-
|
|
141
|
+
The normative CLI/MCP inventory is generated from live registrations and stored in
|
|
142
|
+
[`docs/architecture/cli-mcp-surface.json`](docs/architecture/cli-mcp-surface.json). Deprecated
|
|
143
|
+
top-level aliases remain migration aids, not recommended entry points.
|
|
579
144
|
|
|
580
|
-
##
|
|
145
|
+
## Reading order
|
|
581
146
|
|
|
582
|
-
|
|
147
|
+
1. [Agent fit evaluation](docs/agent-evaluation.md) — decide whether to adopt, pilot, defer, or
|
|
148
|
+
decline.
|
|
149
|
+
2. [Merge-weave quickstart](MERGE_WEAVE_QUICKSTART.md) — run the smallest integration workflow.
|
|
150
|
+
3. [Canonical CLI/MCP surface](docs/architecture/canonical-cli-mcp-surface.md) — choose stable
|
|
151
|
+
commands and tools.
|
|
152
|
+
4. [AX contract](docs/AX.md) — understand bounded output, errors, parity, and exceptions.
|
|
153
|
+
5. [ADR-010](docs/adr/ADR-010-agent-work-orchestration-protocol.md) — understand assisted agent-work
|
|
154
|
+
ownership and maturity.
|
|
155
|
+
6. [Documentation index](docs/README.md) — browse operator, fanout, MCP, audit, security, and
|
|
156
|
+
contributor material.
|
|
583
157
|
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
3. **Validation** for cycles, orphans, and invalid references
|
|
587
|
-
4. **Topological sorting** for deterministic merge layers
|
|
158
|
+
Historical v2 design drafts are retained for provenance only. They do not describe a sibling
|
|
159
|
+
package, active migration, or current runtime contract.
|
|
588
160
|
|
|
589
|
-
|
|
161
|
+
## Development
|
|
590
162
|
|
|
591
163
|
```bash
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
lex-pr plan --suggest-deps --threshold=0.7
|
|
597
|
-
|
|
598
|
-
# Execute in dependency order
|
|
599
|
-
lex-pr execute --plan plan.json
|
|
600
|
-
```
|
|
601
|
-
|
|
602
|
-
### Key Features
|
|
603
|
-
|
|
604
|
-
- **Automatic dependency discovery** - detects implicit dependencies via file overlap
|
|
605
|
-
- **Cycle detection** - prevents circular dependencies
|
|
606
|
-
- **Confidence scoring** - ranks suggestions by reliability (0.0-1.0)
|
|
607
|
-
- **Multiple heuristics** - shared files, directory proximity, test overlap
|
|
608
|
-
- **Hybrid workflow** - combine explicit + implicit dependencies
|
|
609
|
-
- **GitHub CI integration** - automatically import gate results from GitHub check runs (v0.6.0+)
|
|
610
|
-
|
|
611
|
-
### Documentation
|
|
612
|
-
|
|
613
|
-
**Getting Started:**
|
|
614
|
-
|
|
615
|
-
- [Quickstart Guide](docs/quickstart.md) - Get up and running in 5 minutes
|
|
616
|
-
- [Merge-Weave Quickstart](docs/merge-weave-quickstart.md) - End-to-end merge-weave walkthrough with examples
|
|
617
|
-
|
|
618
|
-
**Reference:**
|
|
619
|
-
|
|
620
|
-
- **[Environment Variables](docs/environment-variables.md)** - environment configuration, CI safety, and aliasing
|
|
621
|
-
- **[Profile Resolution](docs/profile-resolution.md)** - profile precedence and configuration
|
|
622
|
-
- **[Complete Guide](docs/diffgraph-planner.md)** - full feature documentation
|
|
623
|
-
- **[Troubleshooting](docs/troubleshooting-planner.md)** - common errors and solutions
|
|
624
|
-
- **[Tutorials](docs/tutorials/diffgraph-planner/)** - step-by-step guides
|
|
625
|
-
- [01-simple-stack.md](docs/tutorials/diffgraph-planner/01-simple-stack.md) - linear dependencies
|
|
626
|
-
- [02-diamond-pattern.md](docs/tutorials/diffgraph-planner/02-diamond-pattern.md) - fan-out/fan-in
|
|
627
|
-
- [03-large-batch.md](docs/tutorials/diffgraph-planner/03-large-batch.md) - 20+ PRs
|
|
628
|
-
- [04-fixing-cycles.md](docs/tutorials/diffgraph-planner/04-fixing-cycles.md) - cycle resolution
|
|
629
|
-
- [05-hybrid-workflow.md](docs/tutorials/diffgraph-planner/05-hybrid-workflow.md) - explicit + implicit
|
|
630
|
-
|
|
631
|
-
### For Development
|
|
632
|
-
|
|
633
|
-
```bash
|
|
634
|
-
# install dependencies
|
|
635
|
-
npm install
|
|
636
|
-
|
|
637
|
-
# dev mode
|
|
638
|
-
npm run dev
|
|
639
|
-
|
|
640
|
-
# run CLI (ts)
|
|
641
|
-
npm run cli -- plan --help
|
|
642
|
-
```
|
|
643
|
-
|
|
644
|
-
## CLI Commands
|
|
645
|
-
|
|
646
|
-
### Plan Generation
|
|
647
|
-
|
|
648
|
-
```bash
|
|
649
|
-
# Generate plan artifacts (plan.json + snapshot.md)
|
|
650
|
-
npm run cli -- plan [--out .smartergpt/runner]
|
|
651
|
-
|
|
652
|
-
# JSON-only mode for CI integration
|
|
653
|
-
npm run cli -- plan --json
|
|
654
|
-
|
|
655
|
-
# Custom output directory
|
|
656
|
-
npm run cli -- plan --out ./my-artifacts
|
|
657
|
-
```
|
|
658
|
-
|
|
659
|
-
### Other Commands
|
|
660
|
-
|
|
661
|
-
```bash
|
|
662
|
-
# Environment and config sanity checks
|
|
663
|
-
npm run cli -- doctor
|
|
664
|
-
|
|
665
|
-
# Gate report aggregation
|
|
666
|
-
npm run cli -- report <directory> [--out json|md]
|
|
667
|
-
|
|
668
|
-
# Orchestration: Batch planning with Kahn's algorithm
|
|
669
|
-
npm run cli -- orchestrate:plan-batch --issues 156,157,160
|
|
670
|
-
npm run cli -- orchestrate:plan-batch --input analysis.json --json
|
|
671
|
-
|
|
672
|
-
# Python CLI (legacy)
|
|
673
|
-
lex-pr schema validate plan.json
|
|
674
|
-
lex-pr merge-order plan.json --json
|
|
675
|
-
```
|
|
676
|
-
|
|
677
|
-
### Orchestration Commands
|
|
678
|
-
|
|
679
|
-
The `orchestrate:plan-batch` command generates deterministic batch plans using Kahn's algorithm:
|
|
680
|
-
|
|
681
|
-
```bash
|
|
682
|
-
# From explicit issue list
|
|
683
|
-
lex-pr orchestrate:plan-batch --issues 156,157,160,161,164
|
|
684
|
-
|
|
685
|
-
# From issue analyzer output
|
|
686
|
-
lex-pr orchestrate:plan-batch --input analysis.json --json > batch-plan.json
|
|
687
|
-
```
|
|
688
|
-
|
|
689
|
-
**Features:**
|
|
690
|
-
|
|
691
|
-
- Deterministic topological sorting (same input → same output)
|
|
692
|
-
- Stable priority queue (score → createdAt → number)
|
|
693
|
-
- Layer-based batching for parallel execution
|
|
694
|
-
- Cycle detection with helpful error messages
|
|
695
|
-
- SHA256 hash for plan reproducibility
|
|
696
|
-
|
|
697
|
-
See [`docs/orchestration.md`](docs/orchestration.md) for detailed documentation.
|
|
698
|
-
|
|
699
|
-
### Agent Stall Detection
|
|
700
|
-
|
|
701
|
-
Monitor Copilot agent PRs for activity and automatically nudge or escalate when agents stall:
|
|
702
|
-
|
|
703
|
-
```bash
|
|
704
|
-
# Check PR status once
|
|
705
|
-
lex-pr fanout monitor --prs 123,456
|
|
706
|
-
|
|
707
|
-
# Watch PRs continuously with auto-nudge
|
|
708
|
-
lex-pr fanout monitor --prs 123,456,789 --watch --interval 5m --action nudge
|
|
709
|
-
|
|
710
|
-
# Custom thresholds and auto-escalation
|
|
711
|
-
lex-pr fanout monitor --prs 123 \
|
|
712
|
-
--warning-threshold 5m \
|
|
713
|
-
--stall-threshold 15m \
|
|
714
|
-
--action escalate
|
|
715
|
-
|
|
716
|
-
# JSON output for automation
|
|
717
|
-
lex-pr fanout monitor --prs 123,456 --json
|
|
718
|
-
```
|
|
719
|
-
|
|
720
|
-
**Features:**
|
|
721
|
-
|
|
722
|
-
- Automatic stall detection (configurable thresholds: 10m warning, 20m stall)
|
|
723
|
-
- Auto-nudge stalled agents with GitHub comments
|
|
724
|
-
- Auto-escalate for human intervention
|
|
725
|
-
- Watch mode for continuous monitoring
|
|
726
|
-
- JSON output for CI/CD integration
|
|
727
|
-
|
|
728
|
-
**Detection States:**
|
|
729
|
-
|
|
730
|
-
- **Active** - Recent commits, no action needed
|
|
731
|
-
- **Stalled** - No commits >= threshold, auto-nudge/escalate
|
|
732
|
-
- **Complete** - PR ready for review
|
|
733
|
-
|
|
734
|
-
See [`docs/agent-stall-detection.md`](docs/agent-stall-detection.md) for complete documentation and examples.
|
|
735
|
-
|
|
736
|
-
### Gate Report Aggregation
|
|
737
|
-
|
|
738
|
-
The `report` command aggregates gate results from a directory of JSON files:
|
|
739
|
-
|
|
740
|
-
```bash
|
|
741
|
-
# Aggregate gate reports (JSON output)
|
|
742
|
-
npm run cli -- report ./gate-results --out json
|
|
743
|
-
|
|
744
|
-
# Generate markdown summary
|
|
745
|
-
npm run cli -- report ./gate-results --out md
|
|
746
|
-
```
|
|
747
|
-
|
|
748
|
-
**Gate Result Format:**
|
|
749
|
-
Each gate result file must follow the JSON schema with stable keys:
|
|
750
|
-
|
|
751
|
-
```json
|
|
752
|
-
{
|
|
753
|
-
"item": "item-name",
|
|
754
|
-
"gate": "gate-name",
|
|
755
|
-
"status": "pass|fail",
|
|
756
|
-
"duration_ms": 1000,
|
|
757
|
-
"started_at": "2024-01-15T10:30:00Z",
|
|
758
|
-
"stderr_path": "/path/to/stderr.log", // optional
|
|
759
|
-
"stdout_path": "/path/to/stdout.log", // optional
|
|
760
|
-
"meta": {
|
|
761
|
-
// optional
|
|
762
|
-
"exit_code": "0",
|
|
763
|
-
"command": "npm test"
|
|
764
|
-
}
|
|
765
|
-
}
|
|
766
|
-
```
|
|
767
|
-
|
|
768
|
-
**Features:**
|
|
769
|
-
|
|
770
|
-
- Stable, deterministic output with sorted items and gates
|
|
771
|
-
- Validation against JSON schema
|
|
772
|
-
- Summary statistics (allGreen, pass/fail counts)
|
|
773
|
-
- Multiple output formats (JSON, Markdown)
|
|
774
|
-
- Exit code 0 if all gates pass, 1 if any fail
|
|
775
|
-
|
|
776
|
-
## Turn Cost Tracking
|
|
777
|
-
|
|
778
|
-
LexRunner implements **Turn Cost** tracking to measure coordination overhead during merge-weave and gate execution operations. Turn Cost quantifies the "friction" in automation workflows beyond simple token counts.
|
|
779
|
-
|
|
780
|
-
### Formula
|
|
781
|
-
|
|
782
|
-
```
|
|
783
|
-
Turn Cost = λL + γC + ρR + τT + αA
|
|
784
|
-
```
|
|
785
|
-
|
|
786
|
-
Where:
|
|
787
|
-
|
|
788
|
-
- **L (Latency)**: API response time, gate execution time, merge time
|
|
789
|
-
- **C (Context Reset)**: Tokens required to rebuild context (N/A for deterministic runner)
|
|
790
|
-
- **R (Renegotiation)**: Conflict resolution retries, clarification turns
|
|
791
|
-
- **T (Token Bloat)**: Excess tokens used beyond expected budget
|
|
792
|
-
- **A (Attention Switch)**: Human interventions, manual conflict resolutions
|
|
793
|
-
|
|
794
|
-
Default weights: `λ=0.1, γ=0.1, ρ=0.3, τ=0.2, α=0.3`
|
|
795
|
-
|
|
796
|
-
### Usage
|
|
797
|
-
|
|
798
|
-
**Execute Command:**
|
|
799
|
-
|
|
800
|
-
```bash
|
|
801
|
-
# Enable Turn Cost tracking during gate execution
|
|
802
|
-
lex-pr execute plan.json --track-turncost
|
|
803
|
-
|
|
804
|
-
# JSON output includes Turn Cost summary
|
|
805
|
-
lex-pr execute plan.json --track-turncost --json
|
|
806
|
-
```
|
|
807
|
-
|
|
808
|
-
**Merge Command:**
|
|
809
|
-
|
|
810
|
-
```bash
|
|
811
|
-
# Track Turn Cost during merge-weave operations
|
|
812
|
-
lex-pr merge --execute --track-turncost
|
|
813
|
-
|
|
814
|
-
# Dry run with conflict detection and Turn Cost preview
|
|
815
|
-
lex-pr merge --track-turncost
|
|
816
|
-
```
|
|
817
|
-
|
|
818
|
-
### Output Format
|
|
819
|
-
|
|
820
|
-
**Human-readable:**
|
|
821
|
-
|
|
822
|
-
```
|
|
823
|
-
=== Turn Cost ===
|
|
824
|
-
Weighted Score: 3.20
|
|
825
|
-
Latency: 12.50s
|
|
826
|
-
Renegotiations: 1
|
|
827
|
-
Attention Switches: 0
|
|
828
|
-
vs Prior Run: -45%
|
|
829
|
-
```
|
|
830
|
-
|
|
831
|
-
**JSON:**
|
|
832
|
-
|
|
833
|
-
```json
|
|
834
|
-
{
|
|
835
|
-
"turnCost": {
|
|
836
|
-
"components": {
|
|
837
|
-
"latencyMs": 12500,
|
|
838
|
-
"contextResetTokens": 0,
|
|
839
|
-
"renegotiationCount": 1,
|
|
840
|
-
"tokenBloat": 2400,
|
|
841
|
-
"attentionSwitchCount": 0
|
|
842
|
-
},
|
|
843
|
-
"weightedScore": 3.2,
|
|
844
|
-
"eventCount": 4,
|
|
845
|
-
"priorRunScore": 5.8,
|
|
846
|
-
"improvement": "-45%"
|
|
847
|
-
}
|
|
848
|
-
}
|
|
849
|
-
```
|
|
850
|
-
|
|
851
|
-
### What Gets Tracked
|
|
852
|
-
|
|
853
|
-
| Operation | Latency | Renegotiation | Attention Switch |
|
|
854
|
-
| ------------------- | ------------------- | ------------------- | ---------------- |
|
|
855
|
-
| Gate execution | ✅ Per-gate timing | ✅ Gate retries | ❌ (future) |
|
|
856
|
-
| Merge operations | ✅ Total merge time | ✅ Conflict retries | ❌ (future) |
|
|
857
|
-
| Conflict resolution | ✅ Resolution time | ✅ Retry attempts | ✅ Manual fixes |
|
|
858
|
-
|
|
859
|
-
### Business Value
|
|
860
|
-
|
|
861
|
-
From the coordination cost compression thesis:
|
|
862
|
-
|
|
863
|
-
> "Token costs are linear; Turn costs compound through cascading misunderstandings."
|
|
864
|
-
|
|
865
|
-
Turn Cost tracking enables:
|
|
866
|
-
|
|
867
|
-
- **Measuring actual coordination overhead** (not just API costs)
|
|
868
|
-
- **Identifying high-friction workflows** that need optimization
|
|
869
|
-
- **Optimizing for human attention** (the scarcest resource)
|
|
870
|
-
- **Comparing automation efficiency** across runs
|
|
871
|
-
|
|
872
|
-
### Related
|
|
873
|
-
|
|
874
|
-
- Issue [#376](https://github.com/Guffawaffle/LexRunner/issues/376): Token Optimization Epic
|
|
875
|
-
- Issue [#330](https://github.com/Guffawaffle/LexRunner/issues/330): Frames & Metrics
|
|
876
|
-
- Issue [#327](https://github.com/Guffawaffle/LexRunner/issues/327): Budget Guards
|
|
877
|
-
|
|
878
|
-
## Configuration
|
|
879
|
-
|
|
880
|
-
### Profile Resolution
|
|
881
|
-
|
|
882
|
-
The runner uses a **precedence chain** to locate the profile directory:
|
|
883
|
-
|
|
884
|
-
1. `--profile-dir <path>` - Explicit CLI override
|
|
885
|
-
2. `LEX_PR_PROFILE_DIR` - Environment variable
|
|
886
|
-
3. `.smartergpt.local/` - Local overlay (development, not tracked)
|
|
887
|
-
4. `.smartergpt/` - Tracked example profile (default)
|
|
888
|
-
|
|
889
|
-
**Quick start:**
|
|
890
|
-
|
|
891
|
-
```bash
|
|
892
|
-
# Initialize local overlay for development
|
|
893
|
-
npm run cli -- init-local
|
|
894
|
-
|
|
895
|
-
# Runner automatically uses .smartergpt.local/
|
|
896
|
-
npm run cli -- plan
|
|
897
|
-
|
|
898
|
-
# Or use explicit override
|
|
899
|
-
npm run cli -- plan --profile-dir /custom/path
|
|
900
|
-
```
|
|
901
|
-
|
|
902
|
-
See [docs/profile-resolution.md](docs/profile-resolution.md) for complete documentation, migration guide, and examples.
|
|
903
|
-
|
|
904
|
-
### Configuration Files
|
|
905
|
-
|
|
906
|
-
The planner reads configuration from the resolved profile directory:
|
|
907
|
-
|
|
908
|
-
- **`stack.yml`**: Explicit plan with items, dependencies, and strategies (highest priority)
|
|
909
|
-
- **`scope.yml`**: Target branch and PR selection criteria (fallback)
|
|
910
|
-
- **`deps.yml`**: Dependency definitions (future use)
|
|
911
|
-
- **`profile.yml`**: Profile metadata and role (`example`, `development`, `local`)
|
|
912
|
-
|
|
913
|
-
### Example stack.yml
|
|
914
|
-
|
|
915
|
-
```yaml
|
|
916
|
-
version: 1
|
|
917
|
-
target: main
|
|
918
|
-
items:
|
|
919
|
-
- id: 1
|
|
920
|
-
name: auth-system # Dependencies resolve by 'name' field
|
|
921
|
-
branch: feature/auth-system
|
|
922
|
-
sha: abc123def456
|
|
923
|
-
deps: [] # Use 'deps' array (references other item names)
|
|
924
|
-
strategy: rebase-weave
|
|
925
|
-
- id: 2
|
|
926
|
-
name: api-endpoints # Generator defaults: name := id
|
|
927
|
-
branch: feature/api-endpoints
|
|
928
|
-
deps: ["auth-system"] # Depends on item with name="auth-system"
|
|
929
|
-
strategy: merge-weave
|
|
930
|
-
```
|
|
931
|
-
|
|
932
|
-
## CLI Exit Codes
|
|
933
|
-
|
|
934
|
-
The CLI follows standard Unix conventions for automation and CI integration:
|
|
935
|
-
|
|
936
|
-
- **`0`**: Success - operation completed without errors
|
|
937
|
-
- **`2`**: Validation errors - invalid configuration, unknown dependencies, schema violations
|
|
938
|
-
- **`1`**: Unexpected errors - system failures, network issues, crashes
|
|
939
|
-
|
|
940
|
-
### Security Subcommand Exit Codes (Extended)
|
|
941
|
-
|
|
942
|
-
For `security` subcommands (`check-rotation`, `scan-plan`, `validate-secrets`):
|
|
943
|
-
|
|
944
|
-
| Code | Meaning | Notes |
|
|
945
|
-
| ---- | --------------------- | ----------------------------------- |
|
|
946
|
-
| 0 | Success / No findings | Status = ok |
|
|
947
|
-
| 1 | Findings detected | Status = findings (action required) |
|
|
948
|
-
| 2 | Internal error | Status = error (investigate stack) |
|
|
949
|
-
|
|
950
|
-
JSON output is deterministic with ordered keys: `command,status,exitCode,findings,timestamp`.
|
|
951
|
-
|
|
952
|
-
Format flags:
|
|
953
|
-
`--format text|json` (default text), `--no-color` disables ANSI styling in text mode.
|
|
954
|
-
|
|
955
|
-
**Secret Rotation:**
|
|
956
|
-
|
|
957
|
-
- See [docs/security/rotation-guide.md](docs/security/rotation-guide.md) for rotation patterns and cadences
|
|
958
|
-
- Example script: `tsx scripts/rotate-secrets-example.ts` (deterministic JSON output)
|
|
959
|
-
|
|
960
|
-
```bash
|
|
961
|
-
# CI-friendly validation
|
|
962
|
-
npm run cli -- plan --json || echo "Plan validation failed with exit code $?"
|
|
963
|
-
```
|
|
964
|
-
|
|
965
|
-
## Project layout
|
|
966
|
-
|
|
967
|
-
- `src/core`: planner, gates runner, weave strategies
|
|
968
|
-
- `src/cli.ts`: human CLI (Commander)
|
|
969
|
-
- `src/mcp/server.ts`: MCP tool/resource surface (adapter)
|
|
970
|
-
- `.smartergpt/`: canonical inputs + runner artifacts
|
|
971
|
-
|
|
972
|
-
## Deterministic Behavior
|
|
973
|
-
|
|
974
|
-
The runner prioritizes **deterministic outputs** for reliable CI/CD integration:
|
|
975
|
-
|
|
976
|
-
```bash
|
|
977
|
-
# Verify determinism - identical inputs produce identical byte outputs
|
|
978
|
-
npm run cli -- plan --out .artifacts1
|
|
979
|
-
npm run cli -- plan --out .artifacts2
|
|
980
|
-
cmp .artifacts1/plan.json .artifacts2/plan.json # Should be identical
|
|
981
|
-
```
|
|
982
|
-
|
|
983
|
-
**Key guarantees:**
|
|
984
|
-
|
|
985
|
-
- Canonical JSON with stable key ordering (no timestamps)
|
|
986
|
-
- Raw-byte deterministic hashing for artifact verification
|
|
987
|
-
- Cross-platform portability (Windows, macOS, Linux)
|
|
988
|
-
- Dependency resolution by `name` field with cycle detection
|
|
989
|
-
|
|
990
|
-
## Note about tests and temp directories
|
|
991
|
-
|
|
992
|
-
When running tests the suite may run files in parallel. Some tests temporarily change the process working directory (for example to exercise CLI behaviors) and create/remove temp directories. To avoid race conditions and `getcwd()` failures we use a per-test-file temporary directory naming pattern (based on the test filename) so parallel test files don't collide when they change `process.cwd()` or remove temporary folders. If you add new tests that change directory, follow the same pattern:
|
|
993
|
-
|
|
994
|
-
```ts
|
|
995
|
-
const testDir = path.join(os.tmpdir(), `lexrunner-determinism-test-${path.basename(__filename)}`);
|
|
996
|
-
process.chdir(testDir);
|
|
997
|
-
```
|
|
998
|
-
|
|
999
|
-
This keeps tests isolated and prevents intermittent failures when running the full test suite.
|
|
1000
|
-
|
|
1001
|
-
## Performance Benchmarks
|
|
1002
|
-
|
|
1003
|
-
The project includes a comprehensive performance regression test suite to track critical operation performance over time.
|
|
1004
|
-
|
|
1005
|
-
### Running Benchmarks
|
|
1006
|
-
|
|
1007
|
-
```bash
|
|
1008
|
-
# Run all benchmarks
|
|
1009
|
-
npm run benchmark
|
|
1010
|
-
|
|
1011
|
-
# Run specific benchmark
|
|
1012
|
-
npm run benchmark -- core/topologicalSort.bench.ts
|
|
1013
|
-
|
|
1014
|
-
# Compare against baseline (CI mode)
|
|
1015
|
-
npm run benchmark:ci
|
|
1016
|
-
|
|
1017
|
-
# Update baseline metrics (after performance improvements)
|
|
1018
|
-
npm run benchmark:baseline
|
|
164
|
+
nvm use
|
|
165
|
+
npm ci
|
|
166
|
+
npm run lint
|
|
167
|
+
npm run build
|
|
1019
168
|
```
|
|
1020
169
|
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
- **Core Algorithms**: Topological sort, plan parsing, dependency resolution (10-500 nodes)
|
|
1024
|
-
- **I/O Operations**: File operations, git operations
|
|
1025
|
-
- **End-to-End Workflows**: Complete plan generation and execution pipelines
|
|
1026
|
-
|
|
1027
|
-
### CI Integration
|
|
1028
|
-
|
|
1029
|
-
Benchmarks run automatically on PRs via GitHub Actions. The workflow:
|
|
1030
|
-
|
|
1031
|
-
1. Executes all benchmarks
|
|
1032
|
-
2. Compares results against committed baseline
|
|
1033
|
-
3. Posts performance report as PR comment
|
|
1034
|
-
4. **Fails PR if >20% performance regression detected**
|
|
1035
|
-
5. **Warns if 10-20% slower**
|
|
1036
|
-
|
|
1037
|
-
See `tests/benchmarks/README.md` for detailed documentation.
|
|
1038
|
-
|
|
1039
|
-
## Notes
|
|
1040
|
-
|
|
1041
|
-
- Deterministic > clever. Outputs are sorted for stable diffs.
|
|
1042
|
-
- `schemas/plan.schema.json` is the source of truth for validation.
|
|
1043
|
-
- Dependencies resolve by `name` field (generator can default `name := id`)
|
|
1044
|
-
|
|
1045
|
-
## MCP: Multi-Repo Integration
|
|
1046
|
-
|
|
1047
|
-
Generate MCP server manifests for all local repos. The generator discovers git roots under `/srv` and `/home/guff`, detects `.smartergpt(.local)` profiles, and writes a deterministic `servers.json`.
|
|
170
|
+
For implementation work, use the touched/adjacent gate selector and let CI prove the full suite on
|
|
171
|
+
high-risk changes:
|
|
1048
172
|
|
|
1049
173
|
```bash
|
|
1050
|
-
|
|
1051
|
-
npm run build
|
|
1052
|
-
npm run generate:mcp-servers
|
|
1053
|
-
|
|
1054
|
-
# Customize (recursive, filters, policy-file, mutate allow-list)
|
|
1055
|
-
python3 scripts/gen_mcp_servers.py -r /srv -r /home/guff --recursive --include '^(smartergpt|lex-serve|lexrunner)$' --policy-file mutate-policy.json --mutate lexrunner -o servers.json --workspace-out servers.workspace.json
|
|
174
|
+
lex-pr gate select --base <base-sha> --head <head-sha> --json
|
|
1056
175
|
```
|
|
1057
176
|
|
|
1058
|
-
|
|
177
|
+
Release validation remains exhaustive. See [`AGENTS.md`](AGENTS.md),
|
|
178
|
+
[`CONTRIBUTING.md`](CONTRIBUTING.md), and the
|
|
179
|
+
[implementation gate contract](docs/architecture/implementation-gates.md).
|
|
1059
180
|
|
|
1060
|
-
|
|
1061
|
-
- Mutations are **off** by default; enable per-repo via `--mutate` or policy file.
|
|
1062
|
-
- If `dist/mcp/server.js` is missing, generator falls back to `npx tsx src/mcp/server.ts`.
|
|
1063
|
-
- `servers.workspace.json` is a read-only variant (all `ALLOW_MUTATIONS=false`).
|
|
181
|
+
## Package and licensing
|
|
1064
182
|
|
|
1065
|
-
|
|
183
|
+
- Package: `@smartergpt/lexrunner`
|
|
184
|
+
- CLI: `lex-pr`
|
|
185
|
+
- MCP bin: `lexrunner-mcp`
|
|
186
|
+
- Runtime dependency: `@smartergpt/lex` (MIT)
|
|
187
|
+
- LexRunner license: SmarterGPT Source-Available Personal Use License
|
|
1066
188
|
|
|
1067
|
-
|
|
1068
|
-
-
|
|
1069
|
-
- `1`: error
|
|
189
|
+
See [`LICENSE.md`](LICENSE.md), [`NOTICE.md`](NOTICE.md), and
|
|
190
|
+
[ADR-008](docs/adr/ADR-008-lex-packaging.md).
|