@productbrain/cli 0.1.0-beta.109 → 0.1.0-beta.1093
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/dist/__tests__/audit.test.js +5 -0
- package/dist/__tests__/audit.test.js.map +1 -1
- package/dist/__tests__/config.test.js +272 -2
- package/dist/__tests__/config.test.js.map +1 -1
- package/dist/__tests__/handshake-augment.test.d.ts +2 -0
- package/dist/__tests__/handshake-augment.test.d.ts.map +1 -0
- package/dist/__tests__/handshake-augment.test.js +423 -0
- package/dist/__tests__/handshake-augment.test.js.map +1 -0
- package/dist/__tests__/handshake-dormancy.test.d.ts +2 -0
- package/dist/__tests__/handshake-dormancy.test.d.ts.map +1 -0
- package/dist/__tests__/handshake-dormancy.test.js +207 -0
- package/dist/__tests__/handshake-dormancy.test.js.map +1 -0
- package/dist/__tests__/handshake-formatter.test.d.ts +2 -0
- package/dist/__tests__/handshake-formatter.test.d.ts.map +1 -0
- package/dist/__tests__/handshake-formatter.test.js +67 -0
- package/dist/__tests__/handshake-formatter.test.js.map +1 -0
- package/dist/__tests__/handshake-preview.test.js +65 -3
- package/dist/__tests__/handshake-preview.test.js.map +1 -1
- package/dist/__tests__/handshake.e2e.test.js +998 -3
- package/dist/__tests__/handshake.e2e.test.js.map +1 -1
- package/dist/__tests__/handshake.test.js +4 -4
- package/dist/__tests__/handshake.test.js.map +1 -1
- package/dist/__tests__/notice-marker.test.d.ts +2 -0
- package/dist/__tests__/notice-marker.test.d.ts.map +1 -0
- package/dist/__tests__/notice-marker.test.js +41 -0
- package/dist/__tests__/notice-marker.test.js.map +1 -0
- package/dist/__tests__/onboarding-path-b.test.js +4 -4
- package/dist/__tests__/onboarding-path-b.test.js.map +1 -1
- package/dist/__tests__/orient.test.js +52 -2
- package/dist/__tests__/orient.test.js.map +1 -1
- package/dist/__tests__/perimeter.test.js +23 -1
- package/dist/__tests__/perimeter.test.js.map +1 -1
- package/dist/__tests__/preview-key-refresh.test.d.ts +2 -0
- package/dist/__tests__/preview-key-refresh.test.d.ts.map +1 -0
- package/dist/__tests__/preview-key-refresh.test.js +126 -0
- package/dist/__tests__/preview-key-refresh.test.js.map +1 -0
- package/dist/__tests__/profiles.test.js +106 -2
- package/dist/__tests__/profiles.test.js.map +1 -1
- package/dist/__tests__/proof-run.test.d.ts +2 -0
- package/dist/__tests__/proof-run.test.d.ts.map +1 -0
- package/dist/__tests__/proof-run.test.js +255 -0
- package/dist/__tests__/proof-run.test.js.map +1 -0
- package/dist/__tests__/session-reset.test.d.ts +2 -0
- package/dist/__tests__/session-reset.test.d.ts.map +1 -0
- package/dist/__tests__/session-reset.test.js +122 -0
- package/dist/__tests__/session-reset.test.js.map +1 -0
- package/dist/__tests__/session-resume-backstop.test.d.ts +2 -0
- package/dist/__tests__/session-resume-backstop.test.d.ts.map +1 -0
- package/dist/__tests__/session-resume-backstop.test.js +97 -0
- package/dist/__tests__/session-resume-backstop.test.js.map +1 -0
- package/dist/__tests__/session-start-key-refresh.test.d.ts +2 -0
- package/dist/__tests__/session-start-key-refresh.test.d.ts.map +1 -0
- package/dist/__tests__/session-start-key-refresh.test.js +178 -0
- package/dist/__tests__/session-start-key-refresh.test.js.map +1 -0
- package/dist/__tests__/session-state-machine.test.js +45 -1
- package/dist/__tests__/session-state-machine.test.js.map +1 -1
- package/dist/__tests__/session-switch.test.d.ts +2 -0
- package/dist/__tests__/session-switch.test.d.ts.map +1 -0
- package/dist/__tests__/session-switch.test.js +130 -0
- package/dist/__tests__/session-switch.test.js.map +1 -0
- package/dist/__tests__/update-check.test.js +160 -1
- package/dist/__tests__/update-check.test.js.map +1 -1
- package/dist/__tests__/upgrade-runner.test.js +12 -0
- package/dist/__tests__/upgrade-runner.test.js.map +1 -1
- package/dist/__tests__/upgrade.test.d.ts +2 -0
- package/dist/__tests__/upgrade.test.d.ts.map +1 -0
- package/dist/__tests__/upgrade.test.js +56 -0
- package/dist/__tests__/upgrade.test.js.map +1 -0
- package/dist/__tests__/vocabulary-leak.test.d.ts +27 -13
- package/dist/__tests__/vocabulary-leak.test.d.ts.map +1 -1
- package/dist/__tests__/vocabulary-leak.test.js +169 -14
- package/dist/__tests__/vocabulary-leak.test.js.map +1 -1
- package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts +15 -0
- package/dist/commands/__tests__/setup-detect-surfaces.test.d.ts.map +1 -0
- package/dist/commands/__tests__/setup-detect-surfaces.test.js +149 -0
- package/dist/commands/__tests__/setup-detect-surfaces.test.js.map +1 -0
- package/dist/commands/admin/seedRegistryEntries.generated.js +2 -2
- package/dist/commands/admin/seedRegistryEntries.generated.js.map +1 -1
- package/dist/commands/admin/seedRegistryEntries.test.js +1 -1
- package/dist/commands/admin/seedRegistryEntries.test.js.map +1 -1
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +30 -3
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/authority-domains.d.ts.map +1 -1
- package/dist/commands/authority-domains.js +2 -1
- package/dist/commands/authority-domains.js.map +1 -1
- package/dist/commands/capture.d.ts +2 -0
- package/dist/commands/capture.d.ts.map +1 -1
- package/dist/commands/capture.js +5 -1
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/connect-config.test.d.ts +2 -0
- package/dist/commands/connect-config.test.d.ts.map +1 -0
- package/dist/commands/connect-config.test.js +44 -0
- package/dist/commands/connect-config.test.js.map +1 -0
- package/dist/commands/connect-context.d.ts +45 -0
- package/dist/commands/connect-context.d.ts.map +1 -0
- package/dist/commands/connect-context.js +64 -0
- package/dist/commands/connect-context.js.map +1 -0
- package/dist/commands/connect-context.test.d.ts +2 -0
- package/dist/commands/connect-context.test.d.ts.map +1 -0
- package/dist/commands/connect-context.test.js +110 -0
- package/dist/commands/connect-context.test.js.map +1 -0
- package/dist/commands/connect-screens.d.ts +5 -6
- package/dist/commands/connect-screens.d.ts.map +1 -1
- package/dist/commands/connect-screens.js +28 -35
- package/dist/commands/connect-screens.js.map +1 -1
- package/dist/commands/connect.d.ts +16 -0
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +21 -20
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/doctor.js +2 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/doctor.test.js +19 -0
- package/dist/commands/doctor.test.js.map +1 -1
- package/dist/commands/handshake.d.ts +59 -4
- package/dist/commands/handshake.d.ts.map +1 -1
- package/dist/commands/handshake.js +392 -97
- package/dist/commands/handshake.js.map +1 -1
- package/dist/commands/method.d.ts.map +1 -1
- package/dist/commands/method.js +2 -1
- package/dist/commands/method.js.map +1 -1
- package/dist/commands/orient.d.ts +48 -0
- package/dist/commands/orient.d.ts.map +1 -1
- package/dist/commands/orient.js +25 -5
- package/dist/commands/orient.js.map +1 -1
- package/dist/commands/profile.d.ts +1 -14
- package/dist/commands/profile.d.ts.map +1 -1
- package/dist/commands/profile.js +89 -72
- package/dist/commands/profile.js.map +1 -1
- package/dist/commands/proof-run.d.ts +51 -0
- package/dist/commands/proof-run.d.ts.map +1 -0
- package/dist/commands/proof-run.js +209 -0
- package/dist/commands/proof-run.js.map +1 -0
- package/dist/commands/reject.d.ts.map +1 -1
- package/dist/commands/reject.js +2 -1
- package/dist/commands/reject.js.map +1 -1
- package/dist/commands/relate.d.ts.map +1 -1
- package/dist/commands/relate.js +4 -2
- package/dist/commands/relate.js.map +1 -1
- package/dist/commands/session.d.ts +26 -2
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +216 -31
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/setup-audit.d.ts +59 -0
- package/dist/commands/setup-audit.d.ts.map +1 -0
- package/dist/commands/setup-audit.js +250 -0
- package/dist/commands/setup-audit.js.map +1 -0
- package/dist/commands/setup-detect-surfaces.d.ts.map +1 -1
- package/dist/commands/setup-detect-surfaces.js +10 -1
- package/dist/commands/setup-detect-surfaces.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +2 -1
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +31 -10
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +2 -1
- package/dist/commands/verify.js.map +1 -1
- package/dist/commands/whoami.d.ts +12 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +70 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/commands/whoami.test.d.ts +2 -0
- package/dist/commands/whoami.test.d.ts.map +1 -0
- package/dist/commands/whoami.test.js +50 -0
- package/dist/commands/whoami.test.js.map +1 -0
- package/dist/formatters/__tests__/orient-provenance.test.d.ts +7 -0
- package/dist/formatters/__tests__/orient-provenance.test.d.ts.map +1 -0
- package/dist/formatters/__tests__/orient-provenance.test.js +454 -0
- package/dist/formatters/__tests__/orient-provenance.test.js.map +1 -0
- package/dist/formatters/audit.d.ts +6 -0
- package/dist/formatters/audit.d.ts.map +1 -1
- package/dist/formatters/audit.js.map +1 -1
- package/dist/formatters/entry.d.ts +21 -0
- package/dist/formatters/entry.d.ts.map +1 -1
- package/dist/formatters/entry.js +46 -5
- package/dist/formatters/entry.js.map +1 -1
- package/dist/formatters/handshake.d.ts +7 -3
- package/dist/formatters/handshake.d.ts.map +1 -1
- package/dist/formatters/handshake.js +26 -23
- package/dist/formatters/handshake.js.map +1 -1
- package/dist/formatters/orient.d.ts +54 -0
- package/dist/formatters/orient.d.ts.map +1 -1
- package/dist/formatters/orient.js +71 -2
- package/dist/formatters/orient.js.map +1 -1
- package/dist/generators/adapters.js +4 -4
- package/dist/generators/region-projections.d.ts +18 -0
- package/dist/generators/region-projections.d.ts.map +1 -0
- package/dist/generators/region-projections.js +49 -0
- package/dist/generators/region-projections.js.map +1 -0
- package/dist/generators/region-projections.test.d.ts +2 -0
- package/dist/generators/region-projections.test.d.ts.map +1 -0
- package/dist/generators/region-projections.test.js +63 -0
- package/dist/generators/region-projections.test.js.map +1 -0
- package/dist/generators/region.d.ts +24 -0
- package/dist/generators/region.d.ts.map +1 -0
- package/dist/generators/region.js +87 -0
- package/dist/generators/region.js.map +1 -0
- package/dist/generators/region.test.d.ts +2 -0
- package/dist/generators/region.test.d.ts.map +1 -0
- package/dist/generators/region.test.js +126 -0
- package/dist/generators/region.test.js.map +1 -0
- package/dist/index.js +111 -9
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +101 -4
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +225 -11
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/notice-marker.d.ts +3 -0
- package/dist/lib/notice-marker.d.ts.map +1 -0
- package/dist/lib/notice-marker.js +53 -0
- package/dist/lib/notice-marker.js.map +1 -0
- package/dist/lib/onboarding-path-b.d.ts.map +1 -1
- package/dist/lib/onboarding-path-b.js +0 -1
- package/dist/lib/onboarding-path-b.js.map +1 -1
- package/dist/lib/onboarding-shared.d.ts +0 -1
- package/dist/lib/onboarding-shared.d.ts.map +1 -1
- package/dist/lib/onboarding-shared.js +0 -16
- package/dist/lib/onboarding-shared.js.map +1 -1
- package/dist/lib/profiles.d.ts +3 -1
- package/dist/lib/profiles.d.ts.map +1 -1
- package/dist/lib/profiles.js +9 -6
- package/dist/lib/profiles.js.map +1 -1
- package/dist/lib/session.d.ts +10 -0
- package/dist/lib/session.d.ts.map +1 -1
- package/dist/lib/session.js +26 -1
- package/dist/lib/session.js.map +1 -1
- package/dist/lib/tokenConstants.d.ts +2 -0
- package/dist/lib/tokenConstants.d.ts.map +1 -1
- package/dist/lib/tokenConstants.js +2 -0
- package/dist/lib/tokenConstants.js.map +1 -1
- package/dist/lib/update-check.d.ts +26 -11
- package/dist/lib/update-check.d.ts.map +1 -1
- package/dist/lib/update-check.js +123 -73
- package/dist/lib/update-check.js.map +1 -1
- package/dist/lib/upgrade-runner.d.ts +2 -1
- package/dist/lib/upgrade-runner.d.ts.map +1 -1
- package/dist/lib/upgrade-runner.js +8 -7
- package/dist/lib/upgrade-runner.js.map +1 -1
- package/dist/setup/perimeter.d.ts +10 -0
- package/dist/setup/perimeter.d.ts.map +1 -1
- package/dist/setup/perimeter.js +21 -6
- package/dist/setup/perimeter.js.map +1 -1
- package/package.json +2 -1
- package/dist/__tests__/setup.test.d.ts +0 -2
- package/dist/__tests__/setup.test.d.ts.map +0 -1
- package/dist/__tests__/setup.test.js +0 -141
- package/dist/__tests__/setup.test.js.map +0 -1
- package/dist/generators/__tests__/surface-profiles.test.d.ts +0 -2
- package/dist/generators/__tests__/surface-profiles.test.d.ts.map +0 -1
- package/dist/generators/__tests__/surface-profiles.test.js +0 -89
- package/dist/generators/__tests__/surface-profiles.test.js.map +0 -1
- package/dist/lib/onboarding-phases.d.ts +0 -9
- package/dist/lib/onboarding-phases.d.ts.map +0 -1
- package/dist/lib/onboarding-phases.js +0 -120
- package/dist/lib/onboarding-phases.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orient.js","sourceRoot":"","sources":["../../src/formatters/orient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orient.js","sourceRoot":"","sources":["../../src/formatters/orient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,kBAAkB,EAA0B,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AA0JpD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,CAAU;IACvC,IAAI,CAAC,KAAK,eAAe;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,CAAC,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,eAAe,CACtB,KAAqK,EACrK,GAAG,GAAG,CAAC;IAEP,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACnC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC;QAC/B,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC1C,iFAAiF;QACjF,iFAAiF;QACjF,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC;QAChC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnG,uFAAuF;QACvF,2EAA2E;QAC3E,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC/B,SAAS,GAAG,0BAA0B,CAAC;QACzC,CAAC;aAAM,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACvC,SAAS,GAAG,4BAA4B,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,8BAA8B,CAAC,OAA+B;IACrE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,4BAA4B;YAC5B,EAAE;YACF,kIAAkI;YAClI,8GAA8G;YAC9G,EAAE;SACH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,eAAe,KAAK,UAAU;QAAE,OAAO,EAAE,CAAC;IACtD,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO;YACL,2BAA2B;YAC3B,EAAE;YACF,qJAAqJ;YACrJ,2EAA2E;YAC3E,EAAE;SACH,CAAC;IACJ,CAAC;IACD,OAAO;QACL,4BAA4B;QAC5B,EAAE;QACF,kIAAkI;QAClI,8GAA8G;QAC9G,EAAE;KACH,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAoB;IAC9C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,KAAK,WAAW,CAAC;IAClJ,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC;IAC3E,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,IAAI,QAAQ,CAAC;IAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9C,MAAM,OAAO,GAAG,SAAS;QACvB,CAAC,CAAC,GAAG,KAAK,kEAAkE;QAC5E,CAAC,CAAC,GAAG,KAAK,4BAA4B,CAAC;IACzC,OAAO,CAAC,IAAI,QAAQ,KAAK,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,YAAY,CAAC,IAAgB,EAAE,QAA4B;IACzE,oFAAoF;IACpF,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;IACnD,MAAM,UAAU,GAAG,kBAAkB,CAAC,cAAc,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhD,iCAAiC;IACjC,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAClC,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,WAAW,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnH,CAAC;IACD,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,YAAY,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtH,CAAC;IACD,oFAAoF;IACpF,MAAM,SAAS,GAAG,gBAAgB,CAAC,kBAAkB,CAAC;IACtD,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,WAAW,UAAU,KAAK,SAAS,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,KAAK,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC;IACrE,IAAI,gBAAgB,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,oBAAoB,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,gBAAgB,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,kBAAkB,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,GAAG,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5D,2BAA2B;IAC3B,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAClD,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;YACxE,KAAK,CAAC,IAAI,CAAC,OAAO,OAAO,GAAG,SAAS,EAAE,CAAC,CAAC;YACzC,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBAC/C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,kBAAkB;IAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;aAC7B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;aACxC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,sBAAsB,IAAI,CAAC,OAAO,CAAC,UAAU,cAAc,CAAC,CAAC;QACpG,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACnG,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1F,KAAK,CAAC,IAAI,CAAC,uBAAuB,SAAS,CAAC,KAAK,GAAG,QAAQ,EAAE,CAAC,CAAC;YAChE,IAAI,SAAS,CAAC,YAAY;gBAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;YACrF,IAAI,SAAS,CAAC,cAAc;gBAAE,KAAK,CAAC,IAAI,CAAC,eAAe,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YACpF,IAAI,SAAS,CAAC,cAAc;gBAAE,KAAK,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC;YAClF,IAAI,SAAS,CAAC,WAAW;gBAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;YAClF,IAAI,OAAO,SAAS,CAAC,oBAAoB,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,oBAAoB,KAAK,QAAQ,EAAE,CAAC;gBAC7G,KAAK,CAAC,IAAI,CAAC,+BAA+B,SAAS,CAAC,oBAAoB,IAAI,CAAC,sBAAsB,SAAS,CAAC,oBAAoB,IAAI,CAAC,UAAU,CAAC,CAAC;YACpJ,CAAC;QACH,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,sFAAsF;IACtF,mFAAmF;IACnF,IAAI,IAAI,CAAC,WAAW,EAAE,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;QAClD,MAAM,aAAa,GACjB,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAChC,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAC/B,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QACtC,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACjF,CAAC;YACD,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACpF,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YACpF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YACtF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAC5E,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,gBAAgB;IAChB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;IAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACrG,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,mBAAmB;IACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC1C,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,OAAO,WAAW,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,wBAAwB;IACxB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,eAAe;IACf,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,eAAe,MAAM,CAAC,CAAC,iBAAiB,KAAK,CAAC,CAAC,cAAc,SAAS,CAAC,CAAC;QAC9F,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,qBAAqB;IACrB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,CAAC,UAAU;gBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,kBAAkB;IAClB,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;IAC5B,MAAM,UAAU,GACd,EAAE,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;QAC/B,EAAE,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;QAC/B,EAAE,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,IAAI,EAAE,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACpC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACjD,8EAA8E;gBAC9E,mFAAmF;gBACnF,2EAA2E;gBAC3E,8CAA8C;gBAC9C,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC/B,SAAS,GAAG,0BAA0B,CAAC;gBACzC,CAAC;qBAAM,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;oBACvC,SAAS,GAAG,4BAA4B,CAAC;gBAC3C,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACjD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC/B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC5C,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,gCAAgC;IAChC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3D,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;YACtD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACvC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,MAAM,UAAU,CAAC,CAAC;YACxD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACtD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;SAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,MAAM,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,aAAa,IAAI,CAAC,eAAe,CAAC,MAAM,YAAY,CAAC,CAAC;QAC1I,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,iBAAiB,CAAC,IAAgB,EAAE,QAA4B;IAC9E,oFAAoF;IACpF,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;IACnD,MAAM,UAAU,GAAG,kBAAkB,CAAC,cAAc,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,IAAI,QAAQ,MAAM,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,WAAW,CAAC,CAAC;IACzI,oFAAoF;IACpF,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;IAC3D,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;YAC3E,KAAK,CAAC,IAAI,CAAC,OAAO,YAAY,GAAG,SAAS,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,sBAAsB,IAAI,CAAC,OAAO,CAAC,UAAU,cAAc,CAAC,CAAC;IACrJ,CAAC;SAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,WAAW,CAAC,UAAU,sBAAsB,IAAI,CAAC,WAAW,CAAC,UAAU,cAAc,CAAC,CAAC;IAC1H,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,uFAAuF,CAAC,CAAC;IACtG,CAAC;IAED,sFAAsF;IACtF,mFAAmF;IACnF,IAAI,IAAI,CAAC,WAAW,EAAE,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAC/D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,oGAAoG;IACpG,yDAAyD;IACzD,MAAM,UAAU,GAAG;QACjB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU;QAC7B,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS;QAC5B,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;KACjC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACd,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC1C,+FAA+F;YAC/F,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5D,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;IAC5B,MAAM,UAAU,GACd,EAAE,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;QAC/B,EAAE,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;QAC/B,EAAE,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,IAAI,EAAE,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,iBAAiB,CAAC,MAAM,WAAW,CAAC,CAAC;QAC7F,IAAI,EAAE,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,iBAAiB,CAAC,MAAM,cAAc,CAAC,CAAC;QAChG,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,MAAM,kBAAkB,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,MAAM,GAAG,0BAA0B,CAAC,CAAC;IAC7G,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -79,7 +79,7 @@ pb capture "INS: learned that X"
|
|
|
79
79
|
|
|
80
80
|
Close with \`pb session close\` — reviews what was captured, refreshes context for the next session.
|
|
81
81
|
|
|
82
|
-
All captures are drafts. The human reviews and
|
|
82
|
+
All captures are drafts. The human reviews and accepts in Cortex.
|
|
83
83
|
${skillsSection}
|
|
84
84
|
## Governance Summary
|
|
85
85
|
|
|
@@ -122,7 +122,7 @@ pb capture "INS: learned that X"
|
|
|
122
122
|
|
|
123
123
|
Close with \`pb session close\` — reviews what was captured, refreshes context for the next session.
|
|
124
124
|
|
|
125
|
-
All captures are drafts. The human reviews and
|
|
125
|
+
All captures are drafts. The human reviews and accepts in Cortex.
|
|
126
126
|
`;
|
|
127
127
|
}
|
|
128
128
|
export function generateCursorMdc(timestamp, profile) {
|
|
@@ -155,7 +155,7 @@ Start with \`pb session start\`. When you make a decision, discover a tension, o
|
|
|
155
155
|
- \`pb capture "TEN: description"\` — capture a tension
|
|
156
156
|
- \`pb capture "DEC: decided X because Y"\` — capture a decision
|
|
157
157
|
- \`pb capture "INS: learned that X"\` — capture an insight
|
|
158
|
-
Close with \`pb session close\`. All captures are drafts — human reviews and
|
|
158
|
+
Close with \`pb session close\`. All captures are drafts — human reviews and accepts.
|
|
159
159
|
|
|
160
160
|
<!-- ${MARKER} — ${timestamp} -->
|
|
161
161
|
`;
|
|
@@ -207,7 +207,7 @@ Before substantive implementation, review, diagnosis, or security-sensitive reas
|
|
|
207
207
|
## Session lifecycle — close the loop
|
|
208
208
|
|
|
209
209
|
Start with \`pb session start\`. Capture knowledge during work with \`pb capture "text"\`.
|
|
210
|
-
Close with \`pb session close\`. All captures are drafts — human reviews and
|
|
210
|
+
Close with \`pb session close\`. All captures are drafts — human reviews and accepts.
|
|
211
211
|
`;
|
|
212
212
|
// When no enrichment options provided, return base for backward compat
|
|
213
213
|
if (!skills?.length && !rules?.length) {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SurfaceName } from '../surfaces/registry.js';
|
|
2
|
+
export interface RegionContext {
|
|
3
|
+
/** Whether the codex surface is active for THIS run — gates the AGENTS.md skills-index pointer. */
|
|
4
|
+
codexActive: boolean;
|
|
5
|
+
/** Forward seam (v1 build does not interpolate these). */
|
|
6
|
+
stage?: string;
|
|
7
|
+
focus?: string;
|
|
8
|
+
governanceMode?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface RegionProjection {
|
|
11
|
+
surface: SurfaceName;
|
|
12
|
+
targetFile: string;
|
|
13
|
+
/** Returns the full region INCLUDING both sentinels, rendered in `eol`. */
|
|
14
|
+
build(ctx: RegionContext, eol: string): string;
|
|
15
|
+
}
|
|
16
|
+
/** v1: claude + codex. New harness = new entry. `augmentTarget` is derived from membership. */
|
|
17
|
+
export declare const REGION_PROJECTIONS: Partial<Record<SurfaceName, RegionProjection>>;
|
|
18
|
+
//# sourceMappingURL=region-projections.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"region-projections.d.ts","sourceRoot":"","sources":["../../src/generators/region-projections.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,mGAAmG;IACnG,WAAW,EAAE,OAAO,CAAC;IACrB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CAChD;AA8CD,+FAA+F;AAC/F,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAG7E,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-surface region CONTENT (TEN-2155). Mechanism (sentinels/splice/classify) lives in region.ts.
|
|
3
|
+
* Adding a harness = add a RegionProjection + one REGION_PROJECTIONS entry. Tuning a harness's block
|
|
4
|
+
* = edit its `build`. The shared SPINE keeps cross-surface parity structural (anti-drift).
|
|
5
|
+
* Active imperative voice fixes the passive-routing low-activation issue (TEN-718/INS-292).
|
|
6
|
+
*/
|
|
7
|
+
import { REGION_START, REGION_END } from './region.js';
|
|
8
|
+
const HEADING = '## Product Brain — operating context (managed)';
|
|
9
|
+
/** Shared imperative spine — both surfaces consume this verbatim. */
|
|
10
|
+
const SPINE = [
|
|
11
|
+
'Before any substantive task — implementing, reviewing, or diagnosing — run `pb orient --task "<what you\'re doing>"` so task-relevant governance is active before you propose a solution.',
|
|
12
|
+
'To read a spec, run `pb get <ID>` — never infer a spec, exclusions, or acceptance criteria from chat alone.',
|
|
13
|
+
'Read `.productbrain/context.md` (workspace briefing) and `.productbrain/briefing.md` (entries matched to this repo) first.',
|
|
14
|
+
'',
|
|
15
|
+
'| Command | When |',
|
|
16
|
+
'|---------|------|',
|
|
17
|
+
'| `pb orient --task "<task>"` | before implementing, reviewing, or diagnosing |',
|
|
18
|
+
'| `pb get <ID>` | read a BET/DEC/STD/BR/TEN/ARCH spec |',
|
|
19
|
+
'| `pb search <query>` | find entries across the Chain |',
|
|
20
|
+
'| `pb session start` / `pb capture "<DEC\\|TEN\\|INS>: …"` / `pb session close` | track + capture during work (drafts only) |',
|
|
21
|
+
];
|
|
22
|
+
function compose(tail, eol) {
|
|
23
|
+
const body = [HEADING, '', ...SPINE, ...tail].join(eol);
|
|
24
|
+
return [REGION_START, body, REGION_END].join(eol);
|
|
25
|
+
}
|
|
26
|
+
const claudeProjection = {
|
|
27
|
+
surface: 'claude',
|
|
28
|
+
targetFile: 'CLAUDE.md',
|
|
29
|
+
build(_ctx, eol) {
|
|
30
|
+
return compose(['', 'The `.claude/rules/*.md` in this repo auto-load — follow them; do not duplicate them here.'], eol);
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
const codexProjection = {
|
|
34
|
+
surface: 'codex',
|
|
35
|
+
targetFile: 'AGENTS.md',
|
|
36
|
+
build(ctx, eol) {
|
|
37
|
+
const tail = ['', 'Work the Chain through the `pb` CLI — it is the single source of truth; do not rely on memory of past runs.'];
|
|
38
|
+
if (ctx.codexActive) {
|
|
39
|
+
tail.push('For task-specific skills, read the Codex skills index at `.codex/skills/README.md`.');
|
|
40
|
+
}
|
|
41
|
+
return compose(tail, eol);
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
/** v1: claude + codex. New harness = new entry. `augmentTarget` is derived from membership. */
|
|
45
|
+
export const REGION_PROJECTIONS = {
|
|
46
|
+
claude: claudeProjection,
|
|
47
|
+
codex: codexProjection,
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=region-projections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"region-projections.js","sourceRoot":"","sources":["../../src/generators/region-projections.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAmBvD,MAAM,OAAO,GAAG,gDAAgD,CAAC;AAEjE,qEAAqE;AACrE,MAAM,KAAK,GAAa;IACtB,2LAA2L;IAC3L,6GAA6G;IAC7G,4HAA4H;IAC5H,EAAE;IACF,oBAAoB;IACpB,oBAAoB;IACpB,iFAAiF;IACjF,yDAAyD;IACzD,yDAAyD;IACzD,+HAA+H;CAChI,CAAC;AAEF,SAAS,OAAO,CAAC,IAAc,EAAE,GAAW;IAC1C,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxD,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,gBAAgB,GAAqB;IACzC,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,WAAW;IACvB,KAAK,CAAC,IAAI,EAAE,GAAG;QACb,OAAO,OAAO,CACZ,CAAC,EAAE,EAAE,4FAA4F,CAAC,EAClG,GAAG,CACJ,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,eAAe,GAAqB;IACxC,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,WAAW;IACvB,KAAK,CAAC,GAAG,EAAE,GAAG;QACZ,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,6GAA6G,CAAC,CAAC;QACjI,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC;QACnG,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;CACF,CAAC;AAEF,+FAA+F;AAC/F,MAAM,CAAC,MAAM,kBAAkB,GAAmD;IAChF,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,eAAe;CACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"region-projections.test.d.ts","sourceRoot":"","sources":["../../src/generators/region-projections.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { MARKER } from './adapters.js';
|
|
3
|
+
import { REGION_START, REGION_END, classifyAdapterFile } from './region.js';
|
|
4
|
+
import { REGION_PROJECTIONS } from './region-projections.js';
|
|
5
|
+
const ctxCodexOn = { codexActive: true };
|
|
6
|
+
const ctxCodexOff = { codexActive: false };
|
|
7
|
+
describe('REGION_PROJECTIONS', () => {
|
|
8
|
+
it('registers exactly claude + codex in v1', () => {
|
|
9
|
+
expect(Object.keys(REGION_PROJECTIONS).sort()).toEqual(['claude', 'codex']);
|
|
10
|
+
});
|
|
11
|
+
for (const [surface, proj] of Object.entries(REGION_PROJECTIONS)) {
|
|
12
|
+
it(`${surface}: output is a single balanced region with a visible heading`, () => {
|
|
13
|
+
const out = proj.build(ctxCodexOn, '\n');
|
|
14
|
+
expect(out.startsWith(REGION_START)).toBe(true);
|
|
15
|
+
expect(out.endsWith(REGION_END)).toBe(true);
|
|
16
|
+
expect(out).toContain('## Product Brain — operating context (managed)');
|
|
17
|
+
expect(classifyAdapterFile(`# host\n\n${out}\n`)).toBe('region-present');
|
|
18
|
+
});
|
|
19
|
+
it(`${surface}: body (between sentinels) contains no bare end-sentinel (self-collision)`, () => {
|
|
20
|
+
const out = proj.build(ctxCodexOn, '\n');
|
|
21
|
+
const body = out.slice(REGION_START.length, out.length - REGION_END.length);
|
|
22
|
+
expect(body.includes(REGION_END)).toBe(false);
|
|
23
|
+
});
|
|
24
|
+
it(`${surface}: never contains the whole-file MARKER`, () => {
|
|
25
|
+
expect(proj.build(ctxCodexOn, '\n').includes(MARKER)).toBe(false);
|
|
26
|
+
});
|
|
27
|
+
it(`${surface}: active imperative voice (leads with a verb, no passive 'is available')`, () => {
|
|
28
|
+
const out = proj.build(ctxCodexOn, '\n');
|
|
29
|
+
expect(out).toContain('Before any substantive task');
|
|
30
|
+
expect(out).toMatch(/run `pb orient --task/);
|
|
31
|
+
expect(out.toLowerCase()).not.toContain('is available');
|
|
32
|
+
expect(out.toLowerCase()).not.toContain('governance summary');
|
|
33
|
+
});
|
|
34
|
+
it(`${surface}: renders in the requested EOL`, () => {
|
|
35
|
+
expect(proj.build(ctxCodexOn, '\r\n')).toContain('\r\n');
|
|
36
|
+
expect(proj.build(ctxCodexOn, '\r\n')).not.toMatch(/(?<!\r)\n/);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
it('claude tail points to auto-loaded rules; codex tail routes through the CLI', () => {
|
|
40
|
+
expect(REGION_PROJECTIONS.claude.build(ctxCodexOn, '\n')).toContain('.claude/rules/*.md');
|
|
41
|
+
expect(REGION_PROJECTIONS.codex.build(ctxCodexOn, '\n')).toContain('Work the Chain through the `pb` CLI');
|
|
42
|
+
expect(REGION_PROJECTIONS.claude.build(ctxCodexOn, '\n')).not.toContain('.codex/skills/README.md');
|
|
43
|
+
});
|
|
44
|
+
it('claude output is independent of codexActive', () => {
|
|
45
|
+
expect(REGION_PROJECTIONS.claude.build({ codexActive: false }, '\n')).toEqual(REGION_PROJECTIONS.claude.build({ codexActive: true }, '\n'));
|
|
46
|
+
});
|
|
47
|
+
it('codex skills-index pointer is gated on ctx.codexActive', () => {
|
|
48
|
+
expect(REGION_PROJECTIONS.codex.build(ctxCodexOn, '\n')).toContain('.codex/skills/README.md');
|
|
49
|
+
expect(REGION_PROJECTIONS.codex.build(ctxCodexOff, '\n')).not.toContain('.codex/skills/README.md');
|
|
50
|
+
});
|
|
51
|
+
it('codex output is a well-formed region even when codexActive is false', () => {
|
|
52
|
+
const off = REGION_PROJECTIONS.codex.build({ codexActive: false }, '\n');
|
|
53
|
+
expect(off.startsWith(REGION_START)).toBe(true);
|
|
54
|
+
expect(off.endsWith(REGION_END)).toBe(true);
|
|
55
|
+
expect(off).not.toContain('.codex/skills/README.md');
|
|
56
|
+
});
|
|
57
|
+
it('shared spine is identical across surfaces (anti-drift)', () => {
|
|
58
|
+
const spineLine = 'To read a spec, run `pb get <ID>`';
|
|
59
|
+
expect(REGION_PROJECTIONS.claude.build(ctxCodexOn, '\n')).toContain(spineLine);
|
|
60
|
+
expect(REGION_PROJECTIONS.codex.build(ctxCodexOn, '\n')).toContain(spineLine);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=region-projections.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"region-projections.test.js","sourceRoot":"","sources":["../../src/generators/region-projections.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAsB,MAAM,yBAAyB,CAAC;AAEjF,MAAM,UAAU,GAAkB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AACxD,MAAM,WAAW,GAAkB,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAE1D,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACjE,EAAE,CAAC,GAAG,OAAO,6DAA6D,EAAE,GAAG,EAAE;YAC/E,MAAM,GAAG,GAAG,IAAK,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,gDAAgD,CAAC,CAAC;YACxE,MAAM,CAAC,mBAAmB,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,GAAG,OAAO,2EAA2E,EAAE,GAAG,EAAE;YAC7F,MAAM,GAAG,GAAG,IAAK,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YAC5E,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,GAAG,OAAO,wCAAwC,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,IAAK,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,GAAG,OAAO,0EAA0E,EAAE,GAAG,EAAE;YAC5F,MAAM,GAAG,GAAG,IAAK,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;YACrD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAC7C,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACxD,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,GAAG,OAAO,gCAAgC,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,IAAK,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1D,MAAM,CAAC,IAAK,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,CAAC,kBAAkB,CAAC,MAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC3F,MAAM,CAAC,kBAAkB,CAAC,KAAM,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;QAC3G,MAAM,CAAC,kBAAkB,CAAC,MAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,kBAAkB,CAAC,MAAO,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAC5E,kBAAkB,CAAC,MAAO,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAC9D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,CAAC,kBAAkB,CAAC,KAAM,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAC/F,MAAM,CAAC,kBAAkB,CAAC,KAAM,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1E,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,SAAS,GAAG,mCAAmC,CAAC;QACtD,MAAM,CAAC,kBAAkB,CAAC,MAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAChF,MAAM,CAAC,kBAAkB,CAAC,KAAM,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const REGION_START = "<!-- pb:region:start \u2014 managed by `pb handshake`; edit only OUTSIDE this block -->";
|
|
2
|
+
export declare const REGION_END = "<!-- pb:region:end -->";
|
|
3
|
+
export declare const REGION_OPT_OUT = "<!-- pb:no-augment -->";
|
|
4
|
+
export type AdapterClass = 'pb-managed' | 'augmentable' | 'region-present' | 'malformed' | 'opt-out';
|
|
5
|
+
/**
|
|
6
|
+
* Classify an EXISTING adapter file's content. Caller decides routing.
|
|
7
|
+
* Precedence: MARKER (whole-file pb-managed) → opt-out (user declined augmentation) → region balance.
|
|
8
|
+
*/
|
|
9
|
+
export declare function classifyAdapterFile(content: string): AdapterClass;
|
|
10
|
+
/** Dominant EOL of the file. LF for empty / no-newline / ties. */
|
|
11
|
+
export declare function detectEol(content: string): '\r\n' | '\n';
|
|
12
|
+
/**
|
|
13
|
+
* Append a region to a file that has none. Never removes meaningful user content
|
|
14
|
+
* (a whitespace-only file is treated as empty) — only adds a blank-line separator
|
|
15
|
+
* when one is not already present. `region` includes both sentinels.
|
|
16
|
+
*/
|
|
17
|
+
export declare function spliceAppend(disk: string, region: string, eol: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Replace an existing region body in place. Bytes before REGION_START and after REGION_END
|
|
20
|
+
* are preserved verbatim. Caller guarantees `disk` classifies as 'region-present'.
|
|
21
|
+
* `region` includes both sentinels.
|
|
22
|
+
*/
|
|
23
|
+
export declare function spliceReplace(disk: string, region: string): string;
|
|
24
|
+
//# sourceMappingURL=region.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"region.d.ts","sourceRoot":"","sources":["../../src/generators/region.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,YAAY,4FAAuF,CAAC;AACjH,eAAO,MAAM,UAAU,2BAA2B,CAAC;AAKnD,eAAO,MAAM,cAAc,2BAA2B,CAAC;AAgBvD,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,aAAa,GAAG,gBAAgB,GAAG,WAAW,GAAG,SAAS,CAAC;AAerG;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAUjE;AAED,kEAAkE;AAClE,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIxD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAK9E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIlE"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Region mechanism for non-destructive augmentation of user-owned adapter files (TEN-2155).
|
|
3
|
+
* Pure, surface-agnostic: sentinels, classification, EOL detection, and the splice transforms.
|
|
4
|
+
* Per-surface CONTENT lives in region-projections.ts; the write loop wires them together.
|
|
5
|
+
*
|
|
6
|
+
* Invariant (asserted by region.test.ts): the sentinels are disjoint from the whole-file
|
|
7
|
+
* MARKER ('auto-generated by pb handshake'), so an augmented file is never classified pb-managed
|
|
8
|
+
* and never whole-file-overwritten.
|
|
9
|
+
*/
|
|
10
|
+
import { MARKER } from './adapters.js';
|
|
11
|
+
export const REGION_START = '<!-- pb:region:start — managed by `pb handshake`; edit only OUTSIDE this block -->';
|
|
12
|
+
export const REGION_END = '<!-- pb:region:end -->';
|
|
13
|
+
// Opt-out sentinel (TEN-2155): a file carrying this declares "pb handshake must NOT augment me".
|
|
14
|
+
// Generic + consumer-usable — and the mechanism by which this repo's own committed CLAUDE.md/AGENTS.md
|
|
15
|
+
// (the static constitution the constitution forbids handshake from writing) decline a PB region.
|
|
16
|
+
export const REGION_OPT_OUT = '<!-- pb:no-augment -->';
|
|
17
|
+
// Compile-time guard against a future MARKER rename silently colliding (belt-and-suspenders to the test).
|
|
18
|
+
if (REGION_START.includes(MARKER) || REGION_END.includes(MARKER)) {
|
|
19
|
+
throw new Error('pb:region sentinels must not contain the whole-file MARKER substring');
|
|
20
|
+
}
|
|
21
|
+
// The opt-out sentinel must stay distinguishable from MARKER + the region sentinels, else a
|
|
22
|
+
// region-present or pb-managed file could misclassify as opt-out (and silently stop being managed).
|
|
23
|
+
if (REGION_OPT_OUT.includes(MARKER) ||
|
|
24
|
+
REGION_START.includes(REGION_OPT_OUT) ||
|
|
25
|
+
REGION_END.includes(REGION_OPT_OUT)) {
|
|
26
|
+
throw new Error('pb:no-augment sentinel must be disjoint from the MARKER and region sentinels');
|
|
27
|
+
}
|
|
28
|
+
// Precondition: needle.length > 0 (callers are internal, always non-empty sentinels). An empty needle would not terminate.
|
|
29
|
+
function countOccurrences(haystack, needle) {
|
|
30
|
+
let count = 0;
|
|
31
|
+
let i = 0;
|
|
32
|
+
for (;;) {
|
|
33
|
+
const idx = haystack.indexOf(needle, i);
|
|
34
|
+
if (idx === -1)
|
|
35
|
+
break;
|
|
36
|
+
count += 1;
|
|
37
|
+
i = idx + needle.length;
|
|
38
|
+
}
|
|
39
|
+
return count;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Classify an EXISTING adapter file's content. Caller decides routing.
|
|
43
|
+
* Precedence: MARKER (whole-file pb-managed) → opt-out (user declined augmentation) → region balance.
|
|
44
|
+
*/
|
|
45
|
+
export function classifyAdapterFile(content) {
|
|
46
|
+
if (content.includes(MARKER))
|
|
47
|
+
return 'pb-managed';
|
|
48
|
+
if (content.includes(REGION_OPT_OUT))
|
|
49
|
+
return 'opt-out';
|
|
50
|
+
const starts = countOccurrences(content, REGION_START);
|
|
51
|
+
const ends = countOccurrences(content, REGION_END);
|
|
52
|
+
if (starts === 0 && ends === 0)
|
|
53
|
+
return 'augmentable';
|
|
54
|
+
if (starts === 1 && ends === 1 && content.indexOf(REGION_START) < content.indexOf(REGION_END)) {
|
|
55
|
+
return 'region-present';
|
|
56
|
+
}
|
|
57
|
+
return 'malformed';
|
|
58
|
+
}
|
|
59
|
+
/** Dominant EOL of the file. LF for empty / no-newline / ties. */
|
|
60
|
+
export function detectEol(content) {
|
|
61
|
+
const crlf = (content.match(/\r\n/g) ?? []).length;
|
|
62
|
+
const loneLf = (content.match(/(?<!\r)\n/g) ?? []).length;
|
|
63
|
+
return crlf > loneLf ? '\r\n' : '\n';
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Append a region to a file that has none. Never removes meaningful user content
|
|
67
|
+
* (a whitespace-only file is treated as empty) — only adds a blank-line separator
|
|
68
|
+
* when one is not already present. `region` includes both sentinels.
|
|
69
|
+
*/
|
|
70
|
+
export function spliceAppend(disk, region, eol) {
|
|
71
|
+
// The region body's EOL is the caller's responsibility (region-projections renders it in `eol`); this function only controls the separator + trailing newline.
|
|
72
|
+
if (disk.trim() === '')
|
|
73
|
+
return region + eol;
|
|
74
|
+
const sep = disk.endsWith(eol + eol) ? '' : disk.endsWith(eol) ? eol : eol + eol;
|
|
75
|
+
return disk + sep + region + eol;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Replace an existing region body in place. Bytes before REGION_START and after REGION_END
|
|
79
|
+
* are preserved verbatim. Caller guarantees `disk` classifies as 'region-present'.
|
|
80
|
+
* `region` includes both sentinels.
|
|
81
|
+
*/
|
|
82
|
+
export function spliceReplace(disk, region) {
|
|
83
|
+
const start = disk.indexOf(REGION_START);
|
|
84
|
+
const end = disk.indexOf(REGION_END) + REGION_END.length;
|
|
85
|
+
return disk.slice(0, start) + region + disk.slice(end);
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=region.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"region.js","sourceRoot":"","sources":["../../src/generators/region.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"region.test.d.ts","sourceRoot":"","sources":["../../src/generators/region.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { describe, it, expect } from 'vitest';
|
|
5
|
+
import { MARKER } from './adapters.js';
|
|
6
|
+
import { REGION_START, REGION_END, REGION_OPT_OUT, classifyAdapterFile, detectEol, spliceAppend, spliceReplace, } from './region.js';
|
|
7
|
+
describe('region sentinels', () => {
|
|
8
|
+
it('are disjoint from the whole-file MARKER (both directions)', () => {
|
|
9
|
+
expect(REGION_START.includes(MARKER)).toBe(false);
|
|
10
|
+
expect(REGION_END.includes(MARKER)).toBe(false);
|
|
11
|
+
expect(MARKER.includes(REGION_START)).toBe(false);
|
|
12
|
+
expect(MARKER.includes(REGION_END)).toBe(false);
|
|
13
|
+
});
|
|
14
|
+
it('opt-out sentinel is disjoint from MARKER and the region sentinels', () => {
|
|
15
|
+
expect(REGION_OPT_OUT.includes(MARKER)).toBe(false);
|
|
16
|
+
expect(REGION_START.includes(REGION_OPT_OUT)).toBe(false);
|
|
17
|
+
expect(REGION_END.includes(REGION_OPT_OUT)).toBe(false);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
describe('detectEol', () => {
|
|
21
|
+
it('returns LF for empty / no-newline / LF-dominant', () => {
|
|
22
|
+
expect(detectEol('')).toBe('\n');
|
|
23
|
+
expect(detectEol('one line')).toBe('\n');
|
|
24
|
+
expect(detectEol('a\nb\nc\n')).toBe('\n');
|
|
25
|
+
});
|
|
26
|
+
it('returns CRLF when CRLF-dominant', () => {
|
|
27
|
+
expect(detectEol('a\r\nb\r\nc\r\n')).toBe('\r\n');
|
|
28
|
+
});
|
|
29
|
+
it('returns LF when CRLF and lone-LF counts tie (tie-breaks to LF)', () => {
|
|
30
|
+
expect(detectEol('a\r\nb\n')).toBe('\n');
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe('classifyAdapterFile', () => {
|
|
34
|
+
const region = `${REGION_START}\n## x\n${REGION_END}`;
|
|
35
|
+
it('pb-managed when MARKER present (even with sentinel-looking text)', () => {
|
|
36
|
+
expect(classifyAdapterFile(`<!-- ${MARKER} -->\n${region}`)).toBe('pb-managed');
|
|
37
|
+
});
|
|
38
|
+
it('augmentable when no MARKER and no sentinels', () => {
|
|
39
|
+
expect(classifyAdapterFile('# my file\n')).toBe('augmentable');
|
|
40
|
+
});
|
|
41
|
+
it('region-present for exactly one balanced pair', () => {
|
|
42
|
+
expect(classifyAdapterFile(`# mine\n\n${region}\n`)).toBe('region-present');
|
|
43
|
+
});
|
|
44
|
+
it('malformed: start without end', () => {
|
|
45
|
+
expect(classifyAdapterFile(`# mine\n${REGION_START}\n`)).toBe('malformed');
|
|
46
|
+
});
|
|
47
|
+
it('malformed: end without start', () => {
|
|
48
|
+
expect(classifyAdapterFile(`# mine\n${REGION_END}\n`)).toBe('malformed');
|
|
49
|
+
});
|
|
50
|
+
it('malformed: duplicate starts', () => {
|
|
51
|
+
expect(classifyAdapterFile(`${REGION_START}\n${REGION_START}\n${REGION_END}`)).toBe('malformed');
|
|
52
|
+
});
|
|
53
|
+
it('malformed: duplicate ends', () => {
|
|
54
|
+
expect(classifyAdapterFile(`${REGION_START}\n${REGION_END}\n${REGION_END}`)).toBe('malformed');
|
|
55
|
+
});
|
|
56
|
+
it('malformed: end before start', () => {
|
|
57
|
+
expect(classifyAdapterFile(`${REGION_END}\nx\n${REGION_START}`)).toBe('malformed');
|
|
58
|
+
});
|
|
59
|
+
it('opt-out when the pb:no-augment sentinel is present (no MARKER)', () => {
|
|
60
|
+
expect(classifyAdapterFile(`# constitution\n${REGION_OPT_OUT}\n`)).toBe('opt-out');
|
|
61
|
+
});
|
|
62
|
+
it('opt-out wins over an existing region (user froze the file)', () => {
|
|
63
|
+
expect(classifyAdapterFile(`${REGION_OPT_OUT}\n${region}`)).toBe('opt-out');
|
|
64
|
+
});
|
|
65
|
+
it('opt-out wins over malformed sentinels (decline beats refusal)', () => {
|
|
66
|
+
expect(classifyAdapterFile(`${REGION_OPT_OUT}\n${REGION_START}\n(no end)\n`)).toBe('opt-out');
|
|
67
|
+
});
|
|
68
|
+
it('MARKER still wins over opt-out (whole-file pb-managed precedence)', () => {
|
|
69
|
+
expect(classifyAdapterFile(`<!-- ${MARKER} -->\n${REGION_OPT_OUT}\n`)).toBe('pb-managed');
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe('spliceAppend (never strips user bytes)', () => {
|
|
73
|
+
const region = `${REGION_START}\n## x\n${REGION_END}`;
|
|
74
|
+
it('empty/whitespace-only → region only (identical for both)', () => {
|
|
75
|
+
expect(spliceAppend('', region, '\n')).toBe(region + '\n');
|
|
76
|
+
expect(spliceAppend(' \n\n', region, '\n')).toBe(region + '\n');
|
|
77
|
+
});
|
|
78
|
+
it('no trailing newline → adds blank-line separator', () => {
|
|
79
|
+
expect(spliceAppend('last line', region, '\n')).toBe(`last line\n\n${region}\n`);
|
|
80
|
+
});
|
|
81
|
+
it('one trailing newline → one more for a blank line', () => {
|
|
82
|
+
expect(spliceAppend('body\n', region, '\n')).toBe(`body\n\n${region}\n`);
|
|
83
|
+
});
|
|
84
|
+
it('two+ trailing newlines → preserved verbatim, no extra separator', () => {
|
|
85
|
+
expect(spliceAppend('body\n\n\n', region, '\n')).toBe(`body\n\n\n${region}\n`);
|
|
86
|
+
});
|
|
87
|
+
it('exactly two trailing newlines → no extra separator', () => {
|
|
88
|
+
expect(spliceAppend('body\n\n', region, '\n')).toBe(`body\n\n${region}\n`);
|
|
89
|
+
});
|
|
90
|
+
it('CRLF file → region rendered + separated with CRLF; user bytes preserved', () => {
|
|
91
|
+
expect(spliceAppend('a\r\n', region, '\r\n')).toBe(`a\r\n\r\n${region}\r\n`);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
describe('spliceReplace (only between sentinels; surrounding bytes verbatim)', () => {
|
|
95
|
+
it('replaces region body, preserves prefix + suffix byte-for-byte', () => {
|
|
96
|
+
const before = '# mine\nkeep me\n\n';
|
|
97
|
+
const after = '\nmore user text\n';
|
|
98
|
+
const oldRegion = `${REGION_START}\nOLD\n${REGION_END}`;
|
|
99
|
+
const newRegion = `${REGION_START}\nNEW\n${REGION_END}`;
|
|
100
|
+
const disk = before + oldRegion + after;
|
|
101
|
+
expect(spliceReplace(disk, newRegion)).toBe(before + newRegion + after);
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
describe('append → replace convergence (idempotency)', () => {
|
|
105
|
+
it('appending once then replacing with identical region is byte-stable', () => {
|
|
106
|
+
const region = `${REGION_START}\n## x\n${REGION_END}`;
|
|
107
|
+
const appended = spliceAppend('# mine\nbody\n', region, '\n');
|
|
108
|
+
expect(classifyAdapterFile(appended)).toBe('region-present');
|
|
109
|
+
expect(spliceReplace(appended, region)).toBe(appended);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
// Reads the ACTUAL committed constitution files (not a copy of the sentinel string), so it catches
|
|
113
|
+
// drift in EITHER REGION_OPT_OUT or the files themselves — the exact bug class where a paraphrased
|
|
114
|
+
// comment was not a substring of the literal sentinel and the files would have been spliced anyway.
|
|
115
|
+
describe('committed constitution declines augmentation (TEN-2155 governance regression)', () => {
|
|
116
|
+
// This test lives at <repo>/packages/cli/src/generators — walk up 4 to the repo root.
|
|
117
|
+
const repoRoot = join(dirname(fileURLToPath(import.meta.url)), '..', '..', '..', '..');
|
|
118
|
+
for (const file of ['CLAUDE.md', 'AGENTS.md']) {
|
|
119
|
+
it(`${file} carries the literal opt-out sentinel and classifies 'opt-out'`, () => {
|
|
120
|
+
const content = readFileSync(join(repoRoot, file), 'utf8');
|
|
121
|
+
expect(content.includes(REGION_OPT_OUT), `${file} must contain the literal sentinel ${JSON.stringify(REGION_OPT_OUT)}`).toBe(true);
|
|
122
|
+
expect(classifyAdapterFile(content), `${file} must classify 'opt-out' so handshake never splices it`).toBe('opt-out');
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
//# sourceMappingURL=region.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"region.test.js","sourceRoot":"","sources":["../../src/generators/region.test.ts"],"names":[],"mappings":"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"}
|