@entelligentsia/forgecli 0.6.6 → 0.7.6

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 (183) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/README.md +28 -1
  3. package/dist/bin/forge.js +20 -0
  4. package/dist/bin/forge.js.map +1 -1
  5. package/dist/extensions/forgecli/approve.d.ts +24 -0
  6. package/dist/extensions/forgecli/approve.js +202 -0
  7. package/dist/extensions/forgecli/approve.js.map +1 -0
  8. package/dist/extensions/forgecli/audience-gate.d.ts +4 -0
  9. package/dist/extensions/forgecli/audience-gate.js +8 -5
  10. package/dist/extensions/forgecli/audience-gate.js.map +1 -1
  11. package/dist/extensions/forgecli/collate.d.ts +24 -0
  12. package/dist/extensions/forgecli/collate.js +199 -0
  13. package/dist/extensions/forgecli/collate.js.map +1 -0
  14. package/dist/extensions/forgecli/commit.d.ts +24 -0
  15. package/dist/extensions/forgecli/commit.js +202 -0
  16. package/dist/extensions/forgecli/commit.js.map +1 -0
  17. package/dist/extensions/forgecli/fix-bug.d.ts +75 -0
  18. package/dist/extensions/forgecli/fix-bug.js +1133 -0
  19. package/dist/extensions/forgecli/fix-bug.js.map +1 -0
  20. package/dist/extensions/forgecli/forge-commands.js +7 -0
  21. package/dist/extensions/forgecli/forge-commands.js.map +1 -1
  22. package/dist/extensions/forgecli/forge-init.js +16 -8
  23. package/dist/extensions/forgecli/forge-init.js.map +1 -1
  24. package/dist/extensions/forgecli/forge-subagent.d.ts +29 -0
  25. package/dist/extensions/forgecli/forge-subagent.js +14 -1
  26. package/dist/extensions/forgecli/forge-subagent.js.map +1 -1
  27. package/dist/extensions/forgecli/hook-dispatcher.d.ts +53 -1
  28. package/dist/extensions/forgecli/hook-dispatcher.js +47 -1
  29. package/dist/extensions/forgecli/hook-dispatcher.js.map +1 -1
  30. package/dist/extensions/forgecli/hooks/post-init-hook.d.ts +15 -0
  31. package/dist/extensions/forgecli/hooks/post-init-hook.js +127 -0
  32. package/dist/extensions/forgecli/hooks/post-init-hook.js.map +1 -0
  33. package/dist/extensions/forgecli/hooks/post-sprint-hook.d.ts +37 -0
  34. package/dist/extensions/forgecli/hooks/post-sprint-hook.js +166 -0
  35. package/dist/extensions/forgecli/hooks/post-sprint-hook.js.map +1 -0
  36. package/dist/extensions/forgecli/index.js +47 -0
  37. package/dist/extensions/forgecli/index.js.map +1 -1
  38. package/dist/extensions/forgecli/review-code.d.ts +24 -0
  39. package/dist/extensions/forgecli/review-code.js +202 -0
  40. package/dist/extensions/forgecli/review-code.js.map +1 -0
  41. package/dist/extensions/forgecli/review-plan.d.ts +24 -0
  42. package/dist/extensions/forgecli/review-plan.js +203 -0
  43. package/dist/extensions/forgecli/review-plan.js.map +1 -0
  44. package/dist/extensions/forgecli/run-sprint.d.ts +18 -0
  45. package/dist/extensions/forgecli/run-sprint.js +33 -1
  46. package/dist/extensions/forgecli/run-sprint.js.map +1 -1
  47. package/dist/extensions/forgecli/run-task.d.ts +21 -2
  48. package/dist/extensions/forgecli/run-task.js +33 -9
  49. package/dist/extensions/forgecli/run-task.js.map +1 -1
  50. package/dist/extensions/forgecli/session-registry.d.ts +10 -0
  51. package/dist/extensions/forgecli/session-registry.js +9 -0
  52. package/dist/extensions/forgecli/session-registry.js.map +1 -1
  53. package/dist/extensions/forgecli/validate.d.ts +24 -0
  54. package/dist/extensions/forgecli/validate.js +202 -0
  55. package/dist/extensions/forgecli/validate.js.map +1 -0
  56. package/dist/extensions/forgecli/wf-engine/engine.d.ts +23 -0
  57. package/dist/extensions/forgecli/wf-engine/engine.js +384 -0
  58. package/dist/extensions/forgecli/wf-engine/engine.js.map +1 -0
  59. package/dist/extensions/forgecli/wf-engine/event-parser.d.ts +6 -0
  60. package/dist/extensions/forgecli/wf-engine/event-parser.js +29 -0
  61. package/dist/extensions/forgecli/wf-engine/event-parser.js.map +1 -0
  62. package/dist/extensions/forgecli/wf-engine/id-gen.d.ts +6 -0
  63. package/dist/extensions/forgecli/wf-engine/id-gen.js +17 -0
  64. package/dist/extensions/forgecli/wf-engine/id-gen.js.map +1 -0
  65. package/dist/extensions/forgecli/wf-engine/loader.d.ts +2 -0
  66. package/dist/extensions/forgecli/wf-engine/loader.js +100 -0
  67. package/dist/extensions/forgecli/wf-engine/loader.js.map +1 -0
  68. package/dist/extensions/forgecli/wf-engine/predicate.d.ts +7 -0
  69. package/dist/extensions/forgecli/wf-engine/predicate.js +36 -0
  70. package/dist/extensions/forgecli/wf-engine/predicate.js.map +1 -0
  71. package/dist/extensions/forgecli/wf-engine/prompt-compiler.d.ts +15 -0
  72. package/dist/extensions/forgecli/wf-engine/prompt-compiler.js +23 -0
  73. package/dist/extensions/forgecli/wf-engine/prompt-compiler.js.map +1 -0
  74. package/dist/extensions/forgecli/wf-engine/register.d.ts +9 -0
  75. package/dist/extensions/forgecli/wf-engine/register.js +59 -0
  76. package/dist/extensions/forgecli/wf-engine/register.js.map +1 -0
  77. package/dist/extensions/forgecli/wf-engine/remit-check.d.ts +6 -0
  78. package/dist/extensions/forgecli/wf-engine/remit-check.js +42 -0
  79. package/dist/extensions/forgecli/wf-engine/remit-check.js.map +1 -0
  80. package/dist/extensions/forgecli/wf-engine/state-store.d.ts +13 -0
  81. package/dist/extensions/forgecli/wf-engine/state-store.js +43 -0
  82. package/dist/extensions/forgecli/wf-engine/state-store.js.map +1 -0
  83. package/dist/extensions/forgecli/wf-engine/types.d.ts +66 -0
  84. package/dist/extensions/forgecli/wf-engine/types.js +2 -0
  85. package/dist/extensions/forgecli/wf-engine/types.js.map +1 -0
  86. package/dist/extensions/forgecli/wf-engine/worker.d.ts +11 -0
  87. package/dist/extensions/forgecli/wf-engine/worker.js +50 -0
  88. package/dist/extensions/forgecli/wf-engine/worker.js.map +1 -0
  89. package/dist/forge-payload/.base-pack/workflows/_fragments/context-injection.md +10 -4
  90. package/dist/forge-payload/.base-pack/workflows/fix_bug.md +12 -0
  91. package/dist/forge-payload/.schemas/bug.schema.json +4 -2
  92. package/dist/forge-payload/.schemas/event.schema.json +22 -3
  93. package/dist/forge-payload/commands/add-pipeline.md +342 -0
  94. package/dist/forge-payload/commands/add-task.md +269 -0
  95. package/dist/forge-payload/commands/ask.md +43 -0
  96. package/dist/forge-payload/commands/calibrate.md +356 -0
  97. package/dist/forge-payload/commands/config.md +202 -0
  98. package/dist/forge-payload/commands/enhance.md +38 -0
  99. package/dist/forge-payload/commands/health.md +225 -0
  100. package/dist/forge-payload/commands/init.md +165 -0
  101. package/dist/forge-payload/commands/materialize.md +119 -0
  102. package/dist/forge-payload/commands/migrate.md +160 -0
  103. package/dist/forge-payload/commands/quiz-agent.md +38 -0
  104. package/dist/forge-payload/commands/regenerate.md +673 -0
  105. package/dist/forge-payload/commands/remove.md +174 -0
  106. package/dist/forge-payload/commands/report-bug.md +191 -0
  107. package/dist/forge-payload/commands/store-query.md +73 -0
  108. package/dist/forge-payload/commands/store-repair.md +187 -0
  109. package/dist/forge-payload/commands/update-tools.md +56 -0
  110. package/dist/forge-payload/commands/update.md +1376 -0
  111. package/dist/forge-payload/tools/preflight-gate.cjs +2 -1
  112. package/dist/forge-payload/tools/read-verdict.cjs +41 -8
  113. package/dist/forge-payload/tools/store-cli.cjs +4 -3
  114. package/node_modules/argparse/CHANGELOG.md +216 -0
  115. package/node_modules/argparse/LICENSE +254 -0
  116. package/node_modules/argparse/README.md +84 -0
  117. package/node_modules/argparse/argparse.js +3707 -0
  118. package/node_modules/argparse/lib/sub.js +67 -0
  119. package/node_modules/argparse/lib/textwrap.js +440 -0
  120. package/node_modules/argparse/package.json +31 -0
  121. package/node_modules/cliui/CHANGELOG.md +121 -0
  122. package/node_modules/color-convert/CHANGELOG.md +54 -0
  123. package/node_modules/esprima/ChangeLog +235 -0
  124. package/node_modules/js-yaml/LICENSE +21 -0
  125. package/node_modules/js-yaml/README.md +247 -0
  126. package/node_modules/js-yaml/bin/js-yaml.js +126 -0
  127. package/node_modules/js-yaml/dist/js-yaml.js +3880 -0
  128. package/node_modules/js-yaml/dist/js-yaml.min.js +2 -0
  129. package/node_modules/js-yaml/dist/js-yaml.mjs +3856 -0
  130. package/node_modules/js-yaml/index.js +47 -0
  131. package/node_modules/js-yaml/lib/common.js +59 -0
  132. package/node_modules/js-yaml/lib/dumper.js +965 -0
  133. package/node_modules/js-yaml/lib/exception.js +55 -0
  134. package/node_modules/js-yaml/lib/loader.js +1733 -0
  135. package/node_modules/js-yaml/lib/schema/core.js +11 -0
  136. package/node_modules/js-yaml/lib/schema/default.js +22 -0
  137. package/node_modules/js-yaml/lib/schema/failsafe.js +17 -0
  138. package/node_modules/js-yaml/lib/schema/json.js +19 -0
  139. package/node_modules/js-yaml/lib/schema.js +121 -0
  140. package/node_modules/js-yaml/lib/snippet.js +101 -0
  141. package/node_modules/js-yaml/lib/type/binary.js +125 -0
  142. package/node_modules/js-yaml/lib/type/bool.js +35 -0
  143. package/node_modules/js-yaml/lib/type/float.js +97 -0
  144. package/node_modules/js-yaml/lib/type/int.js +156 -0
  145. package/node_modules/js-yaml/lib/type/map.js +8 -0
  146. package/node_modules/js-yaml/lib/type/merge.js +12 -0
  147. package/node_modules/js-yaml/lib/type/null.js +35 -0
  148. package/node_modules/js-yaml/lib/type/omap.js +44 -0
  149. package/node_modules/js-yaml/lib/type/pairs.js +53 -0
  150. package/node_modules/js-yaml/lib/type/seq.js +8 -0
  151. package/node_modules/js-yaml/lib/type/set.js +29 -0
  152. package/node_modules/js-yaml/lib/type/str.js +8 -0
  153. package/node_modules/js-yaml/lib/type/timestamp.js +88 -0
  154. package/node_modules/js-yaml/lib/type.js +66 -0
  155. package/node_modules/js-yaml/package.json +66 -0
  156. package/node_modules/mz/HISTORY.md +66 -0
  157. package/node_modules/proper-lockfile/CHANGELOG.md +108 -0
  158. package/node_modules/source-map/CHANGELOG.md +301 -0
  159. package/node_modules/thenify/History.md +11 -0
  160. package/node_modules/thenify-all/History.md +11 -0
  161. package/node_modules/y18n/CHANGELOG.md +100 -0
  162. package/node_modules/yargs/CHANGELOG.md +88 -0
  163. package/node_modules/yargs-parser/CHANGELOG.md +263 -0
  164. package/package.json +6 -2
  165. package/workflows/lead-qualifier/prompts/digest.md +44 -0
  166. package/workflows/lead-qualifier/prompts/draft-outreach.md +44 -0
  167. package/workflows/lead-qualifier/prompts/enrich.md +52 -0
  168. package/workflows/lead-qualifier/prompts/intake.md +48 -0
  169. package/workflows/lead-qualifier/prompts/mark-cold.md +38 -0
  170. package/workflows/lead-qualifier/prompts/score.md +45 -0
  171. package/workflows/lead-qualifier/workflow.yaml +95 -0
  172. package/workflows/research-brief/prompts/brief-synthesize.md +43 -0
  173. package/workflows/research-brief/prompts/intake.md +51 -0
  174. package/workflows/research-brief/prompts/source-critique.md +38 -0
  175. package/workflows/research-brief/prompts/source-score.md +38 -0
  176. package/workflows/research-brief/prompts/source-summarize.md +54 -0
  177. package/workflows/research-brief/workflow.yaml +66 -0
  178. package/dist/extensions/forgecli/session-monitor-widget.d.ts +0 -37
  179. package/dist/extensions/forgecli/session-monitor-widget.js +0 -320
  180. package/dist/extensions/forgecli/session-monitor-widget.js.map +0 -1
  181. package/dist/extensions/forgecli/session-monitor.d.ts +0 -2
  182. package/dist/extensions/forgecli/session-monitor.js +0 -135
  183. package/dist/extensions/forgecli/session-monitor.js.map +0 -1
@@ -0,0 +1,263 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
+
5
+ ### [20.2.9](https://www.github.com/yargs/yargs-parser/compare/yargs-parser-v20.2.8...yargs-parser-v20.2.9) (2021-06-20)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **build:** fixed automated release pipeline ([1fe9135](https://www.github.com/yargs/yargs-parser/commit/1fe9135884790a083615419b2861683e2597dac3))
11
+
12
+ ### [20.2.8](https://www.github.com/yargs/yargs-parser/compare/yargs-parser-v20.2.7...yargs-parser-v20.2.8) (2021-06-20)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * **locale:** Turkish camelize and decamelize issues with toLocaleLowerCase/toLocaleUpperCase ([2617303](https://www.github.com/yargs/yargs-parser/commit/261730383e02448562f737b94bbd1f164aed5143))
18
+ * **perf:** address slow parse when using unknown-options-as-args ([#394](https://www.github.com/yargs/yargs-parser/issues/394)) ([441f059](https://www.github.com/yargs/yargs-parser/commit/441f059d585d446551068ad213db79ac91daf83a))
19
+ * **string-utils:** detect [0,1] ranged values as numbers ([#388](https://www.github.com/yargs/yargs-parser/issues/388)) ([efcc32c](https://www.github.com/yargs/yargs-parser/commit/efcc32c2d6b09aba31abfa2db9bd947befe5586b))
20
+
21
+ ### [20.2.7](https://www.github.com/yargs/yargs-parser/compare/v20.2.6...v20.2.7) (2021-03-10)
22
+
23
+
24
+ ### Bug Fixes
25
+
26
+ * **deno:** force release for Deno ([6687c97](https://www.github.com/yargs/yargs-parser/commit/6687c972d0f3ca7865a97908dde3080b05f8b026))
27
+
28
+ ### [20.2.6](https://www.github.com/yargs/yargs-parser/compare/v20.2.5...v20.2.6) (2021-02-22)
29
+
30
+
31
+ ### Bug Fixes
32
+
33
+ * **populate--:** -- should always be array ([#354](https://www.github.com/yargs/yargs-parser/issues/354)) ([585ae8f](https://www.github.com/yargs/yargs-parser/commit/585ae8ffad74cc02974f92d788e750137fd65146))
34
+
35
+ ### [20.2.5](https://www.github.com/yargs/yargs-parser/compare/v20.2.4...v20.2.5) (2021-02-13)
36
+
37
+
38
+ ### Bug Fixes
39
+
40
+ * do not lowercase camel cased string ([#348](https://www.github.com/yargs/yargs-parser/issues/348)) ([5f4da1f](https://www.github.com/yargs/yargs-parser/commit/5f4da1f17d9d50542d2aaa206c9806ce3e320335))
41
+
42
+ ### [20.2.4](https://www.github.com/yargs/yargs-parser/compare/v20.2.3...v20.2.4) (2020-11-09)
43
+
44
+
45
+ ### Bug Fixes
46
+
47
+ * **deno:** address import issues in Deno ([#339](https://www.github.com/yargs/yargs-parser/issues/339)) ([3b54e5e](https://www.github.com/yargs/yargs-parser/commit/3b54e5eef6e9a7b7c6eec7c12bab3ba3b8ba8306))
48
+
49
+ ### [20.2.3](https://www.github.com/yargs/yargs-parser/compare/v20.2.2...v20.2.3) (2020-10-16)
50
+
51
+
52
+ ### Bug Fixes
53
+
54
+ * **exports:** node 13.0 and 13.1 require the dotted object form _with_ a string fallback ([#336](https://www.github.com/yargs/yargs-parser/issues/336)) ([3ae7242](https://www.github.com/yargs/yargs-parser/commit/3ae7242040ff876d28dabded60ac226e00150c88))
55
+
56
+ ### [20.2.2](https://www.github.com/yargs/yargs-parser/compare/v20.2.1...v20.2.2) (2020-10-14)
57
+
58
+
59
+ ### Bug Fixes
60
+
61
+ * **exports:** node 13.0-13.6 require a string fallback ([#333](https://www.github.com/yargs/yargs-parser/issues/333)) ([291aeda](https://www.github.com/yargs/yargs-parser/commit/291aeda06b685b7a015d83bdf2558e180b37388d))
62
+
63
+ ### [20.2.1](https://www.github.com/yargs/yargs-parser/compare/v20.2.0...v20.2.1) (2020-10-01)
64
+
65
+
66
+ ### Bug Fixes
67
+
68
+ * **deno:** update types for deno ^1.4.0 ([#330](https://www.github.com/yargs/yargs-parser/issues/330)) ([0ab92e5](https://www.github.com/yargs/yargs-parser/commit/0ab92e50b090f11196334c048c9c92cecaddaf56))
69
+
70
+ ## [20.2.0](https://www.github.com/yargs/yargs-parser/compare/v20.1.0...v20.2.0) (2020-09-21)
71
+
72
+
73
+ ### Features
74
+
75
+ * **string-utils:** export looksLikeNumber helper ([#324](https://www.github.com/yargs/yargs-parser/issues/324)) ([c8580a2](https://www.github.com/yargs/yargs-parser/commit/c8580a2327b55f6342acecb6e72b62963d506750))
76
+
77
+
78
+ ### Bug Fixes
79
+
80
+ * **unknown-options-as-args:** convert positionals that look like numbers ([#326](https://www.github.com/yargs/yargs-parser/issues/326)) ([f85ebb4](https://www.github.com/yargs/yargs-parser/commit/f85ebb4face9d4b0f56147659404cbe0002f3dad))
81
+
82
+ ## [20.1.0](https://www.github.com/yargs/yargs-parser/compare/v20.0.0...v20.1.0) (2020-09-20)
83
+
84
+
85
+ ### Features
86
+
87
+ * adds parse-positional-numbers configuration ([#321](https://www.github.com/yargs/yargs-parser/issues/321)) ([9cec00a](https://www.github.com/yargs/yargs-parser/commit/9cec00a622251292ffb7dce6f78f5353afaa0d4c))
88
+
89
+
90
+ ### Bug Fixes
91
+
92
+ * **build:** update release-please; make labels kick off builds ([#323](https://www.github.com/yargs/yargs-parser/issues/323)) ([09f448b](https://www.github.com/yargs/yargs-parser/commit/09f448b4cd66e25d2872544718df46dab8af062a))
93
+
94
+ ## [20.0.0](https://www.github.com/yargs/yargs-parser/compare/v19.0.4...v20.0.0) (2020-09-09)
95
+
96
+
97
+ ### ⚠ BREAKING CHANGES
98
+
99
+ * do not ship type definitions (#318)
100
+
101
+ ### Bug Fixes
102
+
103
+ * only strip camel case if hyphenated ([#316](https://www.github.com/yargs/yargs-parser/issues/316)) ([95a9e78](https://www.github.com/yargs/yargs-parser/commit/95a9e785127b9bbf2d1db1f1f808ca1fb100e82a)), closes [#315](https://www.github.com/yargs/yargs-parser/issues/315)
104
+
105
+
106
+ ### Code Refactoring
107
+
108
+ * do not ship type definitions ([#318](https://www.github.com/yargs/yargs-parser/issues/318)) ([8fbd56f](https://www.github.com/yargs/yargs-parser/commit/8fbd56f1d0b6c44c30fca62708812151ca0ce330))
109
+
110
+ ### [19.0.4](https://www.github.com/yargs/yargs-parser/compare/v19.0.3...v19.0.4) (2020-08-27)
111
+
112
+
113
+ ### Bug Fixes
114
+
115
+ * **build:** fixing publication ([#310](https://www.github.com/yargs/yargs-parser/issues/310)) ([5d3c6c2](https://www.github.com/yargs/yargs-parser/commit/5d3c6c29a9126248ba601920d9cf87c78e161ff5))
116
+
117
+ ### [19.0.3](https://www.github.com/yargs/yargs-parser/compare/v19.0.2...v19.0.3) (2020-08-27)
118
+
119
+
120
+ ### Bug Fixes
121
+
122
+ * **build:** switch to action for publish ([#308](https://www.github.com/yargs/yargs-parser/issues/308)) ([5c2f305](https://www.github.com/yargs/yargs-parser/commit/5c2f30585342bcd8aaf926407c863099d256d174))
123
+
124
+ ### [19.0.2](https://www.github.com/yargs/yargs-parser/compare/v19.0.1...v19.0.2) (2020-08-27)
125
+
126
+
127
+ ### Bug Fixes
128
+
129
+ * **types:** envPrefix should be optional ([#305](https://www.github.com/yargs/yargs-parser/issues/305)) ([ae3f180](https://www.github.com/yargs/yargs-parser/commit/ae3f180e14df2de2fd962145f4518f9aa0e76523))
130
+
131
+ ### [19.0.1](https://www.github.com/yargs/yargs-parser/compare/v19.0.0...v19.0.1) (2020-08-09)
132
+
133
+
134
+ ### Bug Fixes
135
+
136
+ * **build:** push tag created for deno ([2186a14](https://www.github.com/yargs/yargs-parser/commit/2186a14989749887d56189867602e39e6679f8b0))
137
+
138
+ ## [19.0.0](https://www.github.com/yargs/yargs-parser/compare/v18.1.3...v19.0.0) (2020-08-09)
139
+
140
+
141
+ ### ⚠ BREAKING CHANGES
142
+
143
+ * adds support for ESM and Deno (#295)
144
+ * **ts:** projects using `@types/yargs-parser` may see variations in type definitions.
145
+ * drops Node 6. begin following Node.js LTS schedule (#278)
146
+
147
+ ### Features
148
+
149
+ * adds support for ESM and Deno ([#295](https://www.github.com/yargs/yargs-parser/issues/295)) ([195bc4a](https://www.github.com/yargs/yargs-parser/commit/195bc4a7f20c2a8f8e33fbb6ba96ef6e9a0120a1))
150
+ * expose camelCase and decamelize helpers ([#296](https://www.github.com/yargs/yargs-parser/issues/296)) ([39154ce](https://www.github.com/yargs/yargs-parser/commit/39154ceb5bdcf76b5f59a9219b34cedb79b67f26))
151
+ * **deps:** update to latest camelcase/decamelize ([#281](https://www.github.com/yargs/yargs-parser/issues/281)) ([8931ab0](https://www.github.com/yargs/yargs-parser/commit/8931ab08f686cc55286f33a95a83537da2be5516))
152
+
153
+
154
+ ### Bug Fixes
155
+
156
+ * boolean numeric short option ([#294](https://www.github.com/yargs/yargs-parser/issues/294)) ([f600082](https://www.github.com/yargs/yargs-parser/commit/f600082c959e092076caf420bbbc9d7a231e2418))
157
+ * raise permission error for Deno if config load fails ([#298](https://www.github.com/yargs/yargs-parser/issues/298)) ([1174e2b](https://www.github.com/yargs/yargs-parser/commit/1174e2b3f0c845a1cd64e14ffc3703e730567a84))
158
+ * **deps:** update dependency decamelize to v3 ([#274](https://www.github.com/yargs/yargs-parser/issues/274)) ([4d98698](https://www.github.com/yargs/yargs-parser/commit/4d98698bc6767e84ec54a0842908191739be73b7))
159
+ * **types:** switch back to using Partial types ([#293](https://www.github.com/yargs/yargs-parser/issues/293)) ([bdc80ba](https://www.github.com/yargs/yargs-parser/commit/bdc80ba59fa13bc3025ce0a85e8bad9f9da24ea7))
160
+
161
+
162
+ ### Build System
163
+
164
+ * drops Node 6. begin following Node.js LTS schedule ([#278](https://www.github.com/yargs/yargs-parser/issues/278)) ([9014ed7](https://www.github.com/yargs/yargs-parser/commit/9014ed722a32768b96b829e65a31705db5c1458a))
165
+
166
+
167
+ ### Code Refactoring
168
+
169
+ * **ts:** move index.js to TypeScript ([#292](https://www.github.com/yargs/yargs-parser/issues/292)) ([f78d2b9](https://www.github.com/yargs/yargs-parser/commit/f78d2b97567ac4828624406e420b4047c710b789))
170
+
171
+ ### [18.1.3](https://www.github.com/yargs/yargs-parser/compare/v18.1.2...v18.1.3) (2020-04-16)
172
+
173
+
174
+ ### Bug Fixes
175
+
176
+ * **setArg:** options using camel-case and dot-notation populated twice ([#268](https://www.github.com/yargs/yargs-parser/issues/268)) ([f7e15b9](https://www.github.com/yargs/yargs-parser/commit/f7e15b9800900b9856acac1a830a5f35847be73e))
177
+
178
+ ### [18.1.2](https://www.github.com/yargs/yargs-parser/compare/v18.1.1...v18.1.2) (2020-03-26)
179
+
180
+
181
+ ### Bug Fixes
182
+
183
+ * **array, nargs:** support -o=--value and --option=--value format ([#262](https://www.github.com/yargs/yargs-parser/issues/262)) ([41d3f81](https://www.github.com/yargs/yargs-parser/commit/41d3f8139e116706b28de9b0de3433feb08d2f13))
184
+
185
+ ### [18.1.1](https://www.github.com/yargs/yargs-parser/compare/v18.1.0...v18.1.1) (2020-03-16)
186
+
187
+
188
+ ### Bug Fixes
189
+
190
+ * \_\_proto\_\_ will now be replaced with \_\_\_proto\_\_\_ in parse ([#258](https://www.github.com/yargs/yargs-parser/issues/258)), patching a potential
191
+ prototype pollution vulnerability. This was reported by the Snyk Security Research Team.([63810ca](https://www.github.com/yargs/yargs-parser/commit/63810ca1ae1a24b08293a4d971e70e058c7a41e2))
192
+
193
+ ## [18.1.0](https://www.github.com/yargs/yargs-parser/compare/v18.0.0...v18.1.0) (2020-03-07)
194
+
195
+
196
+ ### Features
197
+
198
+ * introduce single-digit boolean aliases ([#255](https://www.github.com/yargs/yargs-parser/issues/255)) ([9c60265](https://www.github.com/yargs/yargs-parser/commit/9c60265fd7a03cb98e6df3e32c8c5e7508d9f56f))
199
+
200
+ ## [18.0.0](https://www.github.com/yargs/yargs-parser/compare/v17.1.0...v18.0.0) (2020-03-02)
201
+
202
+
203
+ ### ⚠ BREAKING CHANGES
204
+
205
+ * the narg count is now enforced when parsing arrays.
206
+
207
+ ### Features
208
+
209
+ * NaN can now be provided as a value for nargs, indicating "at least" one value is expected for array ([#251](https://www.github.com/yargs/yargs-parser/issues/251)) ([9db4be8](https://www.github.com/yargs/yargs-parser/commit/9db4be81417a2c7097128db34d86fe70ef4af70c))
210
+
211
+ ## [17.1.0](https://www.github.com/yargs/yargs-parser/compare/v17.0.1...v17.1.0) (2020-03-01)
212
+
213
+
214
+ ### Features
215
+
216
+ * introduce greedy-arrays config, for specifying whether arrays consume multiple positionals ([#249](https://www.github.com/yargs/yargs-parser/issues/249)) ([60e880a](https://www.github.com/yargs/yargs-parser/commit/60e880a837046314d89fa4725f923837fd33a9eb))
217
+
218
+ ### [17.0.1](https://www.github.com/yargs/yargs-parser/compare/v17.0.0...v17.0.1) (2020-02-29)
219
+
220
+
221
+ ### Bug Fixes
222
+
223
+ * normalized keys were not enumerable ([#247](https://www.github.com/yargs/yargs-parser/issues/247)) ([57119f9](https://www.github.com/yargs/yargs-parser/commit/57119f9f17cf27499bd95e61c2f72d18314f11ba))
224
+
225
+ ## [17.0.0](https://www.github.com/yargs/yargs-parser/compare/v16.1.0...v17.0.0) (2020-02-10)
226
+
227
+
228
+ ### ⚠ BREAKING CHANGES
229
+
230
+ * this reverts parsing behavior of booleans to that of yargs@14
231
+ * objects used during parsing are now created with a null
232
+ prototype. There may be some scenarios where this change in behavior
233
+ leaks externally.
234
+
235
+ ### Features
236
+
237
+ * boolean arguments will not be collected into an implicit array ([#236](https://www.github.com/yargs/yargs-parser/issues/236)) ([34c4e19](https://www.github.com/yargs/yargs-parser/commit/34c4e19bae4e7af63e3cb6fa654a97ed476e5eb5))
238
+ * introduce nargs-eats-options config option ([#246](https://www.github.com/yargs/yargs-parser/issues/246)) ([d50822a](https://www.github.com/yargs/yargs-parser/commit/d50822ac10e1b05f2e9643671ca131ac251b6732))
239
+
240
+
241
+ ### Bug Fixes
242
+
243
+ * address bugs with "uknown-options-as-args" ([bc023e3](https://www.github.com/yargs/yargs-parser/commit/bc023e3b13e20a118353f9507d1c999bf388a346))
244
+ * array should take precedence over nargs, but enforce nargs ([#243](https://www.github.com/yargs/yargs-parser/issues/243)) ([4cbc188](https://www.github.com/yargs/yargs-parser/commit/4cbc188b7abb2249529a19c090338debdad2fe6c))
245
+ * support keys that collide with object prototypes ([#234](https://www.github.com/yargs/yargs-parser/issues/234)) ([1587b6d](https://www.github.com/yargs/yargs-parser/commit/1587b6d91db853a9109f1be6b209077993fee4de))
246
+ * unknown options terminated with digits now handled by unknown-options-as-args ([#238](https://www.github.com/yargs/yargs-parser/issues/238)) ([d36cdfa](https://www.github.com/yargs/yargs-parser/commit/d36cdfa854254d7c7e0fe1d583818332ac46c2a5))
247
+
248
+ ## [16.1.0](https://www.github.com/yargs/yargs-parser/compare/v16.0.0...v16.1.0) (2019-11-01)
249
+
250
+
251
+ ### ⚠ BREAKING CHANGES
252
+
253
+ * populate error if incompatible narg/count or array/count options are used (#191)
254
+
255
+ ### Features
256
+
257
+ * options that have had their default value used are now tracked ([#211](https://www.github.com/yargs/yargs-parser/issues/211)) ([a525234](https://www.github.com/yargs/yargs-parser/commit/a525234558c847deedd73f8792e0a3b77b26e2c0))
258
+ * populate error if incompatible narg/count or array/count options are used ([#191](https://www.github.com/yargs/yargs-parser/issues/191)) ([84a401f](https://www.github.com/yargs/yargs-parser/commit/84a401f0fa3095e0a19661670d1570d0c3b9d3c9))
259
+
260
+
261
+ ### Reverts
262
+
263
+ * revert 16.0.0 CHANGELOG entry ([920320a](https://www.github.com/yargs/yargs-parser/commit/920320ad9861bbfd58eda39221ae211540fc1daf))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@entelligentsia/forgecli",
3
- "version": "0.6.6",
3
+ "version": "0.7.6",
4
4
  "description": "Forge SDLC ported onto @earendil-works/pi-coding-agent \u2014 production launcher with three bin aliases (forge/forgecli/4ge).",
5
5
  "license": "MIT",
6
6
  "author": "Entelligentsia",
@@ -27,6 +27,7 @@
27
27
  "registry",
28
28
  "skills",
29
29
  "themes",
30
+ "workflows",
30
31
  "README.md",
31
32
  "CHANGELOG.md",
32
33
  "LICENSE"
@@ -66,13 +67,15 @@
66
67
  "@entelligentsia/pi-coding-agent",
67
68
  "@entelligentsia/pi-agent-core",
68
69
  "@entelligentsia/pi-ai",
69
- "@entelligentsia/pi-tui"
70
+ "@entelligentsia/pi-tui",
71
+ "js-yaml"
70
72
  ],
71
73
  "dependencies": {
72
74
  "@entelligentsia/pi-coding-agent": "file:./vendor-pi/entelligentsia-pi-coding-agent-0.75.0.tgz",
73
75
  "@entelligentsia/pi-agent-core": "file:./vendor-pi/entelligentsia-pi-agent-core-0.75.0.tgz",
74
76
  "@entelligentsia/pi-ai": "file:./vendor-pi/entelligentsia-pi-ai-0.75.0.tgz",
75
77
  "@entelligentsia/pi-tui": "file:./vendor-pi/entelligentsia-pi-tui-0.75.0.tgz",
78
+ "js-yaml": "^4.1.0",
76
79
  "typebox": "^1.1.24"
77
80
  },
78
81
  "peerDependencies": {
@@ -80,6 +83,7 @@
80
83
  },
81
84
  "devDependencies": {
82
85
  "@biomejs/biome": "^2.3.5",
86
+ "@types/js-yaml": "^4.0.9",
83
87
  "@types/node": "^24.3.0",
84
88
  "typescript": "^5.7.3",
85
89
  "vitest": "^3.2.4"
@@ -0,0 +1,44 @@
1
+ # Role
2
+ You are the `digest` node — the final summary after the per-lead pipeline finishes.
3
+
4
+ # Inputs
5
+ - ICP: `state.entryPrompt`
6
+ - Full state JSON:
7
+ {{state}}
8
+
9
+ # Your remit
10
+ Produce `artifacts/BRIEF.md` containing:
11
+
12
+ - **TL;DR** — 2–3 sentences: how many leads, how many warm vs cold, top recommended target.
13
+ - **Warm leads** — table: id, company, industry, score, decision_maker_title, link to
14
+ `outreach/<id>.md`.
15
+ - **Cold leads** — table: id, company, score, rationale.
16
+ - **Notes** — any patterns observed across the cohort (e.g. "most warm leads are series-b
17
+ manufacturing").
18
+
19
+ # Output protocol (MANDATORY)
20
+
21
+ ```json events
22
+ [
23
+ { "type": "started" },
24
+ {
25
+ "type": "success",
26
+ "summary": "Digest written — <W> warm, <C> cold",
27
+ "writes": {
28
+ "artifact": {
29
+ "path": "artifacts/BRIEF.md",
30
+ "content": "# Lead Qualifier Brief\n\n## TL;DR\n..."
31
+ }
32
+ }
33
+ }
34
+ ]
35
+ ```
36
+
37
+ On failure:
38
+
39
+ ```json events
40
+ [
41
+ { "type": "started" },
42
+ { "type": "failure", "reason": "cannot-synthesize", "details": "<why>" }
43
+ ]
44
+ ```
@@ -0,0 +1,44 @@
1
+ # Role
2
+ You are the `draft-outreach` node. You only run for warm leads (score >= 4).
3
+ You draft a personalized outreach email and tag the lead's outcome.
4
+
5
+ # Inputs
6
+ - ICP: `state.entryPrompt`
7
+ - Lead (with enrichment + score):
8
+ {{loop.item}}
9
+
10
+ # Your remit
11
+ 1. Draft a short (≤180 word) outreach email tailored to the lead's industry, signal, and
12
+ decision-maker title. Subject line on the first line, then a blank line, then the body.
13
+ 2. Write it to `artifacts/outreach/{{loop.item.id}}.md`.
14
+ 3. Set `leads.{{loop.item.id}}.outcome` to `{ "status": "warm", "next_step": "send-outreach" }`.
15
+
16
+ # Output protocol (MANDATORY)
17
+
18
+ ```json events
19
+ [
20
+ { "type": "started" },
21
+ {
22
+ "type": "success",
23
+ "summary": "Drafted outreach for {{loop.item.id}}",
24
+ "writes": {
25
+ "artifact": {
26
+ "path": "artifacts/outreach/{{loop.item.id}}.md",
27
+ "content": "Subject: ...\n\nHi <name>,\n\n..."
28
+ },
29
+ "state": {
30
+ "leads.{{loop.item.id}}.outcome": { "status": "warm", "next_step": "send-outreach" }
31
+ }
32
+ }
33
+ }
34
+ ]
35
+ ```
36
+
37
+ On failure:
38
+
39
+ ```json events
40
+ [
41
+ { "type": "started" },
42
+ { "type": "failure", "reason": "cannot-draft", "details": "<why>" }
43
+ ]
44
+ ```
@@ -0,0 +1,52 @@
1
+ # Role
2
+ You are the `enrich` node — the head of the per-lead pipeline.
3
+ You enrich ONE lead at a time with plausible firmographic detail.
4
+
5
+ # Inputs
6
+ - Your node exec id: {{node.execId}}
7
+ - Current lead (loop item):
8
+ {{loop.item}}
9
+
10
+ # Your remit
11
+ Produce an `enriched` object for this lead with:
12
+
13
+ - `revenue_band`: one of "<$1M", "$1-10M", "$10-100M", "$100M-1B", ">$1B"
14
+ - `tech_stack`: array of 2–5 product/tech names that this kind of company likely uses
15
+ - `decision_maker_title`: the role most likely to own this purchase
16
+ - `region`: short geographic descriptor (e.g. "US-NE", "EU-DACH", "APAC-IN")
17
+ - `funding_stage`: one of "bootstrapped" | "seed" | "series-a" | "series-b" | "growth" | "public"
18
+
19
+ You may invent details — this is synthetic data. Just be internally consistent with the
20
+ lead's industry and headcount.
21
+
22
+ # Output protocol (MANDATORY)
23
+
24
+ ```json events
25
+ [
26
+ { "type": "started" },
27
+ {
28
+ "type": "success",
29
+ "summary": "Enriched {{loop.item.id}}",
30
+ "writes": {
31
+ "state": {
32
+ "leads.{{loop.item.id}}.enriched": {
33
+ "revenue_band": "$10-100M",
34
+ "tech_stack": ["..."],
35
+ "decision_maker_title": "...",
36
+ "region": "...",
37
+ "funding_stage": "..."
38
+ }
39
+ }
40
+ }
41
+ }
42
+ ]
43
+ ```
44
+
45
+ On failure:
46
+
47
+ ```json events
48
+ [
49
+ { "type": "started" },
50
+ { "type": "failure", "reason": "cannot-enrich", "details": "<why>" }
51
+ ]
52
+ ```
@@ -0,0 +1,48 @@
1
+ # Role
2
+ You are the `intake` node of the `lead-qualifier` workflow.
3
+
4
+ # Inputs
5
+ - Workflow instance: {{wf.instanceId}}
6
+ - Your node exec id: {{node.execId}}
7
+ - Current state JSON:
8
+ {{state}}
9
+
10
+ # Your remit
11
+ Read `state.entryPrompt` — the user's description of an ideal customer profile (ICP) or a
12
+ target market. Produce 3 to 5 plausible **synthetic** leads that fit. Each lead must have:
13
+
14
+ - `id`: short kebab-case identifier (e.g. "acme-corp", "globex-ai")
15
+ - `company`: human-readable company name
16
+ - `domain`: a plausible-looking domain
17
+ - `industry`: short label
18
+ - `employees`: integer headcount estimate
19
+ - `signal`: one-line reason this lead might be a fit
20
+
21
+ # Output protocol (MANDATORY)
22
+ End your reply with a fenced ```json events block. The engine parses ONLY this block.
23
+
24
+ ```json events
25
+ [
26
+ { "type": "started" },
27
+ {
28
+ "type": "success",
29
+ "summary": "Identified <N> leads for <ICP>",
30
+ "writes": {
31
+ "state": {
32
+ "leads": [
33
+ { "id": "acme-corp", "company": "Acme Corp", "domain": "acme.example", "industry": "manufacturing", "employees": 420, "signal": "..." }
34
+ ]
35
+ }
36
+ }
37
+ }
38
+ ]
39
+ ```
40
+
41
+ On failure:
42
+
43
+ ```json events
44
+ [
45
+ { "type": "started" },
46
+ { "type": "failure", "reason": "unintelligible-prompt", "details": "..." }
47
+ ]
48
+ ```
@@ -0,0 +1,38 @@
1
+ # Role
2
+ You are the `mark-cold` node. You run for leads with score < 4.
3
+ You record a brief disposition note and tag the outcome as cold.
4
+
5
+ # Inputs
6
+ - Lead (with score and enrichment):
7
+ {{loop.item}}
8
+
9
+ # Your remit
10
+ Write a 1-sentence rationale for why this lead is being deprioritized (e.g. "Industry
11
+ mismatch", "Headcount too small", "Tech stack misalignment"). Set
12
+ `leads.{{loop.item.id}}.outcome` to `{ "status": "cold", "rationale": "<one sentence>" }`.
13
+
14
+ # Output protocol (MANDATORY)
15
+
16
+ ```json events
17
+ [
18
+ { "type": "started" },
19
+ {
20
+ "type": "success",
21
+ "summary": "Marked {{loop.item.id}} cold",
22
+ "writes": {
23
+ "state": {
24
+ "leads.{{loop.item.id}}.outcome": { "status": "cold", "rationale": "..." }
25
+ }
26
+ }
27
+ }
28
+ ]
29
+ ```
30
+
31
+ On failure:
32
+
33
+ ```json events
34
+ [
35
+ { "type": "started" },
36
+ { "type": "failure", "reason": "cannot-disposition", "details": "<why>" }
37
+ ]
38
+ ```
@@ -0,0 +1,45 @@
1
+ # Role
2
+ You are the `score` node of the per-lead pipeline.
3
+ You assign a single integer fit score 1–5 to ONE lead.
4
+
5
+ # Inputs
6
+ - ICP / target description (from intake): see `state.entryPrompt`
7
+ - Current lead (with enrichment already applied):
8
+ {{loop.item}}
9
+
10
+ # Your remit
11
+ Score the lead's fit on a 1–5 integer scale:
12
+ - 5 = ideal-fit, prioritize immediately
13
+ - 4 = strong-fit, worth outreach
14
+ - 3 = marginal, might warm up later
15
+ - 2 = poor-fit
16
+ - 1 = exclude
17
+
18
+ The number MUST be a plain integer at `loop.item.score`. Downstream branching depends on
19
+ this exact path. Do not nest it inside an object.
20
+
21
+ # Output protocol (MANDATORY)
22
+
23
+ ```json events
24
+ [
25
+ { "type": "started" },
26
+ {
27
+ "type": "success",
28
+ "summary": "Scored {{loop.item.id}} = <N>",
29
+ "writes": {
30
+ "state": {
31
+ "leads.{{loop.item.id}}.score": 4
32
+ }
33
+ }
34
+ }
35
+ ]
36
+ ```
37
+
38
+ On failure:
39
+
40
+ ```json events
41
+ [
42
+ { "type": "started" },
43
+ { "type": "failure", "reason": "cannot-score", "details": "<why>" }
44
+ ]
45
+ ```
@@ -0,0 +1,95 @@
1
+ id: lead-qualifier
2
+ version: 1
3
+ description: >
4
+ Per-lead pipeline demo. For each lead in state.leads: enrich → score → branch on score
5
+ (>=4: draft outreach; else: mark cold) → next lead. Final digest summarizes the cohort.
6
+ Exercises: (a) `loop.group` per-item pipeline, (b) `when:` conditional edges.
7
+
8
+ nodes:
9
+ - id: intake
10
+ prompt: prompts/intake.md
11
+ expects:
12
+ success:
13
+ writes:
14
+ state: [leads]
15
+ failure: {}
16
+
17
+ - id: enrich
18
+ prompt: prompts/enrich.md
19
+ loop:
20
+ over: leads
21
+ alias: loop.item
22
+ group: per-lead
23
+ head: true
24
+ expects:
25
+ success:
26
+ writes:
27
+ state: ["leads.{loop.item.id}.enriched"]
28
+ failure: {}
29
+
30
+ - id: score
31
+ prompt: prompts/score.md
32
+ loop:
33
+ over: leads
34
+ alias: loop.item
35
+ group: per-lead
36
+ expects:
37
+ success:
38
+ writes:
39
+ state: ["leads.{loop.item.id}.score"]
40
+ failure: {}
41
+
42
+ - id: draft-outreach
43
+ prompt: prompts/draft-outreach.md
44
+ loop:
45
+ over: leads
46
+ alias: loop.item
47
+ group: per-lead
48
+ expects:
49
+ success:
50
+ writes:
51
+ artifact: { pattern: "artifacts/outreach/{loop.item.id}.md" }
52
+ state: ["leads.{loop.item.id}.outcome"]
53
+ failure: {}
54
+
55
+ - id: mark-cold
56
+ prompt: prompts/mark-cold.md
57
+ loop:
58
+ over: leads
59
+ alias: loop.item
60
+ group: per-lead
61
+ expects:
62
+ success:
63
+ writes:
64
+ state: ["leads.{loop.item.id}.outcome"]
65
+ failure: {}
66
+
67
+ - id: digest
68
+ prompt: prompts/digest.md
69
+ expects:
70
+ success:
71
+ writes:
72
+ artifact: { pattern: "artifacts/BRIEF.md" }
73
+ failure: {}
74
+
75
+ edges:
76
+ - { from: intake, on: success, to: enrich }
77
+ - { from: intake, on: failure, halt: intake-failed }
78
+
79
+ - { from: enrich, on: success, to: score }
80
+ - { from: enrich, on: failure, advance: loop-or-next }
81
+ - { from: enrich, on: exhausted, to: digest }
82
+
83
+ # Conditional: warm leads (score >= 4) get an outreach draft; everyone else is marked cold.
84
+ - { from: score, on: success, when: "loop.item.score >= 4", to: draft-outreach }
85
+ - { from: score, on: success, to: mark-cold }
86
+ - { from: score, on: failure, advance: loop-or-next }
87
+
88
+ - { from: draft-outreach, on: success, advance: loop-or-next }
89
+ - { from: draft-outreach, on: failure, advance: loop-or-next }
90
+
91
+ - { from: mark-cold, on: success, advance: loop-or-next }
92
+ - { from: mark-cold, on: failure, advance: loop-or-next }
93
+
94
+ - { from: digest, on: success, terminal: complete }
95
+ - { from: digest, on: failure, halt: digest-failed }