@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.
- package/CHANGELOG.md +88 -0
- package/README.md +28 -1
- package/dist/bin/forge.js +20 -0
- package/dist/bin/forge.js.map +1 -1
- package/dist/extensions/forgecli/approve.d.ts +24 -0
- package/dist/extensions/forgecli/approve.js +202 -0
- package/dist/extensions/forgecli/approve.js.map +1 -0
- package/dist/extensions/forgecli/audience-gate.d.ts +4 -0
- package/dist/extensions/forgecli/audience-gate.js +8 -5
- package/dist/extensions/forgecli/audience-gate.js.map +1 -1
- package/dist/extensions/forgecli/collate.d.ts +24 -0
- package/dist/extensions/forgecli/collate.js +199 -0
- package/dist/extensions/forgecli/collate.js.map +1 -0
- package/dist/extensions/forgecli/commit.d.ts +24 -0
- package/dist/extensions/forgecli/commit.js +202 -0
- package/dist/extensions/forgecli/commit.js.map +1 -0
- package/dist/extensions/forgecli/fix-bug.d.ts +75 -0
- package/dist/extensions/forgecli/fix-bug.js +1133 -0
- package/dist/extensions/forgecli/fix-bug.js.map +1 -0
- package/dist/extensions/forgecli/forge-commands.js +7 -0
- package/dist/extensions/forgecli/forge-commands.js.map +1 -1
- package/dist/extensions/forgecli/forge-init.js +16 -8
- package/dist/extensions/forgecli/forge-init.js.map +1 -1
- package/dist/extensions/forgecli/forge-subagent.d.ts +29 -0
- package/dist/extensions/forgecli/forge-subagent.js +14 -1
- package/dist/extensions/forgecli/forge-subagent.js.map +1 -1
- package/dist/extensions/forgecli/hook-dispatcher.d.ts +53 -1
- package/dist/extensions/forgecli/hook-dispatcher.js +47 -1
- package/dist/extensions/forgecli/hook-dispatcher.js.map +1 -1
- package/dist/extensions/forgecli/hooks/post-init-hook.d.ts +15 -0
- package/dist/extensions/forgecli/hooks/post-init-hook.js +127 -0
- package/dist/extensions/forgecli/hooks/post-init-hook.js.map +1 -0
- package/dist/extensions/forgecli/hooks/post-sprint-hook.d.ts +37 -0
- package/dist/extensions/forgecli/hooks/post-sprint-hook.js +166 -0
- package/dist/extensions/forgecli/hooks/post-sprint-hook.js.map +1 -0
- package/dist/extensions/forgecli/index.js +47 -0
- package/dist/extensions/forgecli/index.js.map +1 -1
- package/dist/extensions/forgecli/review-code.d.ts +24 -0
- package/dist/extensions/forgecli/review-code.js +202 -0
- package/dist/extensions/forgecli/review-code.js.map +1 -0
- package/dist/extensions/forgecli/review-plan.d.ts +24 -0
- package/dist/extensions/forgecli/review-plan.js +203 -0
- package/dist/extensions/forgecli/review-plan.js.map +1 -0
- package/dist/extensions/forgecli/run-sprint.d.ts +18 -0
- package/dist/extensions/forgecli/run-sprint.js +33 -1
- package/dist/extensions/forgecli/run-sprint.js.map +1 -1
- package/dist/extensions/forgecli/run-task.d.ts +21 -2
- package/dist/extensions/forgecli/run-task.js +33 -9
- package/dist/extensions/forgecli/run-task.js.map +1 -1
- package/dist/extensions/forgecli/session-registry.d.ts +10 -0
- package/dist/extensions/forgecli/session-registry.js +9 -0
- package/dist/extensions/forgecli/session-registry.js.map +1 -1
- package/dist/extensions/forgecli/validate.d.ts +24 -0
- package/dist/extensions/forgecli/validate.js +202 -0
- package/dist/extensions/forgecli/validate.js.map +1 -0
- package/dist/extensions/forgecli/wf-engine/engine.d.ts +23 -0
- package/dist/extensions/forgecli/wf-engine/engine.js +384 -0
- package/dist/extensions/forgecli/wf-engine/engine.js.map +1 -0
- package/dist/extensions/forgecli/wf-engine/event-parser.d.ts +6 -0
- package/dist/extensions/forgecli/wf-engine/event-parser.js +29 -0
- package/dist/extensions/forgecli/wf-engine/event-parser.js.map +1 -0
- package/dist/extensions/forgecli/wf-engine/id-gen.d.ts +6 -0
- package/dist/extensions/forgecli/wf-engine/id-gen.js +17 -0
- package/dist/extensions/forgecli/wf-engine/id-gen.js.map +1 -0
- package/dist/extensions/forgecli/wf-engine/loader.d.ts +2 -0
- package/dist/extensions/forgecli/wf-engine/loader.js +100 -0
- package/dist/extensions/forgecli/wf-engine/loader.js.map +1 -0
- package/dist/extensions/forgecli/wf-engine/predicate.d.ts +7 -0
- package/dist/extensions/forgecli/wf-engine/predicate.js +36 -0
- package/dist/extensions/forgecli/wf-engine/predicate.js.map +1 -0
- package/dist/extensions/forgecli/wf-engine/prompt-compiler.d.ts +15 -0
- package/dist/extensions/forgecli/wf-engine/prompt-compiler.js +23 -0
- package/dist/extensions/forgecli/wf-engine/prompt-compiler.js.map +1 -0
- package/dist/extensions/forgecli/wf-engine/register.d.ts +9 -0
- package/dist/extensions/forgecli/wf-engine/register.js +59 -0
- package/dist/extensions/forgecli/wf-engine/register.js.map +1 -0
- package/dist/extensions/forgecli/wf-engine/remit-check.d.ts +6 -0
- package/dist/extensions/forgecli/wf-engine/remit-check.js +42 -0
- package/dist/extensions/forgecli/wf-engine/remit-check.js.map +1 -0
- package/dist/extensions/forgecli/wf-engine/state-store.d.ts +13 -0
- package/dist/extensions/forgecli/wf-engine/state-store.js +43 -0
- package/dist/extensions/forgecli/wf-engine/state-store.js.map +1 -0
- package/dist/extensions/forgecli/wf-engine/types.d.ts +66 -0
- package/dist/extensions/forgecli/wf-engine/types.js +2 -0
- package/dist/extensions/forgecli/wf-engine/types.js.map +1 -0
- package/dist/extensions/forgecli/wf-engine/worker.d.ts +11 -0
- package/dist/extensions/forgecli/wf-engine/worker.js +50 -0
- package/dist/extensions/forgecli/wf-engine/worker.js.map +1 -0
- package/dist/forge-payload/.base-pack/workflows/_fragments/context-injection.md +10 -4
- package/dist/forge-payload/.base-pack/workflows/fix_bug.md +12 -0
- package/dist/forge-payload/.schemas/bug.schema.json +4 -2
- package/dist/forge-payload/.schemas/event.schema.json +22 -3
- package/dist/forge-payload/commands/add-pipeline.md +342 -0
- package/dist/forge-payload/commands/add-task.md +269 -0
- package/dist/forge-payload/commands/ask.md +43 -0
- package/dist/forge-payload/commands/calibrate.md +356 -0
- package/dist/forge-payload/commands/config.md +202 -0
- package/dist/forge-payload/commands/enhance.md +38 -0
- package/dist/forge-payload/commands/health.md +225 -0
- package/dist/forge-payload/commands/init.md +165 -0
- package/dist/forge-payload/commands/materialize.md +119 -0
- package/dist/forge-payload/commands/migrate.md +160 -0
- package/dist/forge-payload/commands/quiz-agent.md +38 -0
- package/dist/forge-payload/commands/regenerate.md +673 -0
- package/dist/forge-payload/commands/remove.md +174 -0
- package/dist/forge-payload/commands/report-bug.md +191 -0
- package/dist/forge-payload/commands/store-query.md +73 -0
- package/dist/forge-payload/commands/store-repair.md +187 -0
- package/dist/forge-payload/commands/update-tools.md +56 -0
- package/dist/forge-payload/commands/update.md +1376 -0
- package/dist/forge-payload/tools/preflight-gate.cjs +2 -1
- package/dist/forge-payload/tools/read-verdict.cjs +41 -8
- package/dist/forge-payload/tools/store-cli.cjs +4 -3
- package/node_modules/argparse/CHANGELOG.md +216 -0
- package/node_modules/argparse/LICENSE +254 -0
- package/node_modules/argparse/README.md +84 -0
- package/node_modules/argparse/argparse.js +3707 -0
- package/node_modules/argparse/lib/sub.js +67 -0
- package/node_modules/argparse/lib/textwrap.js +440 -0
- package/node_modules/argparse/package.json +31 -0
- package/node_modules/cliui/CHANGELOG.md +121 -0
- package/node_modules/color-convert/CHANGELOG.md +54 -0
- package/node_modules/esprima/ChangeLog +235 -0
- package/node_modules/js-yaml/LICENSE +21 -0
- package/node_modules/js-yaml/README.md +247 -0
- package/node_modules/js-yaml/bin/js-yaml.js +126 -0
- package/node_modules/js-yaml/dist/js-yaml.js +3880 -0
- package/node_modules/js-yaml/dist/js-yaml.min.js +2 -0
- package/node_modules/js-yaml/dist/js-yaml.mjs +3856 -0
- package/node_modules/js-yaml/index.js +47 -0
- package/node_modules/js-yaml/lib/common.js +59 -0
- package/node_modules/js-yaml/lib/dumper.js +965 -0
- package/node_modules/js-yaml/lib/exception.js +55 -0
- package/node_modules/js-yaml/lib/loader.js +1733 -0
- package/node_modules/js-yaml/lib/schema/core.js +11 -0
- package/node_modules/js-yaml/lib/schema/default.js +22 -0
- package/node_modules/js-yaml/lib/schema/failsafe.js +17 -0
- package/node_modules/js-yaml/lib/schema/json.js +19 -0
- package/node_modules/js-yaml/lib/schema.js +121 -0
- package/node_modules/js-yaml/lib/snippet.js +101 -0
- package/node_modules/js-yaml/lib/type/binary.js +125 -0
- package/node_modules/js-yaml/lib/type/bool.js +35 -0
- package/node_modules/js-yaml/lib/type/float.js +97 -0
- package/node_modules/js-yaml/lib/type/int.js +156 -0
- package/node_modules/js-yaml/lib/type/map.js +8 -0
- package/node_modules/js-yaml/lib/type/merge.js +12 -0
- package/node_modules/js-yaml/lib/type/null.js +35 -0
- package/node_modules/js-yaml/lib/type/omap.js +44 -0
- package/node_modules/js-yaml/lib/type/pairs.js +53 -0
- package/node_modules/js-yaml/lib/type/seq.js +8 -0
- package/node_modules/js-yaml/lib/type/set.js +29 -0
- package/node_modules/js-yaml/lib/type/str.js +8 -0
- package/node_modules/js-yaml/lib/type/timestamp.js +88 -0
- package/node_modules/js-yaml/lib/type.js +66 -0
- package/node_modules/js-yaml/package.json +66 -0
- package/node_modules/mz/HISTORY.md +66 -0
- package/node_modules/proper-lockfile/CHANGELOG.md +108 -0
- package/node_modules/source-map/CHANGELOG.md +301 -0
- package/node_modules/thenify/History.md +11 -0
- package/node_modules/thenify-all/History.md +11 -0
- package/node_modules/y18n/CHANGELOG.md +100 -0
- package/node_modules/yargs/CHANGELOG.md +88 -0
- package/node_modules/yargs-parser/CHANGELOG.md +263 -0
- package/package.json +6 -2
- package/workflows/lead-qualifier/prompts/digest.md +44 -0
- package/workflows/lead-qualifier/prompts/draft-outreach.md +44 -0
- package/workflows/lead-qualifier/prompts/enrich.md +52 -0
- package/workflows/lead-qualifier/prompts/intake.md +48 -0
- package/workflows/lead-qualifier/prompts/mark-cold.md +38 -0
- package/workflows/lead-qualifier/prompts/score.md +45 -0
- package/workflows/lead-qualifier/workflow.yaml +95 -0
- package/workflows/research-brief/prompts/brief-synthesize.md +43 -0
- package/workflows/research-brief/prompts/intake.md +51 -0
- package/workflows/research-brief/prompts/source-critique.md +38 -0
- package/workflows/research-brief/prompts/source-score.md +38 -0
- package/workflows/research-brief/prompts/source-summarize.md +54 -0
- package/workflows/research-brief/workflow.yaml +66 -0
- package/dist/extensions/forgecli/session-monitor-widget.d.ts +0 -37
- package/dist/extensions/forgecli/session-monitor-widget.js +0 -320
- package/dist/extensions/forgecli/session-monitor-widget.js.map +0 -1
- package/dist/extensions/forgecli/session-monitor.d.ts +0 -2
- package/dist/extensions/forgecli/session-monitor.js +0 -135
- 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.
|
|
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 }
|