compounding-loop 0.1.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/README.md +40 -6
  2. package/dist/cli/checkLanes.js +60 -0
  3. package/dist/cli/checkLanes.js.map +1 -0
  4. package/dist/cli/claim.js +84 -0
  5. package/dist/cli/claim.js.map +1 -0
  6. package/dist/cli/doctor.js +54 -0
  7. package/dist/cli/doctor.js.map +1 -0
  8. package/dist/cli/index.js +253 -4
  9. package/dist/cli/index.js.map +1 -1
  10. package/dist/cli/init.js +2 -1
  11. package/dist/cli/init.js.map +1 -1
  12. package/dist/cli/laneRound.js +96 -0
  13. package/dist/cli/laneRound.js.map +1 -0
  14. package/dist/cli/laneStatus.js +54 -0
  15. package/dist/cli/laneStatus.js.map +1 -0
  16. package/dist/cli/lanesInit.js +56 -0
  17. package/dist/cli/lanesInit.js.map +1 -0
  18. package/dist/cli/lock.js +62 -0
  19. package/dist/cli/lock.js.map +1 -0
  20. package/dist/cli/loops.js +30 -3
  21. package/dist/cli/loops.js.map +1 -1
  22. package/dist/cli/new.js +5 -5
  23. package/dist/cli/new.js.map +1 -1
  24. package/dist/cli/next.js +18 -0
  25. package/dist/cli/next.js.map +1 -0
  26. package/dist/cli/pause.js +81 -0
  27. package/dist/cli/pause.js.map +1 -0
  28. package/dist/cli/run.js +119 -19
  29. package/dist/cli/run.js.map +1 -1
  30. package/dist/cli/runs.js +83 -0
  31. package/dist/cli/runs.js.map +1 -0
  32. package/dist/cli/shipCheck.js +59 -0
  33. package/dist/cli/shipCheck.js.map +1 -0
  34. package/dist/core/doctor.js +49 -0
  35. package/dist/core/doctor.js.map +1 -0
  36. package/dist/core/laneRound.js +63 -0
  37. package/dist/core/laneRound.js.map +1 -0
  38. package/dist/core/laneStatus.js +82 -0
  39. package/dist/core/laneStatus.js.map +1 -0
  40. package/dist/core/lanes.js +149 -0
  41. package/dist/core/lanes.js.map +1 -0
  42. package/dist/core/lanesInit.js +143 -0
  43. package/dist/core/lanesInit.js.map +1 -0
  44. package/dist/core/next.js +34 -0
  45. package/dist/core/next.js.map +1 -0
  46. package/dist/core/parse/changelog.js +41 -0
  47. package/dist/core/parse/changelog.js.map +1 -0
  48. package/dist/core/parse/claim.js +24 -0
  49. package/dist/core/parse/claim.js.map +1 -0
  50. package/dist/core/parse/controlRoom.js +38 -0
  51. package/dist/core/parse/controlRoom.js.map +1 -0
  52. package/dist/core/parse/index.js +12 -0
  53. package/dist/core/parse/index.js.map +1 -0
  54. package/dist/core/parse/markers.js +20 -0
  55. package/dist/core/parse/markers.js.map +1 -0
  56. package/dist/core/parse/paused.js +26 -0
  57. package/dist/core/parse/paused.js.map +1 -0
  58. package/dist/core/parse/runs.js +132 -0
  59. package/dist/core/parse/runs.js.map +1 -0
  60. package/dist/core/parse/task.js +96 -0
  61. package/dist/core/parse/task.js.map +1 -0
  62. package/dist/core/repo.js +2 -7
  63. package/dist/core/repo.js.map +1 -1
  64. package/dist/core/runPrompt.js +9 -3
  65. package/dist/core/runPrompt.js.map +1 -1
  66. package/dist/core/shipCheck.js +45 -0
  67. package/dist/core/shipCheck.js.map +1 -0
  68. package/dist/core/table.js +22 -1
  69. package/dist/core/table.js.map +1 -1
  70. package/dist/server/checkLabels.js +27 -0
  71. package/dist/server/checkLabels.js.map +1 -0
  72. package/dist/server/controls.js +72 -0
  73. package/dist/server/controls.js.map +1 -0
  74. package/dist/server/data.js +28 -8
  75. package/dist/server/data.js.map +1 -1
  76. package/dist/server/events.js +1 -0
  77. package/dist/server/events.js.map +1 -1
  78. package/dist/server/health.js +47 -8
  79. package/dist/server/health.js.map +1 -1
  80. package/dist/server/index.js +29 -0
  81. package/dist/server/index.js.map +1 -1
  82. package/dist/server/laneChecks.js +25 -0
  83. package/dist/server/laneChecks.js.map +1 -0
  84. package/dist/server/live/build.js +163 -0
  85. package/dist/server/live/build.js.map +1 -0
  86. package/dist/server/live/github.js +54 -0
  87. package/dist/server/live/github.js.map +1 -0
  88. package/dist/server/live/index.js +9 -0
  89. package/dist/server/live/index.js.map +1 -0
  90. package/dist/server/live/merge.js +16 -0
  91. package/dist/server/live/merge.js.map +1 -0
  92. package/dist/server/live/urls.js +59 -0
  93. package/dist/server/live/urls.js.map +1 -0
  94. package/dist/server/loops.js +146 -39
  95. package/dist/server/loops.js.map +1 -1
  96. package/dist/server/roundState.js +27 -0
  97. package/dist/server/roundState.js.map +1 -0
  98. package/dist/server/runs.js +81 -0
  99. package/dist/server/runs.js.map +1 -0
  100. package/dist/server/static-export.js +22 -1
  101. package/dist/server/static-export.js.map +1 -1
  102. package/dist/server/taskBullets.js +33 -0
  103. package/dist/server/taskBullets.js.map +1 -0
  104. package/dist/server/this-repo.json +1574 -0
  105. package/dist/web/assets/index-BOPytDNU.js +53 -0
  106. package/dist/web/assets/index-BSHEI7fa.css +2 -0
  107. package/dist/web/index.html +3 -3
  108. package/method/COMPOUNDING_LOOP.md +55 -0
  109. package/method/example/K-0002.md +16 -0
  110. package/method/example/K-0003.md +16 -0
  111. package/method/retro.md +7 -0
  112. package/package.json +6 -1
  113. package/plugin/.claude-plugin/plugin.json +1 -1
  114. package/plugin/commands/loop-lanes.md +11 -0
  115. package/plugin/commands/loop-next.md +11 -0
  116. package/plugin/commands/loop-pause.md +10 -0
  117. package/runners/github-actions/lanes.yml +156 -0
  118. package/runners/local/README.md +4 -1
  119. package/runners/local/compounding-loop.service +20 -0
  120. package/runners/local/compounding-loop.timer +11 -0
  121. package/runners/local/launchd.plist +36 -0
  122. package/runners/routine/README.md +38 -1
  123. package/runners/routine/control-room-prompt.md +16 -0
  124. package/runners/routine/lane-prompt.md +12 -0
  125. package/runners/routine/prompt.md +3 -3
  126. package/templates/chrome-extension/extension/icons/icon128.png +0 -0
  127. package/templates/chrome-extension/extension/icons/icon16.png +0 -0
  128. package/templates/chrome-extension/extension/icons/icon48.png +0 -0
  129. package/templates/chrome-extension/extension/manifest.json +19 -3
  130. package/templates/chrome-extension/gitignore +1 -1
  131. package/templates/lanes/README.md +23 -0
  132. package/templates/lanes/ci-check-lanes.yml +38 -0
  133. package/templates/lanes/claude-section.md +20 -0
  134. package/templates/lanes/control-room.md +3 -0
  135. package/templates/lanes/outbox.md +5 -0
  136. package/templates/lanes/task.md +36 -0
  137. package/templates/static-site/.ai/loop-prompt.md +2 -2
  138. package/templates/static-site/CLAUDE.md +2 -0
  139. package/templates/static-site/gitignore +1 -1
  140. package/dist/web/assets/index-BDdtnG33.js +0 -49
  141. package/dist/web/assets/index-D3-N8DN4.css +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"static-export.js","sourceRoot":"","sources":["../../src/server/static-export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEvD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,QAAsB,EAAE,OAAe;IACpE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IACzC,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5E,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK;QAAE,KAAK,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAChF,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,QAAsB,EAAE,OAAe;IAC1F,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"static-export.js","sourceRoot":"","sources":["../../src/server/static-export.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /** Bullet lines ("- x") directly under the first heading or bold label that matches `label`. */
2
+ export function bulletsUnder(markdown, label) {
3
+ const lines = markdown.split(/\r?\n/);
4
+ const start = lines.findIndex((l) => label.test(l.replace(/^#+\s*|\*\*/g, '').trim()));
5
+ if (start === -1)
6
+ return [];
7
+ const bullets = [];
8
+ for (const line of lines.slice(start + 1)) {
9
+ if (/^#+\s/.test(line))
10
+ break;
11
+ const bullet = /^\s*[-*]\s+(.*\S)\s*$/.exec(line);
12
+ if (bullet?.[1])
13
+ bullets.push(bullet[1]);
14
+ else if (bullets.length > 0 && line.trim() === '')
15
+ break;
16
+ }
17
+ return bullets;
18
+ }
19
+ /** The sentence of a `**Done when:** a; b; c.` line, split into its items (lane task files write the contract inline). */
20
+ function inlineDoneWhen(markdown) {
21
+ const text = /^\*\*done when:?\*\*:?\s*(.+?)\s*$/im.exec(markdown)?.[1];
22
+ return text === undefined ? [] : text.split(/;\s+/).map((item) => item.replace(/\.$/, '').trim()).filter(Boolean);
23
+ }
24
+ /** The done-when items of a task.md (bullets, else the inline sentence); an item only counts as passing once the loop wrote DONE.md. */
25
+ export function contractFromTask(taskText, finished) {
26
+ const bullets = bulletsUnder(taskText, /^done when/i);
27
+ return (bullets.length > 0 ? bullets : inlineDoneWhen(taskText)).map((text) => ({ text, pass: finished }));
28
+ }
29
+ /** One lane's contract, decisions and knowledge from its task.md. */
30
+ export function laneNotesFromTask(lane, taskText, finished) {
31
+ return { lane, contract: contractFromTask(taskText, finished), decisions: bulletsUnder(taskText, /^decisions/i), knowledge: bulletsUnder(taskText, /^confirmed/i) };
32
+ }
33
+ //# sourceMappingURL=taskBullets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskBullets.js","sourceRoot":"","sources":["../../src/server/taskBullets.ts"],"names":[],"mappings":"AAGA,gGAAgG;AAChG,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,KAAa;IAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACvF,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM;QAC9B,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;aACpC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,MAAM;IAC3D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,0HAA0H;AAC1H,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,IAAI,GAAG,sCAAsC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpH,CAAC;AAED,wIAAwI;AACxI,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,QAAiB;IAClE,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACtD,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7G,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAiB;IACjF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC;AACtK,CAAC"}