@cluesmith/codev 2.1.0-rc.2 → 2.1.1
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/dashboard/dist/assets/index-Bq-vJ9_0.js +194 -0
- package/dashboard/dist/assets/index-Bq-vJ9_0.js.map +1 -0
- package/dashboard/dist/assets/index-CXX5mK4v.css +32 -0
- package/dashboard/dist/index.html +2 -2
- package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
- package/dist/agent-farm/commands/cleanup.js +20 -4
- package/dist/agent-farm/commands/cleanup.js.map +1 -1
- package/dist/agent-farm/commands/open.d.ts.map +1 -1
- package/dist/agent-farm/commands/open.js +11 -4
- package/dist/agent-farm/commands/open.js.map +1 -1
- package/dist/agent-farm/servers/analytics.d.ts +12 -19
- package/dist/agent-farm/servers/analytics.d.ts.map +1 -1
- package/dist/agent-farm/servers/analytics.js +110 -70
- package/dist/agent-farm/servers/analytics.js.map +1 -1
- package/dist/agent-farm/servers/tower-cron.js +4 -2
- package/dist/agent-farm/servers/tower-cron.js.map +1 -1
- package/dist/agent-farm/servers/tower-routes.d.ts.map +1 -1
- package/dist/agent-farm/servers/tower-routes.js +17 -14
- package/dist/agent-farm/servers/tower-routes.js.map +1 -1
- package/dist/commands/consult/index.d.ts +21 -1
- package/dist/commands/consult/index.d.ts.map +1 -1
- package/dist/commands/consult/index.js +49 -7
- package/dist/commands/consult/index.js.map +1 -1
- package/dist/commands/consult/metrics.d.ts +1 -0
- package/dist/commands/consult/metrics.d.ts.map +1 -1
- package/dist/commands/consult/metrics.js +8 -0
- package/dist/commands/consult/metrics.js.map +1 -1
- package/dist/commands/porch/next.d.ts.map +1 -1
- package/dist/commands/porch/next.js +16 -3
- package/dist/commands/porch/next.js.map +1 -1
- package/dist/lib/github.d.ts +13 -0
- package/dist/lib/github.d.ts.map +1 -1
- package/dist/lib/github.js +69 -1
- package/dist/lib/github.js.map +1 -1
- package/package.json +1 -1
- package/skeleton/.claude/skills/af/SKILL.md +10 -4
- package/skeleton/resources/commands/agent-farm.md +32 -11
- package/skeleton/roles/architect.md +35 -18
- package/templates/open.html +37 -6
- package/dashboard/dist/assets/index-CALp-XEo.js +0 -197
- package/dashboard/dist/assets/index-CALp-XEo.js.map +0 -1
- package/dashboard/dist/assets/index-MVvud9Tr.css +0 -32
package/dist/lib/github.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAoC1C,gFAAgF;AAChF,wCAAwC;AACxC,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAmB;IACxD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;YAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;YACpC,QAAQ,EAAE,2BAA2B;SACtC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,WAAmB;IAC/D,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,0BAA0B,WAAW,mDAAmD,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAY;IAC5C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;YAC3C,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,gDAAgD;SAC3D,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,oCAAoC,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAY;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;YAC3C,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,mCAAmC;YAC7C,SAAS,EAAE,KAAK;SACjB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,uCAAuC,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAY;IACpD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;YAC3C,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,4CAA4C;YACtD,SAAS,EAAE,IAAI;SAChB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACZ,MAAM,MAAM,GAA0B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzD,0BAA0B;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAChD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,CAAC;IACpF,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,4CAA4C,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAY;IACrD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;YAC3C,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,0CAA0C;YACpD,SAAS,EAAE,IAAI;SAChB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACZ,MAAM,GAAG,GAAe,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,0BAA0B;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAChD,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,CAAC;IACpF,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,uCAAuC,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAuBD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAoB,EAAE,GAAY;IACrE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,kDAAkD;YAC5D,SAAS,EAAE,MAAM;SAClB,CAAC;QACF,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,uCAAuC,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAoB,EAAE,GAAY;IACxE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,wCAAwC;YAClD,SAAS,EAAE,MAAM;SAClB,CAAC;QACF,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,0CAA0C,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,YAAsB,EACtB,GAAY;IAEZ,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAE7C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IAE1C,wCAAwC;IACxC,IAAI,KAAa,CAAC;IAClB,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;YAC3C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY;SACvC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACzB,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,CAAC,wCAAwC;IACzD,CAAC;IAED,MAAM,UAAU,GAAG,EAAE,CAAC;IAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;QAE9C,oDAAoD;QACpD,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACvC,QAAQ,GAAG,mBAAmB,GAAG,wDAAwD,CAC1F,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEjB,MAAM,KAAK,GAAG;;MAEZ,cAAc;;EAElB,CAAC;QAEC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;gBAC3C,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,SAAS,KAAK,EAAE;gBACtB,IAAI,EAAE,SAAS,KAAK,EAAE;gBACtB,IAAI,EAAE,QAAQ,QAAQ,EAAE;aACzB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAEZ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;YACvC,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAExB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;gBAC1C,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK;oBAAE,SAAS;gBAE1C,MAAM,WAAW,GAAI,SAAS,CAAC,QAAQ,CAAC,KAAoD;qBACzF,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC1C,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,OAAe;IAC9D,4CAA4C;IAC5C,MAAM,qBAAqB,GAAG,kDAAkD,CAAC;IACjF,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACtD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,sDAAsD;IACtD,MAAM,WAAW,GAAG,qBAAqB,CAAC;IAC1C,MAAM,aAAa,GAAG,uBAAuB,CAAC;IAE9C,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACtD,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,oCAAoC;IACpC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACpD,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,OAAe;IAClE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,QAAQ,GAAG,GAAG,OAAO,KAAK,MAAM,EAAE,CAAC;IAEzC,mCAAmC;IACnC,MAAM,cAAc,GAAG,mDAAmD,CAAC;IAC3E,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,4CAA4C;IAC5C,MAAM,WAAW,GAAG,sBAAsB,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,aAAa,GAAG,wBAAwB,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;AACrB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,qEAAqE;AACrE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AAE9D,iGAAiG;AACjG,MAAM,kBAAkB,GAAG,mEAAmE,CAAC;AAE/F,MAAM,UAAU,kBAAkB,CAChC,MAA+B,EAC/B,KAAc;IAKd,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEtC,MAAM,UAAU,GAAG,KAAK;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACpB,IAAI,EAAE,CAAC;IAEV,iFAAiF;IACjF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,8CAA8C;IAC9C,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,GAAG,KAAK,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,CAAC;IAED,MAAM,cAAc,GAAG,KAAK;SACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACpB,IAAI,EAAE,CAAC;IAEV,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,QAAQ;KACxC,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -103,14 +103,20 @@ Edit `af-config.json` at project root to customize shell commands.
|
|
|
103
103
|
|
|
104
104
|
## Pre-Spawn Checklist
|
|
105
105
|
|
|
106
|
-
**Before `af spawn
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
106
|
+
**Before every `af spawn`:**
|
|
107
|
+
|
|
108
|
+
1. **`git status`** — Check for uncommitted changes
|
|
109
|
+
2. **Commit if dirty** — Builders branch from HEAD; uncommitted specs/plans are invisible
|
|
110
|
+
3. **Include `--protocol`** — It is **REQUIRED** for all numbered spawns (e.g., `af spawn 42 --protocol spir`)
|
|
111
|
+
|
|
112
|
+
The spawn command will refuse if the worktree is dirty (override with `--force`,
|
|
113
|
+
but the builder won't see uncommitted files).
|
|
110
114
|
|
|
111
115
|
## Common Mistakes
|
|
112
116
|
|
|
117
|
+
- **Forgetting `--protocol`** — `af spawn 42` fails; use `af spawn 42 --protocol spir` (or bugfix, tick, etc.)
|
|
113
118
|
- **Spawning with uncommitted changes** — builder won't see specs, plans, or codev updates
|
|
119
|
+
- **Running `git pull` after spawn failure** — Usually unnecessary; check `git status` first, commit, then retry
|
|
114
120
|
- There is NO `codev tower` command — Tower is managed via `af tower`
|
|
115
121
|
- There is NO `restart` subcommand — stop then start
|
|
116
122
|
- There is NO `af start` for Tower — use `af tower start` or `af workspace start`
|
|
@@ -146,20 +146,30 @@ Does NOT clean up worktrees - use `af cleanup` for that.
|
|
|
146
146
|
Spawn a new builder.
|
|
147
147
|
|
|
148
148
|
```bash
|
|
149
|
-
af spawn [issue-number] [options]
|
|
149
|
+
af spawn [issue-number] --protocol <name> [options]
|
|
150
150
|
```
|
|
151
151
|
|
|
152
152
|
**Arguments:**
|
|
153
153
|
- `issue-number` - Issue number to build (positional, e.g., `42`)
|
|
154
154
|
|
|
155
|
+
**Required:**
|
|
156
|
+
- `--protocol <name>` - Protocol to use: spir, bugfix, tick, maintain, experiment. **REQUIRED** for all numbered spawns. Only `--task`, `--shell`, and `--worktree` spawns skip this flag.
|
|
157
|
+
|
|
155
158
|
**Options:**
|
|
156
|
-
- `--task <text>` - Spawn builder with a task description
|
|
157
|
-
- `--
|
|
158
|
-
- `--
|
|
159
|
-
- `--worktree` - Spawn worktree session
|
|
159
|
+
- `--task <text>` - Spawn builder with a task description (no `--protocol` needed)
|
|
160
|
+
- `--shell` - Spawn a bare Claude session (no `--protocol` needed)
|
|
161
|
+
- `--worktree` - Spawn worktree session (no `--protocol` needed)
|
|
160
162
|
- `--files <files>` - Context files (comma-separated)
|
|
161
163
|
- `--no-role` - Skip loading role prompt
|
|
162
164
|
|
|
165
|
+
**Preconditions:**
|
|
166
|
+
|
|
167
|
+
The spawn command requires a **clean git worktree**. Before spawning:
|
|
168
|
+
|
|
169
|
+
1. Run `git status` to check for uncommitted changes
|
|
170
|
+
2. Commit any pending changes — builders branch from HEAD, so uncommitted specs/plans are invisible to the builder
|
|
171
|
+
3. The command will refuse to spawn if the worktree is dirty (override with `--force`, but the builder won't see your uncommitted files)
|
|
172
|
+
|
|
163
173
|
**Description:**
|
|
164
174
|
|
|
165
175
|
Creates a new builder in an isolated git worktree. The builder gets:
|
|
@@ -170,19 +180,30 @@ Creates a new builder in an isolated git worktree. The builder gets:
|
|
|
170
180
|
**Examples:**
|
|
171
181
|
|
|
172
182
|
```bash
|
|
173
|
-
# Spawn builder for issue #42
|
|
174
|
-
af spawn 42
|
|
183
|
+
# Spawn builder for issue #42 — --protocol is REQUIRED
|
|
184
|
+
af spawn 42 --protocol spir
|
|
175
185
|
|
|
176
|
-
# Spawn
|
|
186
|
+
# Spawn builder for a bugfix
|
|
187
|
+
af spawn 42 --protocol bugfix
|
|
188
|
+
|
|
189
|
+
# Spawn with task description (no --protocol needed)
|
|
177
190
|
af spawn --task "Fix login bug in auth module"
|
|
178
191
|
|
|
179
|
-
# Spawn bare Claude session
|
|
192
|
+
# Spawn bare Claude session (no --protocol needed)
|
|
180
193
|
af spawn --shell
|
|
181
194
|
|
|
182
195
|
# Spawn with context files
|
|
183
|
-
af spawn 42 --files "src/auth.ts,tests/auth.test.ts"
|
|
196
|
+
af spawn 42 --protocol spir --files "src/auth.ts,tests/auth.test.ts"
|
|
184
197
|
```
|
|
185
198
|
|
|
199
|
+
**Common Errors:**
|
|
200
|
+
|
|
201
|
+
| Error | Cause | Fix |
|
|
202
|
+
|-------|-------|-----|
|
|
203
|
+
| "Missing required flag: --protocol" | Forgot `--protocol` | Add `--protocol spir` (or bugfix, tick, etc.) |
|
|
204
|
+
| "Dirty worktree" | Uncommitted changes | Run `git status`, commit changes, retry |
|
|
205
|
+
| "Builder already exists" | Worktree collision | Use `--resume` to resume, or `af cleanup` first |
|
|
206
|
+
|
|
186
207
|
---
|
|
187
208
|
|
|
188
209
|
### af status
|
|
@@ -532,7 +553,7 @@ Or override via CLI flags:
|
|
|
532
553
|
|
|
533
554
|
```bash
|
|
534
555
|
af workspace start --architect-cmd "claude --model opus"
|
|
535
|
-
af spawn 42 --builder-cmd "claude --model haiku"
|
|
556
|
+
af spawn 42 --protocol spir --builder-cmd "claude --model haiku"
|
|
536
557
|
```
|
|
537
558
|
|
|
538
559
|
---
|
|
@@ -16,30 +16,42 @@ Builders work autonomously in isolated git worktrees. The Architect:
|
|
|
16
16
|
|
|
17
17
|
| Mode | Command | Use When |
|
|
18
18
|
|------|---------|----------|
|
|
19
|
-
| **Strict** (default) | `af spawn XXXX` | Porch orchestrates - runs autonomously to completion |
|
|
20
|
-
| **Soft** | `af spawn XXXX --soft` | AI follows protocol - you verify compliance |
|
|
19
|
+
| **Strict** (default) | `af spawn XXXX --protocol spir` | Porch orchestrates - runs autonomously to completion |
|
|
20
|
+
| **Soft** | `af spawn XXXX --protocol spir --soft` | AI follows protocol - you verify compliance |
|
|
21
21
|
|
|
22
22
|
**Strict mode** (default): Porch orchestrates the builder with automated gates, 3-way consultations, and enforced phase transitions. More likely to complete autonomously without intervention.
|
|
23
23
|
|
|
24
24
|
**Soft mode**: Builder reads and follows the protocol document, but you monitor progress and verify the AI is adhering to the protocol correctly. Use when you want more hands-on oversight.
|
|
25
25
|
|
|
26
|
+
### Pre-Spawn Checklist
|
|
27
|
+
|
|
28
|
+
**Before every `af spawn`, complete these steps:**
|
|
29
|
+
|
|
30
|
+
1. **`git status`** — Ensure worktree is clean (no uncommitted changes)
|
|
31
|
+
2. **Commit if needed** — Builders branch from HEAD; uncommitted specs/plans are invisible
|
|
32
|
+
3. **`af spawn N --protocol <name>`** — `--protocol` is **REQUIRED** (spir, bugfix, tick, etc.)
|
|
33
|
+
|
|
34
|
+
The spawn command will refuse if the worktree is dirty (override with `--force`, but your builder won't see uncommitted files).
|
|
35
|
+
|
|
26
36
|
## Key Tools
|
|
27
37
|
|
|
28
38
|
### Agent Farm CLI (`af`)
|
|
29
39
|
|
|
30
40
|
```bash
|
|
31
|
-
af spawn 1
|
|
32
|
-
af spawn 1 -t "feature"
|
|
33
|
-
af spawn 1 --resume
|
|
34
|
-
af spawn 1 --soft
|
|
35
|
-
af spawn --task "fix the bug"
|
|
36
|
-
af spawn --worktree
|
|
37
|
-
af status
|
|
38
|
-
af cleanup -p 0001
|
|
39
|
-
af workspace start/stop
|
|
40
|
-
af send 0001 "message"
|
|
41
|
+
af spawn 1 --protocol spir # Strict mode (default) - porch-driven
|
|
42
|
+
af spawn 1 --protocol spir -t "feature" # Strict mode with title (no spec yet)
|
|
43
|
+
af spawn 1 --resume # Resume existing porch state
|
|
44
|
+
af spawn 1 --protocol spir --soft # Soft mode - protocol-guided
|
|
45
|
+
af spawn --task "fix the bug" # Ad-hoc task builder (soft mode)
|
|
46
|
+
af spawn --worktree # Worktree with no initial prompt
|
|
47
|
+
af status # Check all builders
|
|
48
|
+
af cleanup -p 0001 # Remove completed builder
|
|
49
|
+
af workspace start/stop # Workspace management
|
|
50
|
+
af send 0001 "message" # Short message to builder
|
|
41
51
|
```
|
|
42
52
|
|
|
53
|
+
> **Note:** `--protocol` is REQUIRED for all numbered spawns. Only `--task`, `--shell`, and `--worktree` spawns skip it.
|
|
54
|
+
|
|
43
55
|
**Note:** `af`, `consult`, `porch`, and `codev` are global commands. They work from any directory.
|
|
44
56
|
|
|
45
57
|
### Porch CLI (for strict mode)
|
|
@@ -79,16 +91,20 @@ wait
|
|
|
79
91
|
|
|
80
92
|
```bash
|
|
81
93
|
# 1. Create a GitHub Issue for the feature
|
|
82
|
-
# 2.
|
|
94
|
+
# 2. Ensure worktree is clean: git status → commit if needed
|
|
95
|
+
# 3. Spawn the builder (--protocol is REQUIRED)
|
|
83
96
|
|
|
84
97
|
# Default: Strict mode (porch-driven with gates)
|
|
85
|
-
af spawn 42
|
|
98
|
+
af spawn 42 --protocol spir
|
|
86
99
|
|
|
87
100
|
# With project title (if no spec exists yet)
|
|
88
|
-
af spawn 42 -t "user-authentication"
|
|
101
|
+
af spawn 42 --protocol spir -t "user-authentication"
|
|
89
102
|
|
|
90
103
|
# Or: Soft mode (builder follows protocol independently)
|
|
91
|
-
af spawn 42 --soft
|
|
104
|
+
af spawn 42 --protocol spir --soft
|
|
105
|
+
|
|
106
|
+
# For bugfixes
|
|
107
|
+
af spawn 42 --protocol bugfix
|
|
92
108
|
```
|
|
93
109
|
|
|
94
110
|
### 2. Approving Gates (Strict Mode Only)
|
|
@@ -266,8 +282,9 @@ Before approving implementations with UX requirements:
|
|
|
266
282
|
|
|
267
283
|
| Task | Command |
|
|
268
284
|
|------|---------|
|
|
269
|
-
| Start feature (strict, default) | `af spawn <id
|
|
270
|
-
| Start feature (soft) | `af spawn <id> --soft` |
|
|
285
|
+
| Start feature (strict, default) | `af spawn <id> --protocol spir` |
|
|
286
|
+
| Start feature (soft) | `af spawn <id> --protocol spir --soft` |
|
|
287
|
+
| Start bugfix | `af spawn <id> --protocol bugfix` |
|
|
271
288
|
| Check all builders | `af status` |
|
|
272
289
|
| Check one project | `porch status <id>` |
|
|
273
290
|
| Approve spec | `porch approve <id> spec-approval` |
|
package/templates/open.html
CHANGED
|
@@ -188,6 +188,13 @@
|
|
|
188
188
|
color: #888;
|
|
189
189
|
}
|
|
190
190
|
|
|
191
|
+
/* HTML Preview Container (iframe) */
|
|
192
|
+
#html-preview-container {
|
|
193
|
+
flex: 1;
|
|
194
|
+
min-height: 0;
|
|
195
|
+
background: #fff;
|
|
196
|
+
}
|
|
197
|
+
|
|
191
198
|
/* Editor container with line numbers */
|
|
192
199
|
#editor-container {
|
|
193
200
|
display: none;
|
|
@@ -476,6 +483,9 @@
|
|
|
476
483
|
<!-- Markdown preview mode -->
|
|
477
484
|
<div id="preview-container" style="display: none; padding: 20px; overflow: auto;"></div>
|
|
478
485
|
|
|
486
|
+
<!-- HTML preview mode (sandboxed iframe) -->
|
|
487
|
+
<iframe id="html-preview-container" sandbox="allow-scripts" style="display: none; width: 100%; border: none;" title="HTML preview"></iframe>
|
|
488
|
+
|
|
479
489
|
<!-- Image viewer mode -->
|
|
480
490
|
<div id="image-viewer">
|
|
481
491
|
<div class="image-controls">
|
|
@@ -585,6 +595,9 @@
|
|
|
585
595
|
// Video viewer state
|
|
586
596
|
const isVideoFile = {{IS_VIDEO}};
|
|
587
597
|
|
|
598
|
+
// HTML preview state
|
|
599
|
+
const isHtmlFile = {{IS_HTML}};
|
|
600
|
+
|
|
588
601
|
// Comment patterns by file extension
|
|
589
602
|
const COMMENT_PATTERNS = {
|
|
590
603
|
js: { prefix: '// REVIEW', regex: /^(\s*)\/\/\s*REVIEW(\(@\w+\))?:\s*(.*)$/ },
|
|
@@ -616,12 +629,13 @@
|
|
|
616
629
|
renderFile();
|
|
617
630
|
updateAnnotationsList();
|
|
618
631
|
initPreviewToggle();
|
|
632
|
+
// HTML files start in annotate mode — user can press Preview to switch
|
|
619
633
|
}
|
|
620
634
|
|
|
621
635
|
// Initialize preview toggle for markdown files
|
|
622
636
|
function initPreviewToggle() {
|
|
623
637
|
const togglePreviewBtn = document.getElementById('togglePreviewBtn');
|
|
624
|
-
if (isMarkdownFile && togglePreviewBtn) {
|
|
638
|
+
if ((isMarkdownFile || isHtmlFile) && togglePreviewBtn) {
|
|
625
639
|
togglePreviewBtn.style.display = 'inline-block';
|
|
626
640
|
togglePreviewBtn.addEventListener('click', togglePreviewMode);
|
|
627
641
|
}
|
|
@@ -844,16 +858,25 @@
|
|
|
844
858
|
|
|
845
859
|
if (isPreviewMode) {
|
|
846
860
|
// Switch to Preview mode: hide viewMode, show preview
|
|
847
|
-
renderPreview();
|
|
848
861
|
viewMode.style.display = 'none';
|
|
849
|
-
|
|
862
|
+
if (isHtmlFile) {
|
|
863
|
+
renderHtmlPreview();
|
|
864
|
+
document.getElementById('html-preview-container').style.display = 'block';
|
|
865
|
+
} else {
|
|
866
|
+
renderPreview();
|
|
867
|
+
previewContainer.style.display = 'block';
|
|
868
|
+
}
|
|
850
869
|
document.body.classList.add('preview-active');
|
|
851
870
|
toggleIcon.textContent = '📝';
|
|
852
871
|
toggleText.textContent = 'Annotate';
|
|
853
872
|
} else {
|
|
854
873
|
// Switch back to annotated view
|
|
855
874
|
viewMode.style.display = 'grid';
|
|
856
|
-
|
|
875
|
+
if (isHtmlFile) {
|
|
876
|
+
document.getElementById('html-preview-container').style.display = 'none';
|
|
877
|
+
} else {
|
|
878
|
+
previewContainer.style.display = 'none';
|
|
879
|
+
}
|
|
857
880
|
document.body.classList.remove('preview-active');
|
|
858
881
|
toggleIcon.textContent = '👁';
|
|
859
882
|
toggleText.textContent = 'Preview';
|
|
@@ -911,6 +934,12 @@
|
|
|
911
934
|
});
|
|
912
935
|
}
|
|
913
936
|
|
|
937
|
+
// Render HTML preview in sandboxed iframe
|
|
938
|
+
function renderHtmlPreview() {
|
|
939
|
+
const iframe = document.getElementById('html-preview-container');
|
|
940
|
+
iframe.srcdoc = currentContent;
|
|
941
|
+
}
|
|
942
|
+
|
|
914
943
|
function renderFile() {
|
|
915
944
|
const viewMode = document.getElementById('viewMode');
|
|
916
945
|
|
|
@@ -1516,7 +1545,7 @@
|
|
|
1516
1545
|
|
|
1517
1546
|
// Cmd/Ctrl+Shift+P to toggle preview (markdown files only)
|
|
1518
1547
|
if ((e.ctrlKey || e.metaKey) && e.shiftKey && (e.key === 'p' || e.key === 'P')) {
|
|
1519
|
-
if (isMarkdownFile) {
|
|
1548
|
+
if (isMarkdownFile || isHtmlFile) {
|
|
1520
1549
|
e.preventDefault();
|
|
1521
1550
|
togglePreviewMode();
|
|
1522
1551
|
}
|
|
@@ -1790,7 +1819,9 @@
|
|
|
1790
1819
|
fileLines = content.split('\n');
|
|
1791
1820
|
|
|
1792
1821
|
// Re-render based on current mode
|
|
1793
|
-
if (isPreviewMode) {
|
|
1822
|
+
if (isPreviewMode && isHtmlFile) {
|
|
1823
|
+
renderHtmlPreview();
|
|
1824
|
+
} else if (isPreviewMode) {
|
|
1794
1825
|
renderPreview();
|
|
1795
1826
|
} else {
|
|
1796
1827
|
renderFile();
|