@maycombhq/atticus 0.0.0-stage → 2.0.0-beta.2
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/LICENSE +177 -0
- package/README.md +17 -2
- package/THIRD-PARTY-LICENSES.txt +2607 -0
- package/dist/bin.js +47 -0
- package/dist/chunk-23W7VWKR.js +2609 -0
- package/dist/chunk-27NKUS3X.js +4330 -0
- package/dist/chunk-2ANOROX3.js +2522 -0
- package/dist/chunk-2BF2EYJV.js +174 -0
- package/dist/chunk-2BFCZ3RK.js +315 -0
- package/dist/chunk-2DIQQJCB.js +378 -0
- package/dist/chunk-2RMYG36Q.js +1227 -0
- package/dist/chunk-2VHF7OXM.js +55 -0
- package/dist/chunk-3ALD2W2A.js +95 -0
- package/dist/chunk-3C7EYRFZ.js +41 -0
- package/dist/chunk-3G4YI4ZU.js +16 -0
- package/dist/chunk-3HI6Z55Y.js +5949 -0
- package/dist/chunk-3USYZGRF.js +324 -0
- package/dist/chunk-42EVSKME.js +37 -0
- package/dist/chunk-4AK7IBVP.js +915 -0
- package/dist/chunk-4BKGMUIK.js +53 -0
- package/dist/chunk-4BN53TG3.js +343 -0
- package/dist/chunk-4NDAAFQT.js +103 -0
- package/dist/chunk-4Q3NN7VF.js +32 -0
- package/dist/chunk-4RS5KZQD.js +25 -0
- package/dist/chunk-4SKZDI62.js +22 -0
- package/dist/chunk-4WBVUHXN.js +69 -0
- package/dist/chunk-5GDRCDQB.js +32 -0
- package/dist/chunk-5GGOLAKC.js +856 -0
- package/dist/chunk-5KLGBXG5.js +48 -0
- package/dist/chunk-5WG5YP4T.js +34 -0
- package/dist/chunk-64EQYWCA.js +180 -0
- package/dist/chunk-652QWTLZ.js +242 -0
- package/dist/chunk-65NYPGRC.js +766 -0
- package/dist/chunk-66YVAGGM.js +46 -0
- package/dist/chunk-6BNC6EQ4.js +41 -0
- package/dist/chunk-6BVONWJ7.js +50 -0
- package/dist/chunk-6D2CQ5II.js +41 -0
- package/dist/chunk-6IU67AEK.js +325 -0
- package/dist/chunk-6J5OKA4Y.js +49 -0
- package/dist/chunk-6JCPI55B.js +92 -0
- package/dist/chunk-6JUBZBMW.js +56 -0
- package/dist/chunk-6M5NK3K3.js +415 -0
- package/dist/chunk-6QSERWXH.js +53 -0
- package/dist/chunk-6TACQN3N.js +41 -0
- package/dist/chunk-76WKMA4J.js +14 -0
- package/dist/chunk-7AVHLZGD.js +45 -0
- package/dist/chunk-7EFILTCI.js +67 -0
- package/dist/chunk-7EKXJZ2Y.js +2902 -0
- package/dist/chunk-7EOBHUMC.js +133 -0
- package/dist/chunk-7FBGJFEE.js +66 -0
- package/dist/chunk-7JUKDRSZ.js +1726 -0
- package/dist/chunk-7SW2QWLU.js +212 -0
- package/dist/chunk-7WD63HU2.js +143 -0
- package/dist/chunk-7ZUIMTOU.js +108 -0
- package/dist/chunk-A3GY6SOA.js +95 -0
- package/dist/chunk-A7UPUQFY.js +2356 -0
- package/dist/chunk-AA6YULYB.js +376 -0
- package/dist/chunk-ABWHYWNI.js +101 -0
- package/dist/chunk-AIOQPLA5.js +540 -0
- package/dist/chunk-AVJDSJ2F.js +18 -0
- package/dist/chunk-B2WLAWNJ.js +374 -0
- package/dist/chunk-BKVWTZ6A.js +211 -0
- package/dist/chunk-BOHJZTEQ.js +1991 -0
- package/dist/chunk-BWZ77RQT.js +25 -0
- package/dist/chunk-C6EKFH7J.js +169 -0
- package/dist/chunk-CAQZUNOH.js +1150 -0
- package/dist/chunk-CEXSU4S6.js +1217 -0
- package/dist/chunk-CKSITVS4.js +16101 -0
- package/dist/chunk-CNUKCS2T.js +2741 -0
- package/dist/chunk-CPA6HPVR.js +3206 -0
- package/dist/chunk-CR3MTH32.js +207 -0
- package/dist/chunk-CSZ4C5N6.js +307 -0
- package/dist/chunk-D3PO4DOZ.js +261 -0
- package/dist/chunk-D46WUV3T.js +33 -0
- package/dist/chunk-DE76JROX.js +80 -0
- package/dist/chunk-DFBCSHVT.js +69 -0
- package/dist/chunk-DHPACDG7.js +104 -0
- package/dist/chunk-DKJA76CJ.js +113 -0
- package/dist/chunk-DPUYDDQG.js +164 -0
- package/dist/chunk-DPZHZQKE.js +285 -0
- package/dist/chunk-E36QOJMD.js +47 -0
- package/dist/chunk-EADP3PEN.js +450 -0
- package/dist/chunk-EBEW3XXQ.js +166 -0
- package/dist/chunk-EDS2L2LD.js +106 -0
- package/dist/chunk-EFHQ3TWP.js +637 -0
- package/dist/chunk-EPTBZ3GP.js +101 -0
- package/dist/chunk-EYWIDJFU.js +130 -0
- package/dist/chunk-F7HYOUFF.js +287 -0
- package/dist/chunk-FHH4I4ZV.js +128 -0
- package/dist/chunk-FITWGOJ2.js +131 -0
- package/dist/chunk-FQXYPF7E.js +147 -0
- package/dist/chunk-G2B4ZQGH.js +240 -0
- package/dist/chunk-GBRFVT63.js +45 -0
- package/dist/chunk-GDLULHTC.js +2919 -0
- package/dist/chunk-GLUX4EEP.js +583 -0
- package/dist/chunk-GQ4N4WKF.js +1142 -0
- package/dist/chunk-GT4I4ZWM.js +38 -0
- package/dist/chunk-HFQCFSJR.js +60 -0
- package/dist/chunk-HITVBIJS.js +1247 -0
- package/dist/chunk-HLJAXMM4.js +233 -0
- package/dist/chunk-HVUPKCGJ.js +162 -0
- package/dist/chunk-I3E7CX4H.js +155 -0
- package/dist/chunk-I4JRCD6M.js +184 -0
- package/dist/chunk-ICY36XCH.js +34 -0
- package/dist/chunk-IHMLFRVV.js +228 -0
- package/dist/chunk-IPKHE5D6.js +1963 -0
- package/dist/chunk-J4K3KVLD.js +131 -0
- package/dist/chunk-JBTK5OP2.js +55 -0
- package/dist/chunk-JCZIKA4C.js +163 -0
- package/dist/chunk-JGZCG5VM.js +189 -0
- package/dist/chunk-JIITQXFB.js +4087 -0
- package/dist/chunk-JMSCMUCA.js +271 -0
- package/dist/chunk-JZU3H6UQ.js +54 -0
- package/dist/chunk-K65BJIMT.js +49 -0
- package/dist/chunk-KEM4SDDP.js +3898 -0
- package/dist/chunk-KQDZXGNR.js +14 -0
- package/dist/chunk-L24C55VN.js +7923 -0
- package/dist/chunk-L6SGQIR3.js +471 -0
- package/dist/chunk-LR3R6Z2A.js +400 -0
- package/dist/chunk-M766ZJ6W.js +119 -0
- package/dist/chunk-MC3H7736.js +19910 -0
- package/dist/chunk-MGYZM27B.js +205 -0
- package/dist/chunk-MMOSZPWJ.js +273 -0
- package/dist/chunk-MVZVGYXH.js +1611 -0
- package/dist/chunk-N7IXEHK3.js +549 -0
- package/dist/chunk-NE2W3OO7.js +230 -0
- package/dist/chunk-NN2ZQEB4.js +38 -0
- package/dist/chunk-NXFPS2LR.js +182 -0
- package/dist/chunk-O3WI5KWW.js +31 -0
- package/dist/chunk-OLQJTJJU.js +76 -0
- package/dist/chunk-ONLS5QA5.js +102 -0
- package/dist/chunk-OT2O76OS.js +1496 -0
- package/dist/chunk-PAMPPUR6.js +4500 -0
- package/dist/chunk-PCOCACY3.js +385 -0
- package/dist/chunk-PCVDV3UZ.js +430 -0
- package/dist/chunk-PRPPGYZG.js +104 -0
- package/dist/chunk-Q4D5X7QB.js +264 -0
- package/dist/chunk-Q5AMFEWD.js +119 -0
- package/dist/chunk-QRAOANID.js +214 -0
- package/dist/chunk-QSXK2RGH.js +688 -0
- package/dist/chunk-QZSX3F7C.js +389 -0
- package/dist/chunk-R6RY4Q5T.js +51 -0
- package/dist/chunk-R6XF6UR3.js +149 -0
- package/dist/chunk-R77KLRB3.js +166 -0
- package/dist/chunk-RRTKKSLQ.js +251 -0
- package/dist/chunk-RTEYOSJY.js +29 -0
- package/dist/chunk-RUVFXE2L.js +666 -0
- package/dist/chunk-RVH5SUW5.js +69 -0
- package/dist/chunk-RZPYKDWS.js +26 -0
- package/dist/chunk-S2A7YC3Q.js +41433 -0
- package/dist/chunk-S3QNRWYR.js +25 -0
- package/dist/chunk-SJRGMG6A.js +174 -0
- package/dist/chunk-SP2I63OO.js +252 -0
- package/dist/chunk-T2UYZSCQ.js +545 -0
- package/dist/chunk-T6AIP7H5.js +3851 -0
- package/dist/chunk-T6XQL73F.js +94 -0
- package/dist/chunk-TANFV3MZ.js +531 -0
- package/dist/chunk-TDD55CJH.js +119 -0
- package/dist/chunk-TV45EUGM.js +51 -0
- package/dist/chunk-TXLH6WHQ.js +2078 -0
- package/dist/chunk-TYAID7B7.js +408 -0
- package/dist/chunk-UBBC2XSG.js +873 -0
- package/dist/chunk-UGLN7QHV.js +27 -0
- package/dist/chunk-UNM6ZOKP.js +878 -0
- package/dist/chunk-V2YTAIQO.js +1075 -0
- package/dist/chunk-VN3DP4LQ.js +43 -0
- package/dist/chunk-VOGCSYOI.js +16 -0
- package/dist/chunk-VYDBJ73M.js +32 -0
- package/dist/chunk-W3BQAZ3Q.js +34 -0
- package/dist/chunk-W5BVQF44.js +36 -0
- package/dist/chunk-WVPJSRRJ.js +52 -0
- package/dist/chunk-WY6PP6AA.js +53 -0
- package/dist/chunk-XAKWMCXI.js +285 -0
- package/dist/chunk-XPCM366L.js +70 -0
- package/dist/chunk-XPTOBS2D.js +48 -0
- package/dist/chunk-XY3P7JW7.js +3479 -0
- package/dist/chunk-XZRON6IV.js +131 -0
- package/dist/chunk-YEDDOYSC.js +27809 -0
- package/dist/chunk-YISXLPHN.js +496 -0
- package/dist/chunk-YMZ3TNYB.js +18 -0
- package/dist/chunk-YY6ZQQBP.js +203 -0
- package/dist/chunk-YYQN46FY.js +334 -0
- package/dist/chunk-Z6LF7HQN.js +22 -0
- package/dist/chunk-ZCJDOK2S.js +116 -0
- package/dist/chunk-ZDPAS56H.js +76 -0
- package/dist/chunk-ZMAINWBW.js +18 -0
- package/dist/chunk-ZMFPW66A.js +22 -0
- package/dist/chunk-ZNCEKR4J.js +296 -0
- package/dist/chunk-ZVM6AKKM.js +47 -0
- package/dist/files.json +1888 -0
- package/dist/fixtures/forge/README.md +19 -0
- package/dist/fixtures/forge/expected/discrepancies.yaml +54 -0
- package/dist/fixtures/forge/expected/inputs.yaml +38 -0
- package/dist/fixtures/forge/expected/scan.yaml +342 -0
- package/dist/fixtures/forge/inputs/diagrams/forge-context.drawio +23 -0
- package/dist/fixtures/forge/inputs/partner-specs/northwind-pay-openapi.yaml +11 -0
- package/dist/fixtures/forge/inputs/tickets/ado-stories.json +4 -0
- package/dist/fixtures/forge/inputs/tickets/closed-service-requests.json +5 -0
- package/dist/fixtures/forge/inputs/wiki/integration-patterns.md +11 -0
- package/dist/fixtures/forge/inputs/wiki/ledger-solution-spec.md +9 -0
- package/dist/fixtures/forge/inputs/wiki/snow-firewall-request.md +4 -0
- package/dist/fixtures/forge/metarepo/judgments/reaches/84af5b6af24f7ca8c23013f3.yaml +17 -0
- package/dist/fixtures/forge/metarepo/judgments/reaches/c3917555edebddce8cecb647.yaml +17 -0
- package/dist/fixtures/forge/metarepo/judgments/reaches/c5fafd6601f8ca9e34e0bbd0.yaml +17 -0
- package/dist/fixtures/forge/metarepo/org-pack/agents/architecture-critic.yaml +9 -0
- package/dist/fixtures/forge/metarepo/org-pack/agents/story-writer.yaml +10 -0
- package/dist/fixtures/forge/metarepo/org-pack/checklists/architecture.yaml +115 -0
- package/dist/fixtures/forge/metarepo/org-pack/dialects/forge.yaml +111 -0
- package/dist/fixtures/forge/metarepo/org-pack/gates.yaml +22 -0
- package/dist/fixtures/forge/metarepo/org-pack/pack.yaml +11 -0
- package/dist/fixtures/forge/metarepo/org-pack/patterns/A.EB.PUB.yaml +12 -0
- package/dist/fixtures/forge/metarepo/org-pack/patterns/D.JDBC.yaml +12 -0
- package/dist/fixtures/forge/metarepo/org-pack/patterns/S.DIR.BFF.yaml +12 -0
- package/dist/fixtures/forge/metarepo/org-pack/patterns/S.GW.SOR.yaml +13 -0
- package/dist/fixtures/forge/metarepo/org-pack/patterns/S.GW.VND.yaml +14 -0
- package/dist/fixtures/forge/metarepo/org-pack/process/change-templates/feature.md +37 -0
- package/dist/fixtures/forge/metarepo/org-pack/process/skills/add-forge-endpoint/SKILL.md +17 -0
- package/dist/fixtures/forge/metarepo/org-pack/process/snow/firewall-rule.yaml +14 -0
- package/dist/fixtures/forge/metarepo/org-pack/process/snow/gateway-route.yaml +13 -0
- package/dist/fixtures/forge/metarepo/org-pack/profiles/forge/profile.yaml +12 -0
- package/dist/fixtures/forge/metarepo/org-pack/profiles/forge/repos.manifest.yaml +44 -0
- package/dist/fixtures/forge/metarepo/org-pack/roles.yaml +14 -0
- package/dist/fixtures/forge/metarepo/org-pack/runtime.yaml +14 -0
- package/dist/fixtures/forge/metarepo/org-pack/sources.yaml +3 -0
- package/dist/fixtures/forge/repos/forge-events/topics/payments.initiated.yaml +4 -0
- package/dist/fixtures/forge/repos/forge-events/topics/transfers.completed.yaml +4 -0
- package/dist/fixtures/forge/repos/forge-gateway/proxies/ledger-v1/apiproxy/ledger-v1.xml +3 -0
- package/dist/fixtures/forge/repos/forge-gateway/proxies/ledger-v1/apiproxy/policies/SpikeArrest.xml +3 -0
- package/dist/fixtures/forge/repos/forge-gateway/proxies/ledger-v1/apiproxy/policies/VerifyOAuth.xml +4 -0
- package/dist/fixtures/forge/repos/forge-gateway/proxies/ledger-v1/apiproxy/proxies/default.xml +14 -0
- package/dist/fixtures/forge/repos/forge-gateway/proxies/ledger-v1/apiproxy/targets/ledger.xml +5 -0
- package/dist/fixtures/forge/repos/forge-infra/alerts/ledger-api.yaml +5 -0
- package/dist/fixtures/forge/repos/forge-infra/k8s/ledger-api.yaml +15 -0
- package/dist/fixtures/forge/repos/forge-infra/k8s/portal-bff.yaml +7 -0
- package/dist/fixtures/forge/repos/forge-infra/terraform/ledger-db.tf +9 -0
- package/dist/fixtures/forge/repos/forge-ledger/api/ledger-openapi.yaml +31 -0
- package/dist/fixtures/forge/repos/forge-ledger/forge.yaml +4 -0
- package/dist/fixtures/forge/repos/forge-ledger/src/main/java/forge/ledger/LedgerEndpoints.java +13 -0
- package/dist/fixtures/forge/repos/forge-ledger/src/main/java/forge/ledger/LedgerEvents.java +11 -0
- package/dist/fixtures/forge/repos/forge-ledger/src/main/java/forge/ledger/NorthwindClient.java +10 -0
- package/dist/fixtures/forge/repos/forge-ledger/src/main/resources/application.yml +3 -0
- package/dist/fixtures/forge/repos/forge-ledger/src/main/resources/db/migration/V1__create_account.sql +5 -0
- package/dist/fixtures/forge/repos/forge-ledger/src/main/resources/db/migration/V2__create_entry.sql +7 -0
- package/dist/fixtures/forge/repos/forge-portal-bff/pom.xml +1 -0
- package/dist/fixtures/forge/repos/forge-portal-bff/src/main/java/forge/portal/AuditPublisher.java +12 -0
- package/dist/fixtures/forge/repos/forge-portal-bff/src/main/java/forge/portal/BalanceController.java +16 -0
- package/dist/fixtures/forge/repos/forge-portal-bff/src/main/java/forge/portal/LedgerClient.java +13 -0
- package/dist/fixtures/forge/repos/forge-portal-bff/src/main/java/forge/portal/PaymentEvents.java +13 -0
- package/dist/fixtures/forge/repos/forge-portal-bff/src/main/resources/application.yml +8 -0
- package/dist/fixtures/forge/repos/forge-portal-ui/package.json +1 -0
- package/dist/fixtures/forge/repos/forge-portal-ui/src/api/balance.ts +5 -0
- package/dist/fixtures/forge/repos/forge-reports-job/src/main/java/forge/reports/DailyEntriesJob.java +19 -0
- package/dist/fixtures/forge/repos/forge-reports-job/src/main/resources/application.yml +3 -0
- package/dist/fixtures/forge-change/README.md +41 -0
- package/dist/fixtures/forge-change/expected/findings.yaml +301 -0
- package/dist/fixtures/forge-change/expected/stories.yaml +101 -0
- package/dist/fixtures/forge-change/judgments/personal-data/0b5f3dbf5257a22275d8c74b.yaml +18 -0
- package/dist/fixtures/forge-change/judgments/personal-data/2759a66770134c417440bf2d.yaml +18 -0
- package/dist/fixtures/forge-change/judgments/personal-data/31b1ea2f14d0737f1aca79fd.yaml +18 -0
- package/dist/fixtures/forge-change/judgments/personal-data/49afd70c08228e65ad6ca1ed.yaml +18 -0
- package/dist/fixtures/forge-change/judgments/personal-data/761cabcb8a39f5e5866d2dd6.yaml +18 -0
- package/dist/fixtures/forge-change/judgments/personal-data/adae902b90cc8ffa0c765145.yaml +18 -0
- package/dist/fixtures/forge-change/judgments/personal-data/ba11bb933105ec9493e065dd.yaml +18 -0
- package/dist/fixtures/forge-change/judgments/personal-data/bdbcd1cdac3021c68063c3e7.yaml +18 -0
- package/dist/fixtures/forge-change/openspec/changes/add-transfer-limit/brief.md +35 -0
- package/dist/fixtures/forge-change/openspec/changes/add-transfer-limit/change.yaml +120 -0
- package/dist/fixtures/forge-change/openspec/changes/add-transfer-limit/data.md +18 -0
- package/dist/fixtures/forge-change/openspec/changes/add-transfer-limit/design.md +29 -0
- package/dist/fixtures/forge-change/openspec/changes/add-transfer-limit/interfaces.md +17 -0
- package/dist/fixtures/forge-change/openspec/changes/add-transfer-limit/mappings.md +26 -0
- package/dist/fixtures/forge-change/openspec/changes/add-transfer-limit/proposal.md +35 -0
- package/dist/fixtures/forge-change/openspec/changes/add-transfer-limit/snow.md +12 -0
- package/dist/fixtures/forge-change/openspec/changes/add-transfer-limit/specs/transfer-limits/spec.md +19 -0
- package/dist/fixtures/forge-change/openspec/changes/add-transfer-limit/stories/s1-refuse-over-limit.md +17 -0
- package/dist/fixtures/forge-change/openspec/changes/add-transfer-limit/stories/s2-show-remaining.md +16 -0
- package/dist/fixtures/forge-change/openspec/changes/add-transfer-limit/stories/s3-audit-refusals.md +18 -0
- package/dist/fixtures/forge-change/openspec/changes/add-transfer-limit/stories/s4-velocity-check.md +16 -0
- package/dist/fixtures/forge-change/openspec/changes/add-transfer-limit/stories.md +8 -0
- package/dist/fixtures/forge-change/openspec/changes/add-transfer-limit/tasks.md +12 -0
- package/dist/fixtures/forge-change/openspec/changes/add-transfer-limit/ux.md +7 -0
- package/dist/fixtures/forge-change/org-pack/agents/code-and-test-critic.yaml +13 -0
- package/dist/fixtures/forge-change/org-pack/agents/complete-critic.yaml +12 -0
- package/dist/fixtures/forge-change/org-pack/agents/safe-critic.yaml +12 -0
- package/dist/fixtures/forge-change/org-pack/agents/ship-critic.yaml +11 -0
- package/dist/fixtures/forge-change/org-pack/agents/true-critic.yaml +11 -0
- package/dist/fixtures/forge-change/org-pack/checklists/review.yaml +54 -0
- package/dist/fixtures/forge-change/org-pack/gates.yaml +25 -0
- package/dist/fixtures/forge-change/org-pack/teams/team-ledger/checklists/ledger-team.yaml +227 -0
- package/dist/fixtures/forge-change/recordings/complete-critic/2ad84f84bf39c1d5412697e69fe23034d6983ec45a00314bf0975e627589a3c5.json +12 -0
- package/dist/fixtures/forge-change/recordings/complete-critic/417c98d8e54a4387d0fd93441c49f44c2868958739070d855c1dce0c41e24db3.json +12 -0
- package/dist/fixtures/forge-change/recordings/complete-critic/50203ee22e9cb3ef047295edb6538fe7d5695e1e4b139f3c929013dc6ce47021.json +12 -0
- package/dist/fixtures/forge-change/recordings/complete-critic/89f18d67f5d9c325bf35e2a9e020f9ddb6ee13b8523315037f0905cc57c040b1.json +12 -0
- package/dist/fixtures/forge-change/recordings/complete-critic/b4097867d26ae8eadc8b9efa8cdd86897013358035f0b40086c299a59c4ba121.json +12 -0
- package/dist/fixtures/forge-change/recordings/safe-critic/302d06f49664dd67ad2e21ab9cf74c1b0f7d3f750709c6ed8eff2b70983274e2.json +12 -0
- package/dist/fixtures/forge-change/recordings/safe-critic/32f1049c9a5ab4a759543290db4644ec6e221cc45fdfdcf06193837c6a8ce0b9.json +12 -0
- package/dist/fixtures/forge-change/recordings/safe-critic/4e4a84bfc04b9f26ca4250319a879901ff7a1c081c71e46a117675fee05026b0.json +12 -0
- package/dist/fixtures/forge-change/recordings/safe-critic/604af0fcdd6df6b76208fa88305fdc15c37606c2a4d1ae816477e46ac8c2dd04.json +12 -0
- package/dist/fixtures/forge-change/recordings/safe-critic/f0bf50af11f14c50d07904f0dffe1c8c20fb0cd89770645a8824c1d30a443955.json +12 -0
- package/dist/fixtures/forge-change/recordings/ship-critic/350954b58833b2c04880c67db45a1b328b7fd541d9f0d943b63905b8875488a6.json +12 -0
- package/dist/fixtures/forge-change/recordings/ship-critic/4af95c6c96a206777cec9de1f9c2d8c55a36ddc9b8db2f81d6eb83217b835efa.json +12 -0
- package/dist/fixtures/forge-change/recordings/ship-critic/76c34522a49cf7587a4e5689a5030d384603fa780b8aba97d27815cbc829683e.json +12 -0
- package/dist/fixtures/forge-change/recordings/ship-critic/a3b2cd1ace48587e5994333db03b34c3a0f9dec4f1932f1730ddfb687f6918c8.json +12 -0
- package/dist/fixtures/forge-change/recordings/ship-critic/de288a4fa64d0fc20890f9a787080ce6eac5203b7b9b72d884df11e8cf111835.json +12 -0
- package/dist/fixtures/forge-change/recordings/story-writer/1ddb00eac2aaf91a5ec5d9dfd220116be9f75aec6546a4a3a3b050ed89af2864.json +12 -0
- package/dist/packages/assistant-kit/frameworks-kit/README.md +86 -0
- package/dist/packages/assistant-kit/frameworks-kit/checklist.md +11 -0
- package/dist/packages/assistant-kit/frameworks-kit/examples/tide-lantern.yaml +56 -0
- package/dist/packages/assistant-kit/frameworks-kit/examples/tide-platform.yaml +43 -0
- package/dist/packages/assistant-kit/frameworks-kit/prompts/write-framework-model.md +12 -0
- package/dist/packages/assistant-kit/kit/README.md +98 -0
- package/dist/packages/assistant-kit/kit/c2-reference.md +334 -0
- package/dist/packages/assistant-kit/kit/checklist.md +39 -0
- package/dist/packages/assistant-kit/kit/examples/house-http-client.yaml +102 -0
- package/dist/packages/assistant-kit/kit/examples/tide-apigee.yaml +56 -0
- package/dist/packages/assistant-kit/kit/examples/tide-apim.yaml +32 -0
- package/dist/packages/assistant-kit/kit/examples/tide-kong.yaml +44 -0
- package/dist/packages/assistant-kit/kit/prompts/write-dialect.md +34 -0
- package/dist/packages/assistant-kit/kit/worked-example.md +198 -0
- package/dist/packages/conformance/sample/README.md +4 -0
- package/dist/packages/conformance/sample/inputs/notes.md +3 -0
- package/dist/packages/conformance/sample/inputs/systems.csv +3 -0
- package/dist/packages/conformance/sample/repo/api/greeter.proto +6 -0
- package/dist/packages/conformance/sample/repo/api/openapi.yaml +10 -0
- package/dist/packages/conformance/sample/repo/api/schema.graphql +3 -0
- package/dist/packages/conformance/sample/repo/db/V1__create_greeting.sql +4 -0
- package/dist/packages/conformance/sample/repo/package.json +7 -0
- package/dist/packages/conformance/sample/repo/src/main/java/sample/HelloController.java +10 -0
- package/dist/packages/conformance/sample/repo/web/app.ts +4 -0
- package/dist/packages/evals/datasets/critic-lenses.yaml +62 -0
- package/dist/packages/evals/datasets/dialect-writer.yaml +14 -0
- package/dist/packages/evals/datasets/feature-namer.yaml +34 -0
- package/dist/packages/evals/datasets/glossary-definer.yaml +25 -0
- package/dist/packages/evals/datasets/story-writer.yaml +13 -0
- package/dist/packages/evals/datasets/template-writer.yaml +16 -0
- package/dist/packages/evals/datasets/test-writer.yaml +18 -0
- package/dist/packages/executors/reference/reference-executor.mjs +233 -0
- package/dist/packages/extractors/dialects/argocd.yaml +45 -0
- package/dist/packages/extractors/dialects/fixtures/jaxrs/accounts-service/src/main/java/forge/accounts/AccountResource.java +47 -0
- package/dist/packages/extractors/dialects/fixtures/jaxrs/accounts-service/src/main/java/forge/accounts/AuditClient.java +12 -0
- package/dist/packages/extractors/dialects/fixtures/jaxrs/accounts-service/src/main/java/forge/accounts/LedgerClient.java +17 -0
- package/dist/packages/extractors/dialects/fixtures/micronaut/statements-service/src/main/java/forge/statements/LedgerClient.java +14 -0
- package/dist/packages/extractors/dialects/fixtures/micronaut/statements-service/src/main/java/forge/statements/RatesClient.java +11 -0
- package/dist/packages/extractors/dialects/fixtures/micronaut/statements-service/src/main/java/forge/statements/StatementController.java +36 -0
- package/dist/packages/extractors/dialects/fixtures/micronaut/statements-service/src/main/resources/application.yml +7 -0
- package/dist/packages/extractors/dialects/fixtures/quarkus-reactive-messaging/fraud-service/src/main/java/forge/fraud/FraudScorer.java +27 -0
- package/dist/packages/extractors/dialects/fixtures/quarkus-reactive-messaging/fraud-service/src/main/resources/application.properties +4 -0
- package/dist/packages/extractors/dialects/fixtures/terraform-aws/forge-aws-infra/envs/prod/api.tf +38 -0
- package/dist/packages/extractors/dialects/fixtures/terraform-aws/forge-aws-infra/envs/prod/main.tf +95 -0
- package/dist/packages/extractors/dialects/fixtures/terraform-aws/forge-aws-infra/envs/prod/terraform.tfvars +1 -0
- package/dist/packages/extractors/dialects/fixtures/terraform-aws/forge-aws-infra/envs/prod/variables.tf +4 -0
- package/dist/packages/extractors/dialects/fixtures/terraform-azure/forge-azure-infra/main.tf +102 -0
- package/dist/packages/extractors/dialects/fixtures/terraform-gcp/forge-gcp-infra/main.tf +51 -0
- package/dist/packages/extractors/dialects/harness.yaml +101 -0
- package/dist/packages/extractors/dialects/jaxrs.yaml +155 -0
- package/dist/packages/extractors/dialects/micronaut.yaml +207 -0
- package/dist/packages/extractors/dialects/quarkus-reactive-messaging.yaml +158 -0
- package/dist/packages/extractors/dialects/tekton.yaml +71 -0
- package/dist/packages/extractors/dialects/terraform-aws.yaml +267 -0
- package/dist/packages/extractors/dialects/terraform-azure.yaml +212 -0
- package/dist/packages/extractors/dialects/terraform-gcp.yaml +109 -0
- package/dist/packages/extractors/grammars/README.md +11 -0
- package/dist/packages/extractors/grammars/tree-sitter-groovy.LICENSE +21 -0
- package/dist/packages/extractors/grammars/tree-sitter-groovy.wasm +0 -0
- package/dist/packages/extractors/grammars/vendored.json +11 -0
- package/dist/packages/learn/lessons/architect-diagrams-and-code.yaml +69 -0
- package/dist/packages/learn/lessons/business-analyst-story-bar.yaml +94 -0
- package/dist/packages/learn/lessons/delivery-lead-release-readiness.yaml +44 -0
- package/dist/packages/learn/lessons/designer-features-in-user-words.yaml +57 -0
- package/dist/packages/learn/lessons/developer-find-your-way.yaml +60 -0
- package/dist/packages/learn/lessons/everyone-first-hour.yaml +74 -0
- package/dist/packages/learn/lessons/platform-lead-coverage-and-defences.yaml +58 -0
- package/dist/packages/learn/lessons/product-owner-first-change.yaml +167 -0
- package/dist/packages/learn/lessons/qa-tests-and-trace.yaml +53 -0
- package/dist/packages/learn/lessons/team-lead-initiative.yaml +146 -0
- package/dist/packages/naysayer/constitution/constitution.yaml +286 -0
- package/dist/packages/naysayer/starter/review.yaml +256 -0
- package/dist/packages/sdk/npm/index.js +8892 -0
- package/dist/packages/speckit/rules/drift.yaml +78 -0
- package/dist/packages/taskrun/rules/conform.yaml +38 -0
- package/dist/packages/testgen/rules/trace.yaml +49 -0
- package/dist/packages/ui/dist/assets/elk-api-tma0MCuh.js +2 -0
- package/dist/packages/ui/dist/assets/elk-worker.min--dAJroGl.js +6401 -0
- package/dist/packages/ui/dist/assets/elk-worker.min-DdYmS5kP.js +2 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2 +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff +0 -0
- package/dist/packages/ui/dist/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2 +0 -0
- package/dist/packages/ui/dist/assets/index-B54fm9FQ.js +29 -0
- package/dist/packages/ui/dist/assets/index-DD_hufQz.css +1 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
- package/dist/packages/ui/dist/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff +0 -0
- package/dist/packages/ui/dist/assets/rajdhani-devanagari-600-normal-BtY48IV_.woff +0 -0
- package/dist/packages/ui/dist/assets/rajdhani-devanagari-600-normal-DhS7ScYx.woff2 +0 -0
- package/dist/packages/ui/dist/assets/rajdhani-devanagari-700-normal-BQQOj9BB.woff2 +0 -0
- package/dist/packages/ui/dist/assets/rajdhani-devanagari-700-normal-DBRwWuxA.woff +0 -0
- package/dist/packages/ui/dist/assets/rajdhani-latin-600-normal-CXCVEoA9.woff2 +0 -0
- package/dist/packages/ui/dist/assets/rajdhani-latin-600-normal-Dx02qI2_.woff +0 -0
- package/dist/packages/ui/dist/assets/rajdhani-latin-700-normal-BPDUZo87.woff2 +0 -0
- package/dist/packages/ui/dist/assets/rajdhani-latin-700-normal-e0Uj8ZlN.woff +0 -0
- package/dist/packages/ui/dist/assets/rajdhani-latin-ext-600-normal-BleIgkPp.woff +0 -0
- package/dist/packages/ui/dist/assets/rajdhani-latin-ext-600-normal-C9ZjJQAt.woff2 +0 -0
- package/dist/packages/ui/dist/assets/rajdhani-latin-ext-700-normal-BPaQ7tlD.woff +0 -0
- package/dist/packages/ui/dist/assets/rajdhani-latin-ext-700-normal-S6aYESQK.woff2 +0 -0
- package/dist/packages/ui/dist/favicon.svg +1 -0
- package/dist/packages/ui/dist/index.html +15 -0
- package/dist/third-party.json +575 -0
- package/dist/vendor/@fission-ai/openspec/bin/openspec.js +85986 -0
- package/dist/vendor/@fission-ai/openspec/package.json +82 -0
- package/dist/vendor/@fission-ai/openspec/schemas/spec-driven/schema.yaml +248 -0
- package/dist/vendor/@fission-ai/openspec/schemas/spec-driven/templates/design.md +21 -0
- package/dist/vendor/@fission-ai/openspec/schemas/spec-driven/templates/proposal.md +34 -0
- package/dist/vendor/@fission-ai/openspec/schemas/spec-driven/templates/spec.md +13 -0
- package/dist/vendor/@fission-ai/openspec/schemas/spec-driven/templates/tasks.md +11 -0
- package/dist/vendor/tree-sitter-wasms/out/tree-sitter-c_sharp.wasm +0 -0
- package/dist/vendor/tree-sitter-wasms/out/tree-sitter-go.wasm +0 -0
- package/dist/vendor/tree-sitter-wasms/out/tree-sitter-java.wasm +0 -0
- package/dist/vendor/tree-sitter-wasms/out/tree-sitter-javascript.wasm +0 -0
- package/dist/vendor/tree-sitter-wasms/out/tree-sitter-kotlin.wasm +0 -0
- package/dist/vendor/tree-sitter-wasms/out/tree-sitter-php.wasm +0 -0
- package/dist/vendor/tree-sitter-wasms/out/tree-sitter-python.wasm +0 -0
- package/dist/vendor/tree-sitter-wasms/out/tree-sitter-ruby.wasm +0 -0
- package/dist/vendor/tree-sitter-wasms/out/tree-sitter-rust.wasm +0 -0
- package/dist/vendor/tree-sitter-wasms/out/tree-sitter-scala.wasm +0 -0
- package/dist/vendor/tree-sitter-wasms/out/tree-sitter-tsx.wasm +0 -0
- package/dist/vendor/tree-sitter-wasms/out/tree-sitter-typescript.wasm +0 -0
- package/dist/vendor/web-tree-sitter/tree-sitter.wasm +0 -0
- package/package.json +36 -3
|
@@ -0,0 +1,471 @@
|
|
|
1
|
+
import { createRequire as __atticusCreateRequire } from "node:module";
|
|
2
|
+
import { fileURLToPath as __atticusFileURLToPath } from "node:url";
|
|
3
|
+
var require = __atticusCreateRequire(import.meta.url);
|
|
4
|
+
var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
5
|
+
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
|
+
import {
|
|
7
|
+
FLOW_STEP_KINDS,
|
|
8
|
+
FLOW_TRIGGER_KINDS,
|
|
9
|
+
QuestionDraft,
|
|
10
|
+
changesDirOf,
|
|
11
|
+
external_exports,
|
|
12
|
+
require_dist
|
|
13
|
+
} from "./chunk-S2A7YC3Q.js";
|
|
14
|
+
import {
|
|
15
|
+
__toESM
|
|
16
|
+
} from "./chunk-TV45EUGM.js";
|
|
17
|
+
|
|
18
|
+
// packages/planner/dist/stages/schema.js
|
|
19
|
+
var STAGE_SCHEMA_VERSION = 1;
|
|
20
|
+
var V = external_exports.literal(STAGE_SCHEMA_VERSION);
|
|
21
|
+
var text = () => external_exports.string().trim().min(1);
|
|
22
|
+
var Id = external_exports.string().regex(/^[a-z0-9][a-z0-9._-]*$/, "an id is lower case: letters, digits, . _ -");
|
|
23
|
+
var STAGES = ["feature", "architecture", "stories", "small"];
|
|
24
|
+
var Stage = external_exports.enum(STAGES);
|
|
25
|
+
var STAGE_PHASE = {
|
|
26
|
+
feature: "define",
|
|
27
|
+
architecture: "design",
|
|
28
|
+
stories: "plan",
|
|
29
|
+
small: "plan"
|
|
30
|
+
};
|
|
31
|
+
var Backing = external_exports.enum(["existing", "new", "unbacked"]);
|
|
32
|
+
var DesignField = external_exports.strictObject({
|
|
33
|
+
/** The node id in the design file. */
|
|
34
|
+
figmaId: text(),
|
|
35
|
+
label: text(),
|
|
36
|
+
/** existing: the estate has it today; new: this change adds it; unbacked: nothing provides it. */
|
|
37
|
+
backing: Backing,
|
|
38
|
+
/** For existing: the API field and column, in words. */
|
|
39
|
+
mapsTo: external_exports.string().optional(),
|
|
40
|
+
/** Catalog or flow ids the mapping rests on (each one is checked to exist). */
|
|
41
|
+
refs: external_exports.array(Id).default([]),
|
|
42
|
+
/** What is missing, for new and unbacked (and existing data that still needs a link). */
|
|
43
|
+
gap: external_exports.string().optional()
|
|
44
|
+
});
|
|
45
|
+
var DesignAction = external_exports.strictObject({
|
|
46
|
+
figmaId: text(),
|
|
47
|
+
label: text(),
|
|
48
|
+
does: external_exports.string().optional(),
|
|
49
|
+
/** The call it makes today, "METHOD /path", or "none" for navigation. */
|
|
50
|
+
endpoint: external_exports.string().optional(),
|
|
51
|
+
/** The flow it starts, when one exists. */
|
|
52
|
+
flow: Id.optional(),
|
|
53
|
+
gap: external_exports.string().optional()
|
|
54
|
+
});
|
|
55
|
+
var DesignScreen = external_exports.strictObject({
|
|
56
|
+
figmaId: text(),
|
|
57
|
+
name: text(),
|
|
58
|
+
/** The UI flow (or page) it extends, when there is one. */
|
|
59
|
+
flow: Id.optional(),
|
|
60
|
+
fields: external_exports.array(DesignField).default([]),
|
|
61
|
+
actions: external_exports.array(DesignAction).default([])
|
|
62
|
+
});
|
|
63
|
+
var FeaturePlacement = external_exports.strictObject({
|
|
64
|
+
schemaVersion: V,
|
|
65
|
+
change: Id,
|
|
66
|
+
/** What the stage started from. */
|
|
67
|
+
entry: external_exports.enum(["brief", "stories", "figma"]),
|
|
68
|
+
/** What the feature is, in two or three plain sentences. */
|
|
69
|
+
summary: text(),
|
|
70
|
+
/** Existing features (Capability records) it touches. */
|
|
71
|
+
features: external_exports.array(external_exports.strictObject({ id: Id, why: text() })).default([]),
|
|
72
|
+
/** Existing flows (repo specs) it touches. */
|
|
73
|
+
flows: external_exports.array(external_exports.strictObject({
|
|
74
|
+
id: Id,
|
|
75
|
+
why: text(),
|
|
76
|
+
/** changed: the flow's steps change; read: it only reads what the flow gives. */
|
|
77
|
+
how: external_exports.enum(["changed", "read"]).default("changed")
|
|
78
|
+
})).default([]),
|
|
79
|
+
/** Flows that don't exist yet. */
|
|
80
|
+
newFlows: external_exports.array(external_exports.strictObject({ name: text(), repo: Id, why: text() })).default([]),
|
|
81
|
+
gaps: external_exports.array(external_exports.strictObject({
|
|
82
|
+
what: text(),
|
|
83
|
+
why: text(),
|
|
84
|
+
/** The design element or flow it comes from. */
|
|
85
|
+
from: external_exports.string().optional()
|
|
86
|
+
})).default([]),
|
|
87
|
+
/** Other open changes that touch the same flows or systems; Atticus fills these. */
|
|
88
|
+
conflicts: external_exports.array(external_exports.strictObject({
|
|
89
|
+
change: Id,
|
|
90
|
+
flows: external_exports.array(Id).default([]),
|
|
91
|
+
systems: external_exports.array(Id).default([]),
|
|
92
|
+
why: text()
|
|
93
|
+
})).default([]),
|
|
94
|
+
/** The design's screens, read from the export and mapped (Figma entry only). */
|
|
95
|
+
design: external_exports.strictObject({
|
|
96
|
+
file: text(),
|
|
97
|
+
screens: external_exports.array(DesignScreen).default([]),
|
|
98
|
+
/** Elements the reader found that aren't data or actions (a static title), with why. */
|
|
99
|
+
ignored: external_exports.array(external_exports.strictObject({ figmaId: text(), why: text() })).default([])
|
|
100
|
+
}).optional(),
|
|
101
|
+
/** Questions for a person; Atticus writes them to questions/. */
|
|
102
|
+
questions: external_exports.array(QuestionDraft).default([])
|
|
103
|
+
});
|
|
104
|
+
var DeltaFields = external_exports.strictObject({
|
|
105
|
+
sends: external_exports.array(text()).optional(),
|
|
106
|
+
returns: external_exports.array(text()).optional(),
|
|
107
|
+
reads: external_exports.array(text()).optional(),
|
|
108
|
+
checks: external_exports.array(text()).optional(),
|
|
109
|
+
from: external_exports.array(text()).optional(),
|
|
110
|
+
to: external_exports.array(text()).optional(),
|
|
111
|
+
/**
|
|
112
|
+
* A write's sent fields that are stored as, or match rows by, a column of another name, as
|
|
113
|
+
* the delta says it (ADR 0111 addendum, R3): `{ id: chat_id }` for a path parameter id that
|
|
114
|
+
* is the chat_id column. Optional and additive: the flow delta stays at version 2.
|
|
115
|
+
*/
|
|
116
|
+
as: external_exports.record(external_exports.string(), text()).optional(),
|
|
117
|
+
/**
|
|
118
|
+
* A field the step works out from columns, and how (W3b): `{ edited: "edited_at is not null" }`.
|
|
119
|
+
* The expression names columns a step reads or writes, or of their tables; checked as a fact.
|
|
120
|
+
* Optional and additive: the flow delta stays at version 2.
|
|
121
|
+
*/
|
|
122
|
+
derived: external_exports.record(external_exports.string(), text()).optional(),
|
|
123
|
+
/**
|
|
124
|
+
* An entry step: the request fields it requires once the change is in (ADR 0125). A field
|
|
125
|
+
* neither today's entry nor the catalog has, or one the catalog has as optional, breaks who
|
|
126
|
+
* calls it. Optional and additive: the flow delta stays at version 2.
|
|
127
|
+
*/
|
|
128
|
+
required: external_exports.array(text()).optional()
|
|
129
|
+
});
|
|
130
|
+
function parseAt(at) {
|
|
131
|
+
const t = at.trim().replace(/\\/g, "/");
|
|
132
|
+
const m = /^(.+?)(?::(\d+)|:([A-Za-z_$][\w$.#]*)(?:\(\))?)?$/.exec(t);
|
|
133
|
+
if (!m)
|
|
134
|
+
return void 0;
|
|
135
|
+
const path = m[1].replace(/^\.\//, "");
|
|
136
|
+
if (!path || path.startsWith("/") || /^[A-Za-z]:/.test(path) || path.split("/").includes(".."))
|
|
137
|
+
return void 0;
|
|
138
|
+
return {
|
|
139
|
+
path,
|
|
140
|
+
...m[2] ? { line: Number(m[2]) } : {},
|
|
141
|
+
...m[3] ? { function: m[3] } : {}
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
var usesOf = (s) => s.uses === void 0 ? [] : Array.isArray(s.uses) ? s.uses : [s.uses];
|
|
145
|
+
function parseNewFile(path) {
|
|
146
|
+
const p = parseAt(path);
|
|
147
|
+
return p && p.line === void 0 && p.function === void 0 ? p.path : void 0;
|
|
148
|
+
}
|
|
149
|
+
var fieldNames = (f) => f ? ["sends", "returns", "reads", "checks", "from", "to"].flatMap((k) => f[k] ?? []) : [];
|
|
150
|
+
var ON_DELETE = ["set-null", "cascade", "restrict", "no-action"];
|
|
151
|
+
var StoreKey = external_exports.strictObject({
|
|
152
|
+
references: external_exports.string().trim().regex(/^[^.\s]+(\.[^.\s]+){2,}$/, "write the column it references as <db>.<table>.<column>"),
|
|
153
|
+
onDelete: external_exports.enum(ON_DELETE)
|
|
154
|
+
});
|
|
155
|
+
var DeltaStep = external_exports.strictObject({
|
|
156
|
+
op: external_exports.enum(["add", "change", "remove"]),
|
|
157
|
+
/** change and remove: the step's position in today's flow, from 1. */
|
|
158
|
+
step: external_exports.number().int().positive().optional(),
|
|
159
|
+
/** add: the position it goes after (0: first). */
|
|
160
|
+
after: external_exports.number().int().min(0).optional(),
|
|
161
|
+
/**
|
|
162
|
+
* add: where the new step's code goes into code the repo has (ADR 0124 addendum B-places),
|
|
163
|
+
* `path:line` of the line it goes after: that code changes. B-place: only an edit there; code
|
|
164
|
+
* the step only calls is `uses`, a file the change creates is `new`, and the check refuses a
|
|
165
|
+
* place with no line (`path:function` and the path alone read as before, for older answers).
|
|
166
|
+
* Checked against the repo's checkout and the catalog; the step's and its task's citation.
|
|
167
|
+
* Left out, a step of a modify flow is placed after the step before it and says so.
|
|
168
|
+
* Optional and additive: version 2 stays.
|
|
169
|
+
*/
|
|
170
|
+
at: external_exports.string().trim().min(1).optional(),
|
|
171
|
+
/**
|
|
172
|
+
* add (B-place): the new file the step's code goes in, a path the change creates, in the
|
|
173
|
+
* folder of its nearest kin (the check asks that the folder exists). Steps naming the same
|
|
174
|
+
* file are one task. Optional and additive: version 2 stays.
|
|
175
|
+
*/
|
|
176
|
+
new: external_exports.string().trim().min(1).optional(),
|
|
177
|
+
/**
|
|
178
|
+
* B-place: existing code the step calls or reuses, `path:line`, one or several. It doesn't
|
|
179
|
+
* change: a task names it as code it calls, never as a file to touch. A step whose `uses`
|
|
180
|
+
* line already does what the step does (an existing flow's step there, the same write, read
|
|
181
|
+
* or call) is already done. Optional and additive: version 2 stays.
|
|
182
|
+
*/
|
|
183
|
+
uses: external_exports.union([external_exports.string().trim().min(1), external_exports.array(external_exports.string().trim().min(1)).min(1)]).optional(),
|
|
184
|
+
kind: external_exports.enum(FLOW_STEP_KINDS).optional(),
|
|
185
|
+
/** What the step does once the change is in, in one plain sentence. */
|
|
186
|
+
what: external_exports.string().optional(),
|
|
187
|
+
/** call-out and publish: where it goes. `new` when the component or entry doesn't exist yet. */
|
|
188
|
+
to: external_exports.strictObject({ component: Id, entry: text(), new: external_exports.boolean().default(false) }).optional(),
|
|
189
|
+
/** read, lookup and write: the table and columns. `new` for a table this change adds. */
|
|
190
|
+
store: external_exports.strictObject({
|
|
191
|
+
table: Id,
|
|
192
|
+
columns: external_exports.array(text()).default([]),
|
|
193
|
+
new: external_exports.boolean().default(false),
|
|
194
|
+
/** The database type of each column this change adds, e.g. { fraud_verdict: varchar(20) }. */
|
|
195
|
+
types: external_exports.record(external_exports.string(), text()).optional(),
|
|
196
|
+
/** The classification of each column this change adds, from the org pack's levels. */
|
|
197
|
+
classification: external_exports.record(external_exports.string(), text()).optional(),
|
|
198
|
+
/** The migration file that makes the change, e.g. V4__add_fraud_verdict.sql. */
|
|
199
|
+
migration: external_exports.string().optional(),
|
|
200
|
+
/** A new table: how long its rows are kept. */
|
|
201
|
+
retention: external_exports.string().optional(),
|
|
202
|
+
/**
|
|
203
|
+
* The foreign keys of the columns this change adds (ADR 0111 addendum, S4): each column to
|
|
204
|
+
* the `<db>.<table>.<column>` it references, and what a delete of that row does. Optional
|
|
205
|
+
* and additive, on the table's one definition: the flow delta stays at version 2.
|
|
206
|
+
*/
|
|
207
|
+
keys: external_exports.record(external_exports.string(), StoreKey).optional(),
|
|
208
|
+
/**
|
|
209
|
+
* The components that read or write the table, from the map (ADR 0124 addendum B-arch):
|
|
210
|
+
* given when the step's change to the table breaks them (a column the table has gets
|
|
211
|
+
* another type, or the step is marked breaking). Optional and additive: version 2 stays.
|
|
212
|
+
*/
|
|
213
|
+
consumers: external_exports.array(Id).optional()
|
|
214
|
+
}).optional(),
|
|
215
|
+
fields: DeltaFields.optional(),
|
|
216
|
+
/**
|
|
217
|
+
* The drafter says the step's change breaks who uses it today, where no field is dropped
|
|
218
|
+
* (ADR 0124 addendum B-arch): a field whose meaning changes (a field now required is said
|
|
219
|
+
* under the entry step's `fields.required`, ADR 0125). On a step
|
|
220
|
+
* that stores into a table it is the table's change; on any other, the flow's entry's.
|
|
221
|
+
*/
|
|
222
|
+
breaking: external_exports.boolean().optional(),
|
|
223
|
+
/** loop and retry: the steps it repeats, by their numbers in the target flow (ADR 0095). */
|
|
224
|
+
repeats: external_exports.strictObject({ from: external_exports.number().int().positive(), to: external_exports.number().int().positive() }).optional(),
|
|
225
|
+
why: external_exports.string().optional()
|
|
226
|
+
});
|
|
227
|
+
var FLOW_DELTA_SCHEMA_VERSION = 2;
|
|
228
|
+
var FlowDelta = external_exports.strictObject({
|
|
229
|
+
schemaVersion: external_exports.union([external_exports.literal(1), external_exports.literal(FLOW_DELTA_SCHEMA_VERSION)]),
|
|
230
|
+
/** The flow's id: an existing flow in specs/<repo>/, or the new flow's id (<component>.<name>). */
|
|
231
|
+
flow: Id,
|
|
232
|
+
repo: Id,
|
|
233
|
+
change: external_exports.enum(["modify", "new", "remove"]),
|
|
234
|
+
/** new: what a person calls the flow. */
|
|
235
|
+
name: external_exports.string().optional(),
|
|
236
|
+
/** new: what starts it. */
|
|
237
|
+
trigger: external_exports.strictObject({ kind: external_exports.enum(FLOW_TRIGGER_KINDS), what: text(), entry: external_exports.string().optional() }).optional(),
|
|
238
|
+
why: text(),
|
|
239
|
+
/**
|
|
240
|
+
* The components (or systems) that call the flow's entry today, from the map (ADR 0124
|
|
241
|
+
* addendum B-arch): given when the change breaks what the entry reads or returns, or removes
|
|
242
|
+
* the flow. Optional and additive: the flow delta stays at version 2.
|
|
243
|
+
*/
|
|
244
|
+
consumers: external_exports.array(Id).optional(),
|
|
245
|
+
/**
|
|
246
|
+
* A new flow of a component the catalog doesn't have yet: where that component runs, as the
|
|
247
|
+
* architecture places it (ADR 0132). What a knowledge source's scope (sources.yaml appliesTo)
|
|
248
|
+
* is matched against before the component exists. Optional and additive: version 2 stays.
|
|
249
|
+
*/
|
|
250
|
+
runsOn: external_exports.strictObject({
|
|
251
|
+
component: Id,
|
|
252
|
+
system: Id.optional(),
|
|
253
|
+
platform: external_exports.string().trim().min(1).optional(),
|
|
254
|
+
cloud: external_exports.string().trim().min(1).optional(),
|
|
255
|
+
framework: external_exports.string().trim().min(1).optional()
|
|
256
|
+
}).optional(),
|
|
257
|
+
steps: external_exports.array(DeltaStep).default([]),
|
|
258
|
+
/**
|
|
259
|
+
* Written by Atticus, never the assistant (ADR 0111): the sha-256 of today's flow's steps (each
|
|
260
|
+
* step's kind, what, to and store, in order) when this delta was written. A spec drafted again
|
|
261
|
+
* since then gives another hash, so the merge says the step numbers may be stale.
|
|
262
|
+
*/
|
|
263
|
+
base: external_exports.strictObject({ steps: external_exports.string().regex(/^[0-9a-f]{64}$/) }).optional()
|
|
264
|
+
});
|
|
265
|
+
var DeployStep = external_exports.strictObject({
|
|
266
|
+
repo: Id,
|
|
267
|
+
migration: external_exports.string().trim().min(1).optional(),
|
|
268
|
+
/** Why it sits where it does, in one plain sentence. */
|
|
269
|
+
why: external_exports.string().optional()
|
|
270
|
+
});
|
|
271
|
+
var LoopFinding = external_exports.strictObject({
|
|
272
|
+
/** sha-256 (first 12 hex) of rule, target and evidence. */
|
|
273
|
+
fingerprint: external_exports.string().regex(/^[0-9a-f]{12}$/),
|
|
274
|
+
rule: text(),
|
|
275
|
+
target: text(),
|
|
276
|
+
/** path:line, metarepo-relative, when there is one. */
|
|
277
|
+
evidence: external_exports.string().optional(),
|
|
278
|
+
message: text(),
|
|
279
|
+
blocking: external_exports.boolean(),
|
|
280
|
+
/** stage: the stage's own checks; critic: a critic round's finding. */
|
|
281
|
+
source: external_exports.enum(["stage", "critic"]),
|
|
282
|
+
/** The iterations it was found in. */
|
|
283
|
+
seenIn: external_exports.array(external_exports.number().int().positive()),
|
|
284
|
+
/** The question it became once it came back unchanged twice or flipped. */
|
|
285
|
+
question: external_exports.string().optional(),
|
|
286
|
+
/**
|
|
287
|
+
* decision: a person can decide it (the product, the data, the design), so a repeat or a
|
|
288
|
+
* flip becomes a question; drafting: the shape of what the assistant wrote, so a repeat or
|
|
289
|
+
* a flip stops the loop with a message instead (see finding-kind.ts). Left out: decision.
|
|
290
|
+
*/
|
|
291
|
+
kind: external_exports.enum(["decision", "drafting"]).optional(),
|
|
292
|
+
/** The iteration a drafting finding stopped the loop in; earlier sightings don't count again. */
|
|
293
|
+
stoppedAt: external_exports.number().int().positive().optional(),
|
|
294
|
+
/**
|
|
295
|
+
* What a judge refused, so a person's answer to the finding's question is stored as their
|
|
296
|
+
* verdict on exactly that (ADR 0117 addendum, V1): each field and the criterion it was claimed for.
|
|
297
|
+
*/
|
|
298
|
+
judged: external_exports.array(external_exports.strictObject({ field: text(), criterion: text(), task: text() })).optional(),
|
|
299
|
+
/**
|
|
300
|
+
* A critic's risk finding (ADR 0115 addendum, 2026-10-25): it never blocks, and goes back to
|
|
301
|
+
* the drafter with its fix for one more draft.
|
|
302
|
+
*/
|
|
303
|
+
risk: external_exports.boolean().optional()
|
|
304
|
+
});
|
|
305
|
+
var StageLoop = external_exports.strictObject({
|
|
306
|
+
schemaVersion: V,
|
|
307
|
+
change: Id,
|
|
308
|
+
stage: Stage,
|
|
309
|
+
/** Drafts so far. */
|
|
310
|
+
iteration: external_exports.number().int().min(0),
|
|
311
|
+
/** stopped: a drafting finding came back and the loop stopped for a person to fix a file. */
|
|
312
|
+
state: external_exports.enum(["drafting", "waiting", "questions", "stopped", "done"]),
|
|
313
|
+
updatedAt: external_exports.string(),
|
|
314
|
+
/** The hand-off run being waited for. */
|
|
315
|
+
run: external_exports.string().optional(),
|
|
316
|
+
/** Every finding seen in any iteration, current or not, so a flip is seen. */
|
|
317
|
+
findings: external_exports.array(LoopFinding).default([]),
|
|
318
|
+
/** Questions this stage raised, by id. */
|
|
319
|
+
questions: external_exports.array(external_exports.string()).default([]),
|
|
320
|
+
/** Answered questions whose answers a draft has read. */
|
|
321
|
+
read: external_exports.array(external_exports.string()).default([]),
|
|
322
|
+
/**
|
|
323
|
+
* Questions held back once and handed to the drafter with an answer on file that may decide
|
|
324
|
+
* them, by the id they would have had (ADR 0117 addendum, 2026-10-24). One asked again after
|
|
325
|
+
* that goes to a person. Also the critic's risks handed back for their one draft, as
|
|
326
|
+
* `risk:<rule>:<file>` (ADR 0115 addendum, 2026-10-25).
|
|
327
|
+
*/
|
|
328
|
+
handedBack: external_exports.array(external_exports.string()).optional(),
|
|
329
|
+
/**
|
|
330
|
+
* An answer that didn't read, copied into the change folder when the loop stopped on it (S5),
|
|
331
|
+
* change-folder relative: the file the stop tells a person to fix, read back on the next run.
|
|
332
|
+
*/
|
|
333
|
+
failedAnswer: external_exports.string().optional(),
|
|
334
|
+
/** A read-again of an answer that isn't YAML, handed off and waited for (S5): no draft spent. */
|
|
335
|
+
readAgain: external_exports.string().optional(),
|
|
336
|
+
/**
|
|
337
|
+
* The stage's source, change-folder relative (ADR 0087 addendum, 2026-10-25): the file or folder
|
|
338
|
+
* a person edits (feature.yaml, target-flows/, stage/stories-answer.yaml). Every other file
|
|
339
|
+
* under `written` is rendered from it, so a fix to one of those is refused with a pointer here.
|
|
340
|
+
*/
|
|
341
|
+
source: external_exports.string().optional(),
|
|
342
|
+
/**
|
|
343
|
+
* The questions due that the last stop didn't ask, over the change policy's questionsPerStop
|
|
344
|
+
* (ADR 0117 addendum, 2026-10-25): their words and evidence, so a person sees what comes next
|
|
345
|
+
* (`atticus questions list`). They are asked once the open ones are answered.
|
|
346
|
+
*/
|
|
347
|
+
waiting: external_exports.array(external_exports.strictObject({ question: text(), evidence: external_exports.array(external_exports.string()) })).optional(),
|
|
348
|
+
/** The critic rounds the loop ran, newest last. */
|
|
349
|
+
critic: external_exports.array(external_exports.strictObject({ gate: text(), round: external_exports.number().int().positive() })).default([]),
|
|
350
|
+
/**
|
|
351
|
+
* What Atticus last wrote, by change-folder path: the sha-256 of each file (ADR 0087 addendum,
|
|
352
|
+
* 2026-10-24). A file that differs, or one under the stage's source that isn't listed, is a
|
|
353
|
+
* person's edit: their version is the stage's answer, and it is never drafted over.
|
|
354
|
+
*/
|
|
355
|
+
written: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
356
|
+
/**
|
|
357
|
+
* The drafts that were a person's: the iteration, when, the files they edited and where
|
|
358
|
+
* Atticus kept a copy of them before writing anything. Who wrote each draft, for provenance.
|
|
359
|
+
*/
|
|
360
|
+
byPerson: external_exports.array(external_exports.strictObject({
|
|
361
|
+
iteration: external_exports.number().int().positive(),
|
|
362
|
+
at: external_exports.string(),
|
|
363
|
+
files: external_exports.array(external_exports.string()),
|
|
364
|
+
kept: external_exports.string(),
|
|
365
|
+
/** checked: their version was checked as the stage's draft; redrafted: the assistant drafted again from it (--force, or with answers). */
|
|
366
|
+
how: external_exports.enum(["checked", "redrafted"])
|
|
367
|
+
})).optional(),
|
|
368
|
+
/**
|
|
369
|
+
* A draft whose critic round is waiting for its AI lenses, handed off one at a time (ADR
|
|
370
|
+
* 0115): the round, the draft's run and files, and what the stage's checks and the critic's
|
|
371
|
+
* rules found in it, which join the lenses' findings once every lens is in.
|
|
372
|
+
*/
|
|
373
|
+
review: external_exports.strictObject({
|
|
374
|
+
gate: text(),
|
|
375
|
+
round: external_exports.number().int().positive(),
|
|
376
|
+
draft: external_exports.string().optional(),
|
|
377
|
+
/** person: the draft under review is a person's edit, so a blocking finding stops for them. */
|
|
378
|
+
by: external_exports.enum(["person"]).optional(),
|
|
379
|
+
files: external_exports.array(external_exports.string()).default([]),
|
|
380
|
+
/**
|
|
381
|
+
* The files the draft's write changed on disk (B-place): a run that resumes the review says
|
|
382
|
+
* what the draft wrote, not "nothing changed". Optional and additive.
|
|
383
|
+
*/
|
|
384
|
+
changed: external_exports.array(external_exports.string()).optional(),
|
|
385
|
+
/**
|
|
386
|
+
* The questions the draft raised (ADR 0117 addendum, 2026-10-24): the stage's file doesn't
|
|
387
|
+
* keep them, so they wait here with the draft until its lenses are in, and are raised then.
|
|
388
|
+
*/
|
|
389
|
+
questions: external_exports.array(QuestionDraft).optional(),
|
|
390
|
+
issues: external_exports.array(external_exports.strictObject({
|
|
391
|
+
rule: text(),
|
|
392
|
+
target: text(),
|
|
393
|
+
evidence: external_exports.string().optional(),
|
|
394
|
+
message: text(),
|
|
395
|
+
blocking: external_exports.boolean(),
|
|
396
|
+
repo: external_exports.string().optional(),
|
|
397
|
+
kind: external_exports.enum(["decision", "drafting"]).optional(),
|
|
398
|
+
// The rest of a stage's issue (loop.ts StageIssue), kept for when the lenses are in:
|
|
399
|
+
// a judged doubt goes back once, then is asked with its options, citing its line.
|
|
400
|
+
options: external_exports.array(external_exports.strictObject({ label: text(), means: text(), changes: text() })).optional(),
|
|
401
|
+
ask: external_exports.string().optional(),
|
|
402
|
+
holdOnce: external_exports.boolean().optional(),
|
|
403
|
+
locateText: external_exports.string().optional(),
|
|
404
|
+
judged: external_exports.array(external_exports.strictObject({ field: text(), criterion: text(), task: text() })).optional(),
|
|
405
|
+
risk: external_exports.boolean().optional(),
|
|
406
|
+
// An assistant's proposal waiting on a person (ADR 0115 addendum, 2026-10-25).
|
|
407
|
+
proposed: external_exports.strictObject({
|
|
408
|
+
finding: text(),
|
|
409
|
+
gate: text(),
|
|
410
|
+
by: text(),
|
|
411
|
+
reason: external_exports.string().optional()
|
|
412
|
+
}).optional()
|
|
413
|
+
})).default([])
|
|
414
|
+
}).optional()
|
|
415
|
+
});
|
|
416
|
+
|
|
417
|
+
// packages/planner/dist/stages/waiting.js
|
|
418
|
+
var import_yaml = __toESM(require_dist(), 1);
|
|
419
|
+
import { readdir, readFile } from "node:fs/promises";
|
|
420
|
+
import { join } from "node:path";
|
|
421
|
+
function rerunOf(stage, change) {
|
|
422
|
+
return stage === "stories" ? `atticus plan stories ${change}` : `atticus change ${stage} ${change}`;
|
|
423
|
+
}
|
|
424
|
+
async function waitingQuestions(root) {
|
|
425
|
+
const out = [];
|
|
426
|
+
const changes = (await readdir(changesDirOf(root), { withFileTypes: true }).catch(() => [])).filter((d) => d.isDirectory() && d.name !== "archive").map((d) => d.name).sort();
|
|
427
|
+
for (const change of changes) {
|
|
428
|
+
const files = (await readdir(join(changesDirOf(root), change, "stage")).catch(() => [])).filter((f) => f.endsWith(".yaml")).sort();
|
|
429
|
+
for (const f of files) {
|
|
430
|
+
let loop;
|
|
431
|
+
try {
|
|
432
|
+
const r = StageLoop.safeParse((0, import_yaml.parse)(await readFile(join(changesDirOf(root), change, "stage", f), "utf8")));
|
|
433
|
+
if (!r.success)
|
|
434
|
+
continue;
|
|
435
|
+
loop = r.data;
|
|
436
|
+
} catch {
|
|
437
|
+
continue;
|
|
438
|
+
}
|
|
439
|
+
for (const w of loop.waiting ?? [])
|
|
440
|
+
out.push({ change, stage: loop.stage, ...w, rerun: rerunOf(loop.stage, change) });
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
return out;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
export {
|
|
447
|
+
STAGE_SCHEMA_VERSION,
|
|
448
|
+
STAGES,
|
|
449
|
+
Stage,
|
|
450
|
+
STAGE_PHASE,
|
|
451
|
+
Backing,
|
|
452
|
+
DesignField,
|
|
453
|
+
DesignAction,
|
|
454
|
+
DesignScreen,
|
|
455
|
+
FeaturePlacement,
|
|
456
|
+
DeltaFields,
|
|
457
|
+
parseAt,
|
|
458
|
+
usesOf,
|
|
459
|
+
parseNewFile,
|
|
460
|
+
fieldNames,
|
|
461
|
+
ON_DELETE,
|
|
462
|
+
StoreKey,
|
|
463
|
+
DeltaStep,
|
|
464
|
+
FLOW_DELTA_SCHEMA_VERSION,
|
|
465
|
+
FlowDelta,
|
|
466
|
+
DeployStep,
|
|
467
|
+
LoopFinding,
|
|
468
|
+
StageLoop,
|
|
469
|
+
rerunOf,
|
|
470
|
+
waitingQuestions
|
|
471
|
+
};
|