@formigio/fazemos-cli 0.10.67 → 0.10.74
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/commands/preflight.d.ts +41 -0
- package/dist/commands/preflight.js +706 -0
- package/dist/commands/preflight.js.map +1 -0
- package/dist/commands/provision.d.ts +29 -0
- package/dist/commands/provision.js +382 -0
- package/dist/commands/provision.js.map +1 -0
- package/dist/index.js +87 -0
- package/dist/index.js.map +1 -1
- package/dist/preflight/repoRead.d.ts +65 -0
- package/dist/preflight/repoRead.js +194 -0
- package/dist/preflight/repoRead.js.map +1 -0
- package/dist/preflight/roster.d.ts +65 -0
- package/dist/preflight/roster.js +153 -0
- package/dist/preflight/roster.js.map +1 -0
- package/dist/preflight/row1_member.d.ts +8 -0
- package/dist/preflight/row1_member.js +64 -0
- package/dist/preflight/row1_member.js.map +1 -0
- package/dist/preflight/row2_roleRegistration.d.ts +18 -0
- package/dist/preflight/row2_roleRegistration.js +156 -0
- package/dist/preflight/row2_roleRegistration.js.map +1 -0
- package/dist/preflight/row3_persona.d.ts +24 -0
- package/dist/preflight/row3_persona.js +92 -0
- package/dist/preflight/row3_persona.js.map +1 -0
- package/dist/preflight/row3_playbook.d.ts +30 -0
- package/dist/preflight/row3_playbook.js +142 -0
- package/dist/preflight/row3_playbook.js.map +1 -0
- package/dist/preflight/row3_rolesJson.d.ts +12 -0
- package/dist/preflight/row3_rolesJson.js +38 -0
- package/dist/preflight/row3_rolesJson.js.map +1 -0
- package/dist/preflight/row3_workspace.d.ts +24 -0
- package/dist/preflight/row3_workspace.js +253 -0
- package/dist/preflight/row3_workspace.js.map +1 -0
- package/dist/preflight/row4_ssm.d.ts +57 -0
- package/dist/preflight/row4_ssm.js +235 -0
- package/dist/preflight/row4_ssm.js.map +1 -0
- package/dist/preflight/row5_workerLambdaWakeConfig.d.ts +20 -0
- package/dist/preflight/row5_workerLambdaWakeConfig.js +113 -0
- package/dist/preflight/row5_workerLambdaWakeConfig.js.map +1 -0
- package/dist/preflight/row6_ingest.d.ts +20 -0
- package/dist/preflight/row6_ingest.js +178 -0
- package/dist/preflight/row6_ingest.js.map +1 -0
- package/dist/preflight/schema.d.ts +175 -0
- package/dist/preflight/schema.js +62 -0
- package/dist/preflight/schema.js.map +1 -0
- package/dist/preflight/workerLambdas.d.ts +22 -0
- package/dist/preflight/workerLambdas.js +25 -0
- package/dist/preflight/workerLambdas.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/commands/preflight.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAsC,MAAM,gBAAgB,CAAC;AACvF,OAAO,EAAE,MAAM,EAAkB,MAAM,cAAc,CAAC;AACtD,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EACL,aAAa,EACb,eAAe,EACf,cAAc,GAKf,MAAM,wBAAwB,CAAC;AAkBhC,kFAAkF;AAElF;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,MAAgH;IAC1J,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YACjB,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;YACrB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;SACnB,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,qEAAqE;QACrE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;gBACvB,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/C,GAAG,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;aAC3D,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC7D,CAAC;QACH,CAAC;QACD,oCAAoC;QACpC,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IACnE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iFAAiF;AAEjF;;;;;;;;;;GAUG;AACH,SAAS,yBAAyB,CAChC,aAAqB,EACrB,QAAgB,EAChB,SAAgC;IAEhC,IAAI,CAAC;QACH,gBAAgB,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO,aAAa,CAAC;QAEnC,0EAA0E;QAC1E,IAAI,OAAe,CAAC;QACpB,IAAI,SAAS,EAAE,KAAK,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO;gBAC3C,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC9B,CAAC,CAAC,OAAO,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,SAAS,QAAQ,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,KAAK,GAAG,8BAA8B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/D,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC,CAAC,kCAAkC;QACjE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC;AAkBD,KAAK,UAAU,SAAS,CAAC,IAAgB;IACvC,MAAM,EACJ,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAC3D,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAChD,GAAG,IAAI,CAAC;IAET,MAAM,SAAS,GAAG,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAE5C,uFAAuF;IACvF,6FAA6F;IAC7F,0FAA0F;IAC1F,MAAM,aAAa,GAAG,yBAAyB,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEpF,uEAAuE;IACvE,0EAA0E;IAC1E,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,MAAM,YAAY,CAAC;QAC5D,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM;QAChC,aAAa,EAAE,kDAAkD;KAClE,CAAC,CAAC;IAEH,iEAAiE;IACjE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvE,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC3C,yBAAyB,CAAC;YACxB,SAAS;YACT,QAAQ;YACR,KAAK;YACL,SAAS;YACT,OAAO;YACP,WAAW;YACX,GAAG;SACJ,CAAC;QACF,iBAAiB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAClD,kBAAkB,CAAC;YACjB,aAAa;YACb,QAAQ;YACR,SAAS;YACT,UAAU,EAAE,EAAE,kBAAkB,EAAE,iBAAiB,EAAE;SACtD,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5D,+BAA+B,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAChD,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;KACnD,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC;AACrE,CAAC;AAED,kFAAkF;AAElF,SAAS,UAAU,CAAC,MAA8B;IAChD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1C,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,KAAK,eAAe,CAAC,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC7D,KAAK,cAAc,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzD,KAAK,eAAe,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC9D,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAoB;IACtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,CAAC;aAAM,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,yBAAyB;QACzB,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,UAAU,CAAC,KAAK,4BAA4B,GAAG,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QACvH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,OAAyB;IAC9C,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC;IACvF,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,aAAa,gBAAgB,CAAC,CAAC;IACpF,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAY,eAAe,CAAC,CAAC;IACjF,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,aAAa,gBAAgB,CAAC,CAAC;IACpF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAsB;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,SAAS,+DAA+D,CAAC,CAAC,CAAC;IACzH,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,qBAAqB,CAAC,OAAe;IAIlD,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CACrB,KAAK,EACL,sBAAsB,KAAK,yBAAyB,EACpD,SAAS,EACT,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAqF,CAAC;IACvF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,KAAa,EACb,OAAe,EACf,WAAmB;IAEnB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CACrB,KAAK,EACL,sBAAsB,KAAK,yBAAyB,EACpD,SAAS,EACT,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAuD,CAAC;IACzD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,YAAY,WAAW,uBAAuB,OAAO,IAAI,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,kFAAkF;AAElF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,IAAgB;IAEhB,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC;IAE3C,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAE7C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,GAAG,GACP,qDAAqD;YACrD,iEAAiE,CAAC;QACpE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC;gBACb,cAAc,EAAE,KAAK;gBACrB,MAAM;gBACN,GAAG,EAAE,OAAO;gBACZ,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,GAAG;aAC4B,CAAC,GAAG,IAAI,CACjD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAyC,CAAC,GAAG,IAAI,CACxI,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,4EAA4E;IAC5E,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,mBAAmB,MAAM,kEAAkE,CAAC;QACxG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAyC,CAAC,GAAG,IAAI,CAAC,CAAC;QAChK,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,6EAA6E;IAC7E,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACnC,OAAO,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAED,kFAAkF;AAElF,KAAK,UAAU,gBAAgB,CAC7B,MAAmB,EACnB,QAAuB,EACvB,MAAqC,EACrC,IAAgB,EAChB,OAAe;IAEf,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,MAA+B,CAAC;IAE3E,8BAA8B;IAC9B,MAAM,cAAc,GAAG,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAE7E,6EAA6E;IAC7E,IAAI,cAAc,KAAK,0BAA0B,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAE,CAAC;QACxF,MAAM,SAAS,GAAsB;YACnC,OAAO,EAAE,cAAc;YACvB,SAAS,EAAE,QAAQ;YACnB,sBAAsB,EAAE;gBACtB,cAAc,EAAE,QAAQ,CAAC,cAAc;gBACvC,aAAa,EAAE,QAAQ,CAAC,aAAa;aACtC;YACD,eAAe,EAAE,MAAM,QAAQ,CAAC,cAAc,gCAAgC,OAAO,IAAI,WAAW,IAAI,QAAQ,EAAE;SACnH,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,GAAG,GAAwB;gBAC/B,cAAc,EAAE,KAAK;gBACrB,MAAM,EAAE,GAAG,OAAO,IAAI,WAAW,IAAI,QAAQ,EAAE;gBAC/C,GAAG,EAAE,OAAO;gBACZ,SAAS,EAAE,CAAC;gBACZ,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE;gBAC9B,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE;gBACtC,IAAI,EAAE,QAAQ;gBACd,YAAY,EAAE,SAAS;gBACvB,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE;aACvG,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kCAAkC,QAAQ,kDAAkD,CAAC,CAAC,CAAC;YACtH,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,aAAa,kCAAkC,CAAC,CAAC;YAC9G,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,4BAA4B;IAC5B,IAAI,KAAa,CAAC;IAClB,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAClE,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,WAAW,IAAI,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAyC,CAAC,GAAG,IAAI,CAAC,CAAC;QACzM,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,+CAA+C;IAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC;IACjH,MAAM,SAAS,GACb,WAAW,EAAE,MAAM,EAAE,QAAQ;QAC7B,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ;QAC1C,QAAQ,CAAC;IAEX,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,MAAM,WAAW,MAAM,QAAQ,YAAY,SAAS,KAAK,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,SAAS,MAAM,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,uBAAuB,WAAW,mDAAmD,CAAC,CAAC;IACrG,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC;QAC3B,KAAK;QACL,OAAO;QACP,SAAS;QACT,WAAW;QACX,QAAQ;QACR,SAAS;QACT,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,aAAa,EAAE,QAAQ,CAAC,cAAc;QACtC,QAAQ;QACR,GAAG,EAAE,OAAO;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE9C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,GAAG,GAAwB;YAC/B,cAAc,EAAE,KAAK;YACrB,MAAM,EAAE,GAAG,OAAO,IAAI,WAAW,IAAI,QAAQ,EAAE;YAC/C,GAAG,EAAE,OAAO;YACZ,SAAS,EAAE,QAAQ;YACnB,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE;YACjC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE;YAC7C,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,SAAS;YAChB,cAAc,EAAE,QAAQ,CAAC,SAAS;YAClC,aAAa,EAAE,MAAM;YACrB,IAAI;YACJ,OAAO;SACR,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,eAAe,aAAa,CAAC,OAAO,CAAC,UAAU,QAAQ,GAAG,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,aAAa,CAC1B,MAAmB,EACnB,QAAuB,EACvB,MAAqC,EACrC,IAAgB,EAChB,OAAe;IAEf,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAA+C,CAAC;IAE9E,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,QAAQ,EAAE,GAC3E,kBAAkB,CAAC,MAAM,EAAE,QAAS,CAAC,CAAC;IAExC,sDAAsD;IACtD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC/C,MAAM,GAAG,GACP,yCAAyC,QAAQ,KAAK;YACtD,qBAAqB,QAAQ,iFAAiF,CAAC;QACjH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC;gBACb,cAAc,EAAE,KAAK;gBACrB,MAAM,EAAE,GAAG,OAAO,IAAI,QAAQ,EAAE;gBAChC,GAAG,EAAE,OAAO;gBACZ,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,GAAG;aAC4B,CAAC,GAAG,IAAI,CACjD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,qDAAqD;IACrD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC9C,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,cAAc,gCAAgC,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC1G,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,GAAG,GAAwB;gBAC/B,cAAc,EAAE,KAAK;gBACrB,MAAM,EAAE,GAAG,OAAO,IAAI,QAAQ,EAAE;gBAChC,GAAG,EAAE,OAAO;gBACZ,SAAS,EAAE,CAAC;gBACZ,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE;gBAC9B,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE;oBACN,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,iBAAiB,EAAE,EAAE;oBACrB,qBAAqB,EAAE,CAAC;4BACtB,SAAS,EAAE,QAAQ;4BACnB,cAAc,EAAE,QAAQ,CAAC,cAAc;4BACvC,aAAa,EAAE,QAAQ,CAAC,aAAa;4BACrC,eAAe,EAAE,cAAc;yBAChC,CAAC;iBACH;gBACD,WAAW,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;aAC5E,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kCAAkC,QAAQ,kDAAkD,CAAC,CAAC,CAAC;YACtH,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,aAAa,IAAI,CAAC,CAAC;YAChF,iBAAiB,CAAC;gBAChB,OAAO,EAAE,cAAc;gBACvB,SAAS,EAAE,QAAQ;gBACnB,sBAAsB,EAAE,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE;gBAC1G,eAAe,EAAE,cAAc;aAChC,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,2DAA2D,QAAQ,iDAAiD,CAAC,CAAC;YAClI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,aAAa,gBAAgB,CAAC,MAAM,kCAAkC,QAAQ,WAAW,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzI,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,QAAQ,CAAC,cAAc,mCAAmC,CAAC,CAAC,CAAC;QAC9H,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,gCAAgC;IAChC,IAAI,KAAa,CAAC;IAClB,IAAI,WAAgD,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACtD,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QACvB,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAClC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAyC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC1L,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3E,MAAM,cAAc,GAAiD,EAAE,CAAC;IACxE,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,wCAAwC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,YAAY,CAAC,CAAC;QAEjE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAiC,QAAQ,kBAAkB,EAAE,CAAC,YAAY,uDAAuD,OAAO,cAAc,CAAC,CAAC,CAAC;YACpL,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,MAAM,eAAe,OAAO,MAAM,EAAE,CAAC,YAAY,MAAM,QAAQ,YAAY,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;QAChK,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC;YAC3B,KAAK;YACL,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,WAAW,EAAE,EAAE,CAAC,YAAY;YAC5B,QAAQ,EAAE,QAAS;YACnB,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ;YAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,aAAa,EAAE,QAAQ,CAAC,cAAc;YACtC,QAAQ;YACR,GAAG,EAAE,OAAO;YACZ,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,aAAa,aAAa,CAAC,OAAO,CAAC,wBAAwB,IAAI,KAAK,CAAC,CAAC;QACpF,CAAC;QAED,cAAc,CAAC,IAAI,CAAC;YAClB,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;YAC/C,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ;YACzB,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,QAAQ,EAAE,CAAC;QACb,cAAc,GAAG,IAAI,CAAC;QACtB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,cAAc,gCAAgC,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC1G,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,QAAQ,iCAAiC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YAC/G,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,cAAc,CAAC,IAAI,CAAC;YAClB,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,EAAE;YAC9C,QAAQ,EAAE,IAAI;YACd,wBAAwB,EAAE,IAAI;YAC9B,eAAe,EAAE,cAAc;SAChC,CAAC,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjF,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,kBAAkB,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,WAAW,QAAQ,kCAAkC,CAAC,CAAC,CAAC;QACpG,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACnC,cAAc,CAAC,IAAI,CAAC;YAClB,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YACnC,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,SAAS,QAAQ,iCAAiC;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,cAAc;SACnC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SACtF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CACT,gBAAgB,gBAAgB,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,MAAM,0BAA0B;YAC9J,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,MAAM,iCAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrG,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,EAAE,CAAC,CAC/E,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAwB;YAC/B,cAAc,EAAE,KAAK;YACrB,MAAM,EAAE,GAAG,OAAO,IAAI,QAAQ,EAAE;YAChC,GAAG,EAAE,OAAO;YACZ,SAAS,EAAE,SAAS;YACpB,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE;YACjC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE;gBACN,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;gBAC9D,mBAAmB,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1D,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACb,qBAAqB,EAAE,CAAC;4BACtB,SAAS,EAAE,QAAS;4BACpB,cAAc,EAAE,QAAQ,CAAC,cAAc;4BACvC,aAAa,EAAE,QAAQ,CAAC,aAAa;4BACrC,eAAe,EAAE,MAAM,QAAQ,CAAC,cAAc,gCAAgC,OAAO,IAAI,QAAQ,EAAE;yBACpG,CAAC;iBACH,CAAC,CAAC,CAAC,EAAE,CAAC;aACR;YACD,QAAQ,EAAE,cAAc;YACxB,WAAW,EAAE;gBACX,cAAc,EAAE,WAAW,CAAC,MAAM;gBAClC,iBAAiB,EAAE,gBAAgB,CAAC,MAAM;gBAC1C,mBAAmB,EAAE,kBAAkB,CAAC,MAAM;gBAC9C,iBAAiB,EAAE,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc;gBAClE,gBAAgB,EAAE,eAAe;gBACjC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACrC;SACF,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,iFAAiF;AAEjF,KAAK,UAAU,gBAAgB,CAC7B,MAAmB,EACnB,QAAuB,EACvB,MAAqC,EACrC,IAAgB,EAChB,OAAe;IAEf,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAkD,CAAC;IAEpF,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,wBAAwB,EAAE,UAAU,EAAE,GAC1E,kBAAkB,CAAC,MAAM,EAAE,WAAY,CAAC,CAAC;IAE3C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAG,yCAAyC,WAAW,sBAAsB,CAAC;QACvF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,WAAW,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAyC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7L,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,4BAA4B;IAC5B,IAAI,KAAa,CAAC;IAClB,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,WAAY,CAAC,CAAC;QACnE,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,WAAW,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAyC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7L,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CACT,yBAAyB,WAAW,MAAM,aAAa,CAAC,MAAM,2BAA2B;YACzF,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,MAAM,6BAA6B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CACtI,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAA8C,EAAE,CAAC;IAClE,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,0CAA0C;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;QAErC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,oBAAoB,EAAE,CAAC,SAAS,YAAY,SAAS,GAAG,CAAC,CAAC;QACxH,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC;YAC3B,KAAK;YACL,OAAO;YACP,SAAS;YACT,WAAW,EAAE,WAAY;YACzB,QAAQ,EAAE,EAAE,CAAC,SAAS;YACtB,SAAS;YACT,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,aAAa,EAAE,QAAQ,CAAC,cAAc;YACtC,QAAQ;YACR,GAAG,EAAE,OAAO;YACZ,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,aAAa,aAAa,CAAC,OAAO,CAAC,wBAAwB,IAAI,KAAK,CAAC,CAAC;QACpF,CAAC;QAED,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,yCAAyC;IACzC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;QACtF,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,cAAc,gCAAgC,OAAO,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC1G,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,SAAS,UAAU,cAAc,EAAE,CAAC,CAAC,CAAC;YAC1E,CAAC;YACD,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,GAAG,CAAC,SAAS;gBACnB,QAAQ,EAAE,IAAI;gBACd,wBAAwB,EAAE,IAAI;gBAC9B,eAAe,EAAE,cAAc;aAChC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,WAAW;SAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SACtF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAE7C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CACT,oBAAoB,aAAa,CAAC,MAAM,OAAO,aAAa,CAAC,MAAM,sBAAsB;YACzF,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,MAAM,WAAW,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACxG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,MAAM,wCAAwC,CAAC,CAAC,CAAC,EAAE,CAAC,CACtF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAwB;YAC/B,cAAc,EAAE,KAAK;YACrB,MAAM,EAAE,GAAG,OAAO,IAAI,WAAW,EAAE;YACnC,GAAG,EAAE,OAAO;YACZ,SAAS,EAAE,SAAS;YACpB,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE;YACjC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAY,EAAE,EAAE,EAAE,SAAS,EAAE;YAC9C,MAAM,EAAE;gBACN,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC1B,qBAAqB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC5C,SAAS,EAAE,CAAC,CAAC,SAAS;wBACtB,cAAc,EAAE,CAAC,CAAC,cAAc;wBAChC,aAAa,EAAE,CAAC,CAAC,aAAa;wBAC9B,eAAe,EAAE,MAAM,CAAC,CAAC,cAAc,gCAAgC,OAAO,IAAI,CAAC,CAAC,SAAS,EAAE;qBAChG,CAAC,CAAC;iBACJ,CAAC,CAAC,CAAC,EAAE,CAAC;aACR;YACD,KAAK,EAAE,WAAW;YAClB,eAAe,EAAE;gBACf,yBAAyB,EAAE,aAAa,CAAC,MAAM;gBAC/C,qBAAqB,EAAE,UAAU,CAAC,MAAM;gBACxC,sBAAsB,EAAE,YAAY,CAAC,MAAM,KAAK,CAAC;gBACjD,aAAa,EAAE,YAAY;aAC5B;SACF,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* F53 — `fazemos agents provision <org>/<project>/<role> --name <agent> --model <model>`
|
|
3
|
+
*
|
|
4
|
+
* Idempotent composite of provisioning layers 1–3, followed by preflight.
|
|
5
|
+
* Non-interactive one-shot. Provides --dry-run as the safety valve.
|
|
6
|
+
*
|
|
7
|
+
* Layers:
|
|
8
|
+
* 1. agents register (POST /api/agents/register) — idempotent
|
|
9
|
+
* 2. .fazemos/roles.json entry update + roles sync (POST /api/role-registrations/sync)
|
|
10
|
+
* — with pre-sync clobber guard (rul_f53_provision_never_clobbers_binding)
|
|
11
|
+
* 3. Verify-and-instruct only (NO scaffold) — effective persona (API), playbook, roles.json entry
|
|
12
|
+
*
|
|
13
|
+
* Ends by running `agents preflight` to show outstanding gaps (layers 4–6).
|
|
14
|
+
*
|
|
15
|
+
* Rules:
|
|
16
|
+
* rul_f53_provision_no_layer_3_scaffold — NEVER write persona/playbook/anchors files
|
|
17
|
+
* rul_f53_provision_never_clobbers_binding — lookup before sync; abort on bound_elsewhere
|
|
18
|
+
* rul_f53_hint_text_additive_only — hint text is separate from existing success lines
|
|
19
|
+
* rul_f53_row3a_verifies_effective_persona — 3a checks effective persona via API, not file presence
|
|
20
|
+
*/
|
|
21
|
+
export interface ProvisionOptions {
|
|
22
|
+
name: string;
|
|
23
|
+
model: string;
|
|
24
|
+
dryRun?: boolean;
|
|
25
|
+
env?: string;
|
|
26
|
+
json?: boolean;
|
|
27
|
+
region?: string;
|
|
28
|
+
}
|
|
29
|
+
export declare function runProvision(target: string, opts: ProvisionOptions): Promise<void>;
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* F53 — `fazemos agents provision <org>/<project>/<role> --name <agent> --model <model>`
|
|
3
|
+
*
|
|
4
|
+
* Idempotent composite of provisioning layers 1–3, followed by preflight.
|
|
5
|
+
* Non-interactive one-shot. Provides --dry-run as the safety valve.
|
|
6
|
+
*
|
|
7
|
+
* Layers:
|
|
8
|
+
* 1. agents register (POST /api/agents/register) — idempotent
|
|
9
|
+
* 2. .fazemos/roles.json entry update + roles sync (POST /api/role-registrations/sync)
|
|
10
|
+
* — with pre-sync clobber guard (rul_f53_provision_never_clobbers_binding)
|
|
11
|
+
* 3. Verify-and-instruct only (NO scaffold) — effective persona (API), playbook, roles.json entry
|
|
12
|
+
*
|
|
13
|
+
* Ends by running `agents preflight` to show outstanding gaps (layers 4–6).
|
|
14
|
+
*
|
|
15
|
+
* Rules:
|
|
16
|
+
* rul_f53_provision_no_layer_3_scaffold — NEVER write persona/playbook/anchors files
|
|
17
|
+
* rul_f53_provision_never_clobbers_binding — lookup before sync; abort on bound_elsewhere
|
|
18
|
+
* rul_f53_hint_text_additive_only — hint text is separate from existing success lines
|
|
19
|
+
* rul_f53_row3a_verifies_effective_persona — 3a checks effective persona via API, not file presence
|
|
20
|
+
*/
|
|
21
|
+
import { readFileSync, writeFileSync, existsSync } from 'fs';
|
|
22
|
+
import { join as pathJoin } from 'path';
|
|
23
|
+
import chalk from 'chalk';
|
|
24
|
+
import { api, resolveOrgIdMaybeSlug } from '../api.js';
|
|
25
|
+
import { findLocalRegistry, buildRolesSyncPayload } from '../dispatch.js';
|
|
26
|
+
import { getEnv } from '../config.js';
|
|
27
|
+
import { runPreflight } from './preflight.js';
|
|
28
|
+
/**
|
|
29
|
+
* Print a per-layer status line:
|
|
30
|
+
* = layer 1 member exists (skipped)
|
|
31
|
+
* + layer 2 role_registration created
|
|
32
|
+
* ! layer 3a persona — MISSING at roles/project-manager.md
|
|
33
|
+
*/
|
|
34
|
+
function printLayer(s) {
|
|
35
|
+
const icon = s.action === '=' ? chalk.gray('=') :
|
|
36
|
+
s.action === '+' ? chalk.green('+') :
|
|
37
|
+
s.action === '!' ? chalk.red('!') :
|
|
38
|
+
chalk.cyan('?');
|
|
39
|
+
console.log(` ${icon} layer ${s.layer} ${s.label}: ${s.detail}`);
|
|
40
|
+
}
|
|
41
|
+
export async function runProvision(target, opts) {
|
|
42
|
+
const parts = target.split('/');
|
|
43
|
+
if (parts.length !== 3) {
|
|
44
|
+
console.error(chalk.red(`Invalid target '${target}'. Use <org>/<project>/<role>.`));
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
const [orgSlug, projectSlug, roleSlug] = parts;
|
|
48
|
+
const envConfig = getEnv();
|
|
49
|
+
const envName = opts.env ?? envConfig.name;
|
|
50
|
+
const agentName = opts.name;
|
|
51
|
+
const model = opts.model;
|
|
52
|
+
if (!opts.json) {
|
|
53
|
+
console.log(chalk.cyan(`\nProvision: ${orgSlug} / ${projectSlug} / ${roleSlug}`));
|
|
54
|
+
console.log(chalk.gray(` Agent: ${agentName} Model: ${model} Env: ${envName}`));
|
|
55
|
+
if (opts.dryRun) {
|
|
56
|
+
console.log(chalk.yellow(' [DRY RUN — no changes will be made]\n'));
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
console.log('');
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// ── Resolve org + project ─────────────────────────────────────────────────
|
|
63
|
+
let orgId;
|
|
64
|
+
let projectId;
|
|
65
|
+
try {
|
|
66
|
+
orgId = await resolveOrgIdMaybeSlug(orgSlug);
|
|
67
|
+
const projData = (await api('GET', `/api/organizations/${orgId}/projects?status=active`, undefined, { noProjectHeader: true }));
|
|
68
|
+
const project = (projData.projects ?? []).find((p) => p.slug === projectSlug);
|
|
69
|
+
if (!project)
|
|
70
|
+
throw new Error(`Project '${projectSlug}' not found in org '${orgSlug}'.`);
|
|
71
|
+
projectId = project.id;
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
console.error(chalk.red(`Error resolving org/project: ${err?.message ?? String(err)}`));
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
const statuses = [];
|
|
78
|
+
// ── Layer 1 — agents register (idempotent) ───────────────────────────────
|
|
79
|
+
if (opts.dryRun) {
|
|
80
|
+
statuses.push({ layer: 1, label: 'agent member + credential', action: '?', detail: `would register '${agentName}' with model=${model} and provision credential` });
|
|
81
|
+
printLayer(statuses[statuses.length - 1]);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
try {
|
|
85
|
+
// Check if agent already exists
|
|
86
|
+
const membersData = (await api('GET', `/api/organizations/${orgId}/members?type=agent`, undefined, { noProjectHeader: true }));
|
|
87
|
+
const norm = (s) => s.toLowerCase().replace(/[-_\s]+/g, ' ').trim();
|
|
88
|
+
const existing = (membersData.members ?? []).find((m) => m.member_type === 'agent' && norm(m.display_name) === norm(agentName));
|
|
89
|
+
if (existing) {
|
|
90
|
+
// Agent exists — check if role is in its config
|
|
91
|
+
const roles = existing.agent_config?.roles ?? [];
|
|
92
|
+
if (roles.includes(roleSlug)) {
|
|
93
|
+
statuses.push({ layer: 1, label: 'agent member + credential', action: '=', detail: `'${agentName}' exists (id=${existing.id}), role '${roleSlug}' already in config` });
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
// Update roles — re-register with new role list
|
|
97
|
+
await api('POST', '/api/agents/register', {
|
|
98
|
+
agents: [{
|
|
99
|
+
displayName: agentName,
|
|
100
|
+
roles: [...roles, roleSlug],
|
|
101
|
+
config: { model },
|
|
102
|
+
provisionCredential: false,
|
|
103
|
+
}],
|
|
104
|
+
});
|
|
105
|
+
statuses.push({ layer: 1, label: 'agent member + credential', action: '+', detail: `'${agentName}' updated with role '${roleSlug}' added` });
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
// Register new agent + provision credential
|
|
110
|
+
const data = (await api('POST', '/api/agents/register', {
|
|
111
|
+
agents: [{
|
|
112
|
+
displayName: agentName,
|
|
113
|
+
roles: [roleSlug],
|
|
114
|
+
config: { model },
|
|
115
|
+
provisionCredential: true,
|
|
116
|
+
credentialProjectId: projectId,
|
|
117
|
+
}],
|
|
118
|
+
}));
|
|
119
|
+
const agentResult = data.agents?.[0];
|
|
120
|
+
const credStatus = agentResult?.credential?.status;
|
|
121
|
+
let detail = `'${agentName}' registered (id=${agentResult?.member_id ?? 'unknown'})`;
|
|
122
|
+
if (credStatus === 'minted' && agentResult?.credential?.rawKey) {
|
|
123
|
+
detail += `\n ${chalk.yellow('⚠ API Key (save now — shown once): ' + agentResult.credential.rawKey)}`;
|
|
124
|
+
detail += `\n Key ID: ${agentResult.credential?.apiKeyId ?? 'unknown'}`;
|
|
125
|
+
}
|
|
126
|
+
else if (credStatus === 'exists') {
|
|
127
|
+
detail += ' — credential already provisioned (use --force-rotate to rotate)';
|
|
128
|
+
}
|
|
129
|
+
statuses.push({ layer: 1, label: 'agent member + credential', action: '+', detail });
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch (err) {
|
|
133
|
+
statuses.push({ layer: 1, label: 'agent member + credential', action: '!', detail: `Error: ${err?.message ?? String(err)}` });
|
|
134
|
+
printLayer(statuses[statuses.length - 1]);
|
|
135
|
+
console.error(chalk.red('Layer 1 failed — cannot continue.'));
|
|
136
|
+
process.exit(1);
|
|
137
|
+
}
|
|
138
|
+
printLayer(statuses[statuses.length - 1]);
|
|
139
|
+
}
|
|
140
|
+
// ── Layer 2 — .fazemos/roles.json + roles sync ────────────────────────────
|
|
141
|
+
const localRegistry = findLocalRegistry(process.cwd());
|
|
142
|
+
if (!localRegistry) {
|
|
143
|
+
const s = { layer: 2, label: 'roles.json entry + role_registration', action: '!', detail: 'No .fazemos/roles.json found in cwd or any parent. Run from inside a workspace repo.' };
|
|
144
|
+
statuses.push(s);
|
|
145
|
+
printLayer(s);
|
|
146
|
+
console.error(chalk.red('Layer 2 failed — cannot continue.'));
|
|
147
|
+
process.exit(1);
|
|
148
|
+
}
|
|
149
|
+
{
|
|
150
|
+
let lookupData = null;
|
|
151
|
+
try {
|
|
152
|
+
const lookupParams = new URLSearchParams({
|
|
153
|
+
workspace: localRegistry.workspace,
|
|
154
|
+
role_slug: roleSlug,
|
|
155
|
+
org_id: orgId,
|
|
156
|
+
});
|
|
157
|
+
lookupData = (await api('GET', `/api/role-registrations/lookup?${lookupParams.toString()}`, undefined, { noProjectHeader: true }));
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
const status = err?.status ?? 0;
|
|
161
|
+
if (status === 404) {
|
|
162
|
+
console.error(chalk.red(`Layer 2 aborted — rul_f53_provision_never_clobbers_binding:\n` +
|
|
163
|
+
` The lookup endpoint (GET /api/role-registrations/lookup) is not deployed on env '${envName}'.\n` +
|
|
164
|
+
` Provision cannot verify the existing binding and will not risk a clobber.\n` +
|
|
165
|
+
` Deploy fazemos-api to '${envName}' first, then retry.`));
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
console.error(chalk.red(`Layer 2 aborted — rul_f53_provision_never_clobbers_binding:\n` +
|
|
169
|
+
` Binding could not be verified (API error: ${err?.message ?? String(err)}) — sync not attempted.\n` +
|
|
170
|
+
` Resolve the API error and retry.`));
|
|
171
|
+
}
|
|
172
|
+
if (opts.dryRun) {
|
|
173
|
+
console.error(chalk.yellow(' [DRY RUN] Would abort here — binding verification failed; sync would not be attempted.'));
|
|
174
|
+
}
|
|
175
|
+
process.exit(1);
|
|
176
|
+
}
|
|
177
|
+
// Evaluate the lookup result for binding conflicts
|
|
178
|
+
const reg = lookupData?.registration;
|
|
179
|
+
if (lookupData?.found && reg && reg.active) {
|
|
180
|
+
const sameOrg = reg.org_id === orgId;
|
|
181
|
+
const sameProject = reg.project_id === projectId;
|
|
182
|
+
if (!sameOrg || !sameProject) {
|
|
183
|
+
console.error(chalk.red(`${opts.dryRun ? '[DRY RUN] Would abort — ' : 'Layer 2 aborted — '}` +
|
|
184
|
+
`rul_f53_provision_never_clobbers_binding:\n` +
|
|
185
|
+
` role_registrations row for (workspace='${localRegistry.workspace}', role_slug='${roleSlug}') ` +
|
|
186
|
+
`is already bound to org=${reg.org_slug}, project=${reg.project_slug ?? 'null'}.\n` +
|
|
187
|
+
` Running roles sync from '${projectSlug}' would clobber this binding via UNIQUE upsert.\n` +
|
|
188
|
+
` See ROLE-REGISTRY-PROJECT-ADDRESSABILITY. Provision aborted.`));
|
|
189
|
+
process.exit(1);
|
|
190
|
+
}
|
|
191
|
+
// r3 penta-state: check resolver_ambiguous / resolver_mismatch
|
|
192
|
+
const candidates = lookupData.resolver_candidates ?? null;
|
|
193
|
+
if (candidates !== null && candidates.length > 1) {
|
|
194
|
+
console.error(chalk.red(`${opts.dryRun ? '[DRY RUN] Would abort — ' : 'Layer 2 aborted — '}` +
|
|
195
|
+
`resolver_ambiguous:\n` +
|
|
196
|
+
` ${candidates.length} active rows for (role_slug='${roleSlug}', org_id=${orgSlug}).\n` +
|
|
197
|
+
` Running roles sync would create or re-point a row in an ambiguous resolver state.\n` +
|
|
198
|
+
` See ROLE-REGISTRY-PROJECT-ADDRESSABILITY Stage 1 + Stage 0. Provision aborted.`));
|
|
199
|
+
process.exit(1);
|
|
200
|
+
}
|
|
201
|
+
if (candidates !== null && candidates.length === 1 && reg && candidates[0].id !== reg.id) {
|
|
202
|
+
console.error(chalk.red(`${opts.dryRun ? '[DRY RUN] Would abort — ' : 'Layer 2 aborted — '}` +
|
|
203
|
+
`resolver_mismatch:\n` +
|
|
204
|
+
` Schema-key row id=${reg.id} ≠ resolver-candidate row id=${candidates[0].id}.\n` +
|
|
205
|
+
` See ROLE-REGISTRY-PROJECT-ADDRESSABILITY. Provision aborted.`));
|
|
206
|
+
process.exit(1);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// Update/add the role entry in roles.json
|
|
211
|
+
if (opts.dryRun) {
|
|
212
|
+
const hasEntry = !!localRegistry.roles[roleSlug];
|
|
213
|
+
statuses.push({
|
|
214
|
+
layer: 2,
|
|
215
|
+
label: 'roles.json entry + role_registration',
|
|
216
|
+
action: '?',
|
|
217
|
+
detail: hasEntry
|
|
218
|
+
? `roles.json already has '${roleSlug}' — would verify filler.identity matches '${agentName}'`
|
|
219
|
+
: `would add '${roleSlug}' to roles.json with filler.identity='${agentName}'`,
|
|
220
|
+
});
|
|
221
|
+
printLayer(statuses[statuses.length - 1]);
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
const existingEntry = localRegistry.roles[roleSlug];
|
|
225
|
+
if (!existingEntry) {
|
|
226
|
+
// Add new entry
|
|
227
|
+
const registryPath = localRegistry._registryPath;
|
|
228
|
+
const raw = JSON.parse(readFileSync(registryPath, 'utf-8'));
|
|
229
|
+
raw.roles = raw.roles ?? {};
|
|
230
|
+
// Derive conventional paths
|
|
231
|
+
const roleDir = `projects/${projectSlug}/roles/${roleSlug}`;
|
|
232
|
+
raw.roles[roleSlug] = {
|
|
233
|
+
filler: { type: 'agent', identity: agentName },
|
|
234
|
+
subagent: agentName,
|
|
235
|
+
inbox: `${roleDir}/inbox/`,
|
|
236
|
+
briefs: `${roleDir}/briefs/`,
|
|
237
|
+
persona: `projects/${projectSlug}/roles/${roleSlug}.md`,
|
|
238
|
+
scope: 'project',
|
|
239
|
+
};
|
|
240
|
+
writeFileSync(registryPath, JSON.stringify(raw, null, 2) + '\n', 'utf-8');
|
|
241
|
+
statuses.push({ layer: 2, label: 'roles.json entry', action: '+', detail: `Added '${roleSlug}' to ${registryPath}` });
|
|
242
|
+
}
|
|
243
|
+
else if (existingEntry.filler?.identity !== agentName) {
|
|
244
|
+
// Update filler.identity
|
|
245
|
+
const registryPath = localRegistry._registryPath;
|
|
246
|
+
const raw = JSON.parse(readFileSync(registryPath, 'utf-8'));
|
|
247
|
+
raw.roles[roleSlug].filler.identity = agentName;
|
|
248
|
+
raw.roles[roleSlug].subagent = agentName;
|
|
249
|
+
writeFileSync(registryPath, JSON.stringify(raw, null, 2) + '\n', 'utf-8');
|
|
250
|
+
statuses.push({ layer: 2, label: 'roles.json entry', action: '+', detail: `Updated '${roleSlug}' filler.identity to '${agentName}'` });
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
statuses.push({ layer: 2, label: 'roles.json entry', action: '=', detail: `'${roleSlug}' already in roles.json with filler='${agentName}'` });
|
|
254
|
+
}
|
|
255
|
+
printLayer(statuses[statuses.length - 1]);
|
|
256
|
+
// Re-load registry (file may have been updated)
|
|
257
|
+
const updatedRegistry = findLocalRegistry(process.cwd());
|
|
258
|
+
if (!updatedRegistry) {
|
|
259
|
+
console.error(chalk.red('Could not reload registry after update.'));
|
|
260
|
+
process.exit(1);
|
|
261
|
+
}
|
|
262
|
+
// roles sync
|
|
263
|
+
try {
|
|
264
|
+
const payload = buildRolesSyncPayload(updatedRegistry, orgId, projectId);
|
|
265
|
+
const result = (await api('POST', '/api/role-registrations/sync', payload, { noProjectHeader: true }));
|
|
266
|
+
const failures = result.errors ?? [];
|
|
267
|
+
if (failures.length > 0) {
|
|
268
|
+
statuses.push({ layer: 2, label: 'role_registration sync', action: '!', detail: failures.map((e) => `${e.role_slug}: ${e.reason}`).join(', ') });
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
statuses.push({ layer: 2, label: 'role_registration sync', action: '+', detail: `${result.synced} registration(s) upserted` });
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
catch (err) {
|
|
275
|
+
statuses.push({ layer: 2, label: 'role_registration sync', action: '!', detail: `Sync error: ${err?.message ?? String(err)}` });
|
|
276
|
+
}
|
|
277
|
+
printLayer(statuses[statuses.length - 1]);
|
|
278
|
+
}
|
|
279
|
+
// ── Layer 3 — verify-and-instruct (NEVER scaffold) ───────────────────────
|
|
280
|
+
// Reload registry for the latest state
|
|
281
|
+
const latestRegistry = findLocalRegistry(process.cwd());
|
|
282
|
+
const roleEntry = latestRegistry?.roles[roleSlug];
|
|
283
|
+
const roleDir = roleEntry?.inbox
|
|
284
|
+
? roleEntry.inbox.replace(/\/+$/, '').replace(/\/inbox$/, '')
|
|
285
|
+
: `projects/${projectSlug}/roles/${roleSlug}`;
|
|
286
|
+
const playbookPath = `${roleDir}/playbook-task.md`;
|
|
287
|
+
if (opts.dryRun) {
|
|
288
|
+
// 3a: describe the effective persona API check (per rul_f53_row3a_verifies_effective_persona)
|
|
289
|
+
statuses.push({
|
|
290
|
+
layer: 3, label: '3a persona (effective)', action: '?',
|
|
291
|
+
detail: `would verify effective persona for '${agentName}' via GET /api/agents/:name ` +
|
|
292
|
+
`(non-empty systemPrompt check — not file presence; per rul_f53_row3a_verifies_effective_persona)`,
|
|
293
|
+
});
|
|
294
|
+
statuses.push({ layer: 3, label: '3b playbook', action: '?', detail: `would check ${playbookPath} (no scaffold — must be authored manually)` });
|
|
295
|
+
statuses.push({ layer: 3, label: '3c roles.json entry', action: '?', detail: `would check .fazemos/roles.json has '${roleSlug}' with filler` });
|
|
296
|
+
for (const s of statuses.slice(-3))
|
|
297
|
+
printLayer(s);
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
// 3a: effective persona (r3.2 — API check, not file presence)
|
|
301
|
+
// Aligns with rul_f53_row3a_verifies_effective_persona and preflight row3a.
|
|
302
|
+
// Rationale: a docs/agents/<name>.md file may exist but be empty (BUG160), causing the
|
|
303
|
+
// F18 file layer to clobber the DB systemPrompt with "". File presence alone is
|
|
304
|
+
// insufficient — we must check what the agent runtime actually receives.
|
|
305
|
+
try {
|
|
306
|
+
const agentDetail = (await api('GET', `/api/organizations/${orgId}/projects/${projectId}/agents/${encodeURIComponent(agentName)}`, undefined, { noProjectHeader: true }));
|
|
307
|
+
const systemPrompt = agentDetail.agent?.effective_config?.systemPrompt ?? '';
|
|
308
|
+
const trimmed = systemPrompt.trim();
|
|
309
|
+
if (trimmed.length > 0) {
|
|
310
|
+
statuses.push({
|
|
311
|
+
layer: 3, label: '3a persona (effective)', action: '=',
|
|
312
|
+
detail: `effective persona for '${agentName}' is non-empty (${trimmed.length} chars — agent runtime has an operative persona)`,
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
else {
|
|
316
|
+
const hasRoleDoc = agentDetail.agent?.role_doc_path != null;
|
|
317
|
+
const roleDocPath = agentDetail.agent?.role_doc_path;
|
|
318
|
+
statuses.push({
|
|
319
|
+
layer: 3, label: '3a persona (effective)', action: '!',
|
|
320
|
+
detail: hasRoleDoc
|
|
321
|
+
? `EMPTY: effective persona is empty — F18 file at ${roleDocPath} is empty or whitespace-only (BUG160). ` +
|
|
322
|
+
`Delete the file to fall through to the DB systemPrompt, or author non-empty persona content.`
|
|
323
|
+
: `EMPTY: effective persona is empty — author docs/agents/${agentName}.md or set DB systemPrompt via ` +
|
|
324
|
+
`\`fazemos agents update-config\` (BUG161).`,
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
catch (err) {
|
|
329
|
+
const status = err?.status ?? 0;
|
|
330
|
+
if (status === 404) {
|
|
331
|
+
// Agent not visible yet — may have just been created in layer 1
|
|
332
|
+
statuses.push({
|
|
333
|
+
layer: 3, label: '3a persona (effective)', action: '?',
|
|
334
|
+
detail: `Agent '${agentName}' not visible via API yet (404) — layer 1 may have just created it. ` +
|
|
335
|
+
`Re-run preflight once the API reflects the new member.`,
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
statuses.push({
|
|
340
|
+
layer: 3, label: '3a persona (effective)', action: '!',
|
|
341
|
+
detail: `API error checking effective persona (HTTP ${status}): ${err?.message ?? String(err)}`,
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
printLayer(statuses[statuses.length - 1]);
|
|
346
|
+
// 3b: playbook file
|
|
347
|
+
const hasPlaybook = existsSync(pathJoin(latestRegistry?._workspaceRoot ?? process.cwd(), playbookPath)) ||
|
|
348
|
+
existsSync(pathJoin(latestRegistry?._workspaceRoot ?? process.cwd(), `${roleDir}/playbook.md`));
|
|
349
|
+
if (hasPlaybook) {
|
|
350
|
+
statuses.push({ layer: 3, label: '3b playbook', action: '=', detail: `${playbookPath} exists` });
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
statuses.push({
|
|
354
|
+
layer: 3, label: '3b playbook', action: '!',
|
|
355
|
+
detail: `MISSING: ${playbookPath} — must be authored manually (no scaffold). ` +
|
|
356
|
+
`Reference: projects/fazemos/roles/project-manager/playbook-task.md`,
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
printLayer(statuses[statuses.length - 1]);
|
|
360
|
+
// 3c: roles.json entry check (already done above but re-verify after update)
|
|
361
|
+
if (latestRegistry?.roles[roleSlug]?.filler?.identity) {
|
|
362
|
+
statuses.push({ layer: 3, label: '3c roles.json entry', action: '=', detail: `'${roleSlug}' in roles.json with filler='${latestRegistry.roles[roleSlug].filler.identity}'` });
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
statuses.push({ layer: 3, label: '3c roles.json entry', action: '!', detail: `'${roleSlug}' not found or incomplete in .fazemos/roles.json` });
|
|
366
|
+
}
|
|
367
|
+
printLayer(statuses[statuses.length - 1]);
|
|
368
|
+
}
|
|
369
|
+
if (!opts.json && !opts.dryRun) {
|
|
370
|
+
console.log('');
|
|
371
|
+
console.log(chalk.cyan('Running preflight to show remaining gaps (layers 4–6)...\n'));
|
|
372
|
+
}
|
|
373
|
+
// ── Run preflight at the end ───────────────────────────────────────────────
|
|
374
|
+
if (!opts.dryRun) {
|
|
375
|
+
const exitCode = await runPreflight(`${orgSlug}/${projectSlug}/${roleSlug}`, {
|
|
376
|
+
json: opts.json,
|
|
377
|
+
region: opts.region,
|
|
378
|
+
});
|
|
379
|
+
process.exit(exitCode);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
//# sourceMappingURL=provision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provision.js","sourceRoot":"","sources":["../../src/commands/provision.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -30,6 +30,9 @@ import { registerProfilesCommands } from './commands/profiles.js';
|
|
|
30
30
|
import { registerImageCommands } from './commands/image.js';
|
|
31
31
|
import { registerIngestCommands } from './commands/ingest.js';
|
|
32
32
|
import { registerAssetCommands } from './commands/asset/index.js';
|
|
33
|
+
// F53 — Agent Provisioning Tooling
|
|
34
|
+
import { runPreflight } from './commands/preflight.js';
|
|
35
|
+
import { runProvision } from './commands/provision.js';
|
|
33
36
|
import { parseExecutionsJson, resolveWaitOptions, waitForPipelines, buildAwsCommand, validateExecutionEntry, } from './wait-for-pipeline.js';
|
|
34
37
|
import { readFileSync, readdirSync, writeFileSync, mkdirSync, existsSync, statSync } from 'fs';
|
|
35
38
|
import { fileURLToPath } from 'url';
|
|
@@ -7452,6 +7455,24 @@ agentsCmd
|
|
|
7452
7455
|
console.log(chalk.gray(` Audit: ${a.auditLogId}`));
|
|
7453
7456
|
}
|
|
7454
7457
|
}
|
|
7458
|
+
// F53 — next-step hint (additive; pre-existing success lines above stay byte-identical)
|
|
7459
|
+
// Suppressed under --json (AC4 rule: rul_f53_hint_text_additive_only).
|
|
7460
|
+
if (!opts.json) {
|
|
7461
|
+
const orgId = getActiveOrgId();
|
|
7462
|
+
const orgSlug = orgId ? (findOrgById(orgId)?.slug ?? null) : null;
|
|
7463
|
+
const roleSlug = opts.roles?.[0] ?? opts.name;
|
|
7464
|
+
const projectSlug = credentialProjectId
|
|
7465
|
+
? (orgId ? (findProjectById(orgId, credentialProjectId)?.slug ?? null) : null)
|
|
7466
|
+
: null;
|
|
7467
|
+
console.log('');
|
|
7468
|
+
console.log(chalk.gray(' Not autonomous yet — layers 2–6 remain.'));
|
|
7469
|
+
if (orgSlug && projectSlug && roleSlug) {
|
|
7470
|
+
console.log(chalk.gray(` Next: fazemos agents preflight ${orgSlug}/${projectSlug}/${roleSlug}`));
|
|
7471
|
+
}
|
|
7472
|
+
else {
|
|
7473
|
+
console.log(chalk.gray(` Next: fazemos agents preflight <org>/<project>/${roleSlug}`));
|
|
7474
|
+
}
|
|
7475
|
+
}
|
|
7455
7476
|
}
|
|
7456
7477
|
catch (err) {
|
|
7457
7478
|
if (opts.json) {
|
|
@@ -7476,6 +7497,59 @@ agentsCmd
|
|
|
7476
7497
|
process.exit(1);
|
|
7477
7498
|
}
|
|
7478
7499
|
});
|
|
7500
|
+
// ── F53 — `agents preflight` ────────────────────────────────────────────────
|
|
7501
|
+
// 6-row PASS/FAIL/SKIP/XWS_DEFERRED verifier for agent provisioning state.
|
|
7502
|
+
// Exit codes: 0=all clear, 1=FAIL, 2=tooling-error, 3=XWS_DEFERRED (INCOMPLETE).
|
|
7503
|
+
// Target forms: <org>/<project>/<role>, <org>/<project>, <org>/<role>.
|
|
7504
|
+
// Spec: projects/fazemos/specs/tech/platform/F53-agent-provision-tooling-tech-spec.md
|
|
7505
|
+
agentsCmd
|
|
7506
|
+
.command('preflight')
|
|
7507
|
+
.description('Verify agent provisioning state: 6-row PASS/FAIL/SKIP verifier with fix commands.\n' +
|
|
7508
|
+
'Target: <org>/<project>/<role> | <org>/<project> (all roles) | <org>/<role> (all projects)\n' +
|
|
7509
|
+
'Exit codes: 0=all clear, 1=FAIL, 2=tooling-error, 3=XWS_DEFERRED (cross-workspace unverified)')
|
|
7510
|
+
.argument('<target>', 'org/project/role, org/project (fan-out roles), or org/role (fan-out projects)')
|
|
7511
|
+
.option('--json', 'Emit stable JSON instead of human-readable output (schema_version 1.0)')
|
|
7512
|
+
.option('--workspace <path>', 'Path to workspace root containing .fazemos/roles.json (defaults to nearest ancestor)')
|
|
7513
|
+
.option('--region <region>', 'AWS region for SSM/Lambda checks (reads AWS_REGION env var by default)')
|
|
7514
|
+
.action(async (target, opts) => {
|
|
7515
|
+
try {
|
|
7516
|
+
const exitCode = await runPreflight(target, opts);
|
|
7517
|
+
process.exit(exitCode);
|
|
7518
|
+
}
|
|
7519
|
+
catch (err) {
|
|
7520
|
+
if (opts.json) {
|
|
7521
|
+
process.stdout.write(JSON.stringify({ schema_version: '1.0', target, exit_code: 2, error: err?.message ?? String(err) }) + '\n');
|
|
7522
|
+
}
|
|
7523
|
+
else {
|
|
7524
|
+
console.error(chalk.red(`⚠ TOOLING-ERROR: ${err?.message ?? String(err)}`));
|
|
7525
|
+
}
|
|
7526
|
+
process.exit(2);
|
|
7527
|
+
}
|
|
7528
|
+
});
|
|
7529
|
+
// ── F53 — `agents provision` ────────────────────────────────────────────────
|
|
7530
|
+
// Idempotent composite of provisioning layers 1–3, then runs preflight.
|
|
7531
|
+
// Non-interactive one-shot; --dry-run is the safety valve (no --yes flag, Ollie A1).
|
|
7532
|
+
// Spec: projects/fazemos/specs/tech/platform/F53-agent-provision-tooling-tech-spec.md
|
|
7533
|
+
agentsCmd
|
|
7534
|
+
.command('provision')
|
|
7535
|
+
.description('Idempotent provisioning of layers 1–3 for an agent role, then runs preflight.\n' +
|
|
7536
|
+
'Layer 1: agents register. Layer 2: roles.json + roles sync. Layer 3: verify-and-instruct (no scaffold).\n' +
|
|
7537
|
+
'Non-interactive. Use --dry-run to preview without writing.')
|
|
7538
|
+
.argument('<target>', 'org/project/role to provision')
|
|
7539
|
+
.requiredOption('--name <agent>', 'Agent display name')
|
|
7540
|
+
.requiredOption('--model <model>', 'Model (e.g., sonnet, opus, haiku)')
|
|
7541
|
+
.option('--dry-run', 'Preview what would be done without making changes')
|
|
7542
|
+
.option('--json', 'Suppress human output; preflight result is emitted as JSON')
|
|
7543
|
+
.option('--region <region>', 'AWS region for SSM/Lambda checks in the final preflight run')
|
|
7544
|
+
.action(async (target, opts) => {
|
|
7545
|
+
try {
|
|
7546
|
+
await runProvision(target, opts);
|
|
7547
|
+
}
|
|
7548
|
+
catch (err) {
|
|
7549
|
+
console.error(chalk.red(`provision error: ${err?.message ?? String(err)}`));
|
|
7550
|
+
process.exit(1);
|
|
7551
|
+
}
|
|
7552
|
+
});
|
|
7479
7553
|
// ── F17 — Project-scoped agents ─────────────────────────────────
|
|
7480
7554
|
// `agents list` / `agents show` become Project-scoped by default. The
|
|
7481
7555
|
// pre-F17 Org-level list is still reachable via `--org-only`. Execution
|
|
@@ -10409,6 +10483,19 @@ Run after editing roles.json to sync inbox access to the API.`)
|
|
|
10409
10483
|
console.log(` ${chalk.cyan(slug)}`);
|
|
10410
10484
|
}
|
|
10411
10485
|
}
|
|
10486
|
+
// F53 — next-step hint (additive; the success line above stays byte-identical)
|
|
10487
|
+
// Suppressed under --dry-run (opts.dryRun returns early above; this only runs on real sync).
|
|
10488
|
+
// The org/project come from the local registry that was just synced.
|
|
10489
|
+
const hintOrgSlug = localRegistry.org;
|
|
10490
|
+
const hintProjectSlug = localRegistry.project ?? null;
|
|
10491
|
+
console.log('');
|
|
10492
|
+
console.log(chalk.gray(` Not autonomous yet — layers 3–6 remain for each role.`));
|
|
10493
|
+
if (hintOrgSlug && hintProjectSlug) {
|
|
10494
|
+
console.log(chalk.gray(` Next: fazemos agents preflight ${hintOrgSlug}/${hintProjectSlug}`));
|
|
10495
|
+
}
|
|
10496
|
+
else if (hintOrgSlug) {
|
|
10497
|
+
console.log(chalk.gray(` Next: fazemos agents preflight ${hintOrgSlug}/<project>`));
|
|
10498
|
+
}
|
|
10412
10499
|
}
|
|
10413
10500
|
catch (err) {
|
|
10414
10501
|
console.error(chalk.red(err instanceof Error ? err.message : String(err)));
|