@codedrifters/configulator 0.0.391 → 0.0.393
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/lib/index.d.mts +28 -0
- package/lib/index.d.ts +28 -0
- package/lib/index.js +37 -20
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +37 -20
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.d.mts
CHANGED
|
@@ -5091,16 +5091,44 @@ declare const DEFAULT_SOURCES_THRESHOLDS: ScopeGateThresholds;
|
|
|
5091
5091
|
* identical `ac=9 / src=2` dimensions, so the template's shape
|
|
5092
5092
|
* itself is what trips the global cap. Cap: `mediumMax: 12` on
|
|
5093
5093
|
* the AC axis (max observed 9 + ~3 headroom); sources unchanged.
|
|
5094
|
+
* - `research:scope` — the `research-analyst` Phase-1 scope phase
|
|
5095
|
+
* decomposes a research question and writes a single scope file
|
|
5096
|
+
* whose ACs are the per-section content checklist for that one
|
|
5097
|
+
* deliverable (question decomposition, per-slice briefs, and the
|
|
5098
|
+
* acceptance criteria for the final deliverable), not a phase-
|
|
5099
|
+
* completion checklist that can be decomposed. Sibling of
|
|
5100
|
+
* `research:verify` in the same pipeline; observed ac=7
|
|
5101
|
+
* (`codedrifters/openhi-planning`#6034). Cap: `mediumMax: 12` on
|
|
5102
|
+
* the AC axis (matching the `research:verify` sibling); sources
|
|
5103
|
+
* unchanged.
|
|
5094
5104
|
* - `software:profile` — software-product profile pages enumerate
|
|
5095
5105
|
* per-section content invariants (overview, vendor, integrations,
|
|
5096
5106
|
* pricing, security posture, …). Max observed 11 ACs in the same
|
|
5097
5107
|
* openhi-planning sample; cap: `mediumMax: 14` on the AC axis
|
|
5098
5108
|
* (max observed + 3 headroom); sources unchanged.
|
|
5109
|
+
* - `software:research` — the `software-profile` Phase-1 research
|
|
5110
|
+
* phase gathers public sources and writes a single bounded
|
|
5111
|
+
* research-notes file whose ACs are the per-section content
|
|
5112
|
+
* checklist for that one deliverable, not a decomposable plan.
|
|
5113
|
+
* Sibling of `software:profile` in the same pipeline; observed
|
|
5114
|
+
* ac=8 (`codedrifters/openhi-planning`#6259). Cap: `mediumMax: 14`
|
|
5115
|
+
* on the AC axis (matching the `software:profile` sibling);
|
|
5116
|
+
* sources unchanged.
|
|
5099
5117
|
* - `regulatory:research` — single regulation pages carry per-
|
|
5100
5118
|
* section ACs covering jurisdiction, scope, obligations,
|
|
5101
5119
|
* penalties, and effective dates. Single-document conformance
|
|
5102
5120
|
* scans run ac=11; cap: `mediumMax: 12` on the AC axis;
|
|
5103
5121
|
* sources unchanged.
|
|
5122
|
+
* - `regulatory:impact` — the `regulatory-research` Phase-3 impact
|
|
5123
|
+
* phase is synthesis-only (no web searches): it appends a single
|
|
5124
|
+
* `## Impact` section to the regulation page — product-impact
|
|
5125
|
+
* assessment, capability-gap enumeration, and obligation hand-offs
|
|
5126
|
+
* — whose ACs are the per-section content checklist for that one
|
|
5127
|
+
* document section. Sibling of `regulatory:research`; observed
|
|
5128
|
+
* ac=9 (`codedrifters/openhi-planning`#3505). Cap: `mediumMax: 10`
|
|
5129
|
+
* on the AC axis (observed max 9 + headroom; the tighter cap
|
|
5130
|
+
* versus the research sibling's 12 reflects the narrower
|
|
5131
|
+
* single-section deliverable); sources unchanged.
|
|
5104
5132
|
* - `standards:research` — single standard-version research notes
|
|
5105
5133
|
* enumerate one cohesive deliverable across per-section ACs
|
|
5106
5134
|
* (candidate encodings, reconciliation, storage/query analysis,
|
package/lib/index.d.ts
CHANGED
|
@@ -5140,16 +5140,44 @@ declare const DEFAULT_SOURCES_THRESHOLDS: ScopeGateThresholds;
|
|
|
5140
5140
|
* identical `ac=9 / src=2` dimensions, so the template's shape
|
|
5141
5141
|
* itself is what trips the global cap. Cap: `mediumMax: 12` on
|
|
5142
5142
|
* the AC axis (max observed 9 + ~3 headroom); sources unchanged.
|
|
5143
|
+
* - `research:scope` — the `research-analyst` Phase-1 scope phase
|
|
5144
|
+
* decomposes a research question and writes a single scope file
|
|
5145
|
+
* whose ACs are the per-section content checklist for that one
|
|
5146
|
+
* deliverable (question decomposition, per-slice briefs, and the
|
|
5147
|
+
* acceptance criteria for the final deliverable), not a phase-
|
|
5148
|
+
* completion checklist that can be decomposed. Sibling of
|
|
5149
|
+
* `research:verify` in the same pipeline; observed ac=7
|
|
5150
|
+
* (`codedrifters/openhi-planning`#6034). Cap: `mediumMax: 12` on
|
|
5151
|
+
* the AC axis (matching the `research:verify` sibling); sources
|
|
5152
|
+
* unchanged.
|
|
5143
5153
|
* - `software:profile` — software-product profile pages enumerate
|
|
5144
5154
|
* per-section content invariants (overview, vendor, integrations,
|
|
5145
5155
|
* pricing, security posture, …). Max observed 11 ACs in the same
|
|
5146
5156
|
* openhi-planning sample; cap: `mediumMax: 14` on the AC axis
|
|
5147
5157
|
* (max observed + 3 headroom); sources unchanged.
|
|
5158
|
+
* - `software:research` — the `software-profile` Phase-1 research
|
|
5159
|
+
* phase gathers public sources and writes a single bounded
|
|
5160
|
+
* research-notes file whose ACs are the per-section content
|
|
5161
|
+
* checklist for that one deliverable, not a decomposable plan.
|
|
5162
|
+
* Sibling of `software:profile` in the same pipeline; observed
|
|
5163
|
+
* ac=8 (`codedrifters/openhi-planning`#6259). Cap: `mediumMax: 14`
|
|
5164
|
+
* on the AC axis (matching the `software:profile` sibling);
|
|
5165
|
+
* sources unchanged.
|
|
5148
5166
|
* - `regulatory:research` — single regulation pages carry per-
|
|
5149
5167
|
* section ACs covering jurisdiction, scope, obligations,
|
|
5150
5168
|
* penalties, and effective dates. Single-document conformance
|
|
5151
5169
|
* scans run ac=11; cap: `mediumMax: 12` on the AC axis;
|
|
5152
5170
|
* sources unchanged.
|
|
5171
|
+
* - `regulatory:impact` — the `regulatory-research` Phase-3 impact
|
|
5172
|
+
* phase is synthesis-only (no web searches): it appends a single
|
|
5173
|
+
* `## Impact` section to the regulation page — product-impact
|
|
5174
|
+
* assessment, capability-gap enumeration, and obligation hand-offs
|
|
5175
|
+
* — whose ACs are the per-section content checklist for that one
|
|
5176
|
+
* document section. Sibling of `regulatory:research`; observed
|
|
5177
|
+
* ac=9 (`codedrifters/openhi-planning`#3505). Cap: `mediumMax: 10`
|
|
5178
|
+
* on the AC axis (observed max 9 + headroom; the tighter cap
|
|
5179
|
+
* versus the research sibling's 12 reflects the narrower
|
|
5180
|
+
* single-section deliverable); sources unchanged.
|
|
5153
5181
|
* - `standards:research` — single standard-version research notes
|
|
5154
5182
|
* enumerate one cohesive deliverable across per-section ACs
|
|
5155
5183
|
* (candidate encodings, reconciliation, storage/query analysis,
|
package/lib/index.js
CHANGED
|
@@ -14213,12 +14213,21 @@ var DEFAULT_BUNDLE_OVERRIDES = {
|
|
|
14213
14213
|
"research:verify": {
|
|
14214
14214
|
acceptanceCriteria: { smallMax: 3, mediumMax: 12 }
|
|
14215
14215
|
},
|
|
14216
|
+
"research:scope": {
|
|
14217
|
+
acceptanceCriteria: { smallMax: 3, mediumMax: 12 }
|
|
14218
|
+
},
|
|
14216
14219
|
"software:profile": {
|
|
14217
14220
|
acceptanceCriteria: { smallMax: 3, mediumMax: 14 }
|
|
14218
14221
|
},
|
|
14222
|
+
"software:research": {
|
|
14223
|
+
acceptanceCriteria: { smallMax: 3, mediumMax: 14 }
|
|
14224
|
+
},
|
|
14219
14225
|
"regulatory:research": {
|
|
14220
14226
|
acceptanceCriteria: { smallMax: 3, mediumMax: 12 }
|
|
14221
14227
|
},
|
|
14228
|
+
"regulatory:impact": {
|
|
14229
|
+
acceptanceCriteria: { smallMax: 3, mediumMax: 10 }
|
|
14230
|
+
},
|
|
14222
14231
|
"standards:research": {
|
|
14223
14232
|
acceptanceCriteria: { smallMax: 3, mediumMax: 10 }
|
|
14224
14233
|
},
|
|
@@ -15024,8 +15033,9 @@ function renderUnblockDependentsSection(ud) {
|
|
|
15024
15033
|
"",
|
|
15025
15034
|
"1. Searches open issues for `Depends on: #<closed>` references in",
|
|
15026
15035
|
" their body.",
|
|
15027
|
-
"2. For each match, re-reads every dependency listed
|
|
15028
|
-
" `Depends on:`
|
|
15036
|
+
"2. For each match, re-reads every dependency listed across",
|
|
15037
|
+
" **all** `Depends on:` lines in the body (bodies routinely list",
|
|
15038
|
+
" one dependency per line) and checks whether they are all closed.",
|
|
15029
15039
|
"3. If **all** dependencies are closed, flips the dependent from",
|
|
15030
15040
|
" `status:blocked` to `status:ready` and posts a one-line comment",
|
|
15031
15041
|
" citing the resolving issue.",
|
|
@@ -15164,14 +15174,17 @@ function renderUnblockDependentsScript(ud) {
|
|
|
15164
15174
|
"",
|
|
15165
15175
|
"# \u2500\u2500 helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",
|
|
15166
15176
|
"",
|
|
15167
|
-
'# Extract issue numbers from a "Depends on:"
|
|
15168
|
-
'#
|
|
15177
|
+
'# Extract issue numbers from a "Depends on:" text. The argument may be a',
|
|
15178
|
+
'# single line ("Depends on: #1, #2, #3") OR several Depends-on lines',
|
|
15179
|
+
"# joined into one string: bodies routinely list one dependency per line",
|
|
15180
|
+
"# (issue #881), so callers union every matching line before calling this.",
|
|
15181
|
+
"# Returns the space-separated union of every #<n> reference, or an empty",
|
|
15182
|
+
'# string when the text has no concrete references (e.g. a lone "(none)"',
|
|
15183
|
+
'# sentinel). References are extracted directly, so a stray "(none)"',
|
|
15184
|
+
"# concatenated with a real dep line never suppresses the real dependency",
|
|
15185
|
+
"# \u2014 only reference-free text counts as having no dependencies.",
|
|
15169
15186
|
"parse_deps() {",
|
|
15170
15187
|
' local line="$1"',
|
|
15171
|
-
` if echo "$line" | grep -qi '(none)'; then`,
|
|
15172
|
-
' echo ""',
|
|
15173
|
-
" return",
|
|
15174
|
-
" fi",
|
|
15175
15188
|
` echo "$line" | grep -oE '#[0-9]+' | tr -d '#' | tr '\\n' ' ' || echo ""`,
|
|
15176
15189
|
"}",
|
|
15177
15190
|
"",
|
|
@@ -15228,11 +15241,12 @@ function renderUnblockDependentsScript(ud) {
|
|
|
15228
15241
|
" exit 0",
|
|
15229
15242
|
"fi",
|
|
15230
15243
|
"",
|
|
15231
|
-
"#
|
|
15232
|
-
"#
|
|
15244
|
+
"# Union every `Depends on:` line per candidate (a body may list one",
|
|
15245
|
+
"# dependency per line) into a single space-joined dep string and stream",
|
|
15246
|
+
"# as tab-separated number / title / dep-line tuples.",
|
|
15233
15247
|
`matches=$(echo "$dependents" | jq -r '`,
|
|
15234
15248
|
" .[] |",
|
|
15235
|
-
' (.body | split("\\n") | map(select(test("Depends on:"; "i"))) |
|
|
15249
|
+
' (.body | split("\\n") | map(select(test("Depends on:"; "i"))) | join(" ")) as $dep_line |',
|
|
15236
15250
|
' "\\(.number)\\t\\(.title)\\t\\($dep_line)"',
|
|
15237
15251
|
"')",
|
|
15238
15252
|
"",
|
|
@@ -15404,14 +15418,17 @@ function buildCheckBlockedScript(tiers, scopeGate, _runRatio) {
|
|
|
15404
15418
|
"",
|
|
15405
15419
|
"# \u2500\u2500 helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",
|
|
15406
15420
|
"",
|
|
15407
|
-
'# Extract issue numbers from a "Depends on:"
|
|
15408
|
-
'#
|
|
15421
|
+
'# Extract issue numbers from a "Depends on:" text. The argument may be a',
|
|
15422
|
+
'# single line ("Depends on: #1, #2, #3") OR several Depends-on lines',
|
|
15423
|
+
"# joined into one string: bodies routinely list one dependency per line",
|
|
15424
|
+
"# (issue #881), so callers union every matching line before calling this.",
|
|
15425
|
+
"# Returns the space-separated union of every #<n> reference, or an empty",
|
|
15426
|
+
'# string when the text has no concrete references (e.g. a lone "(none)"',
|
|
15427
|
+
'# sentinel). References are extracted directly, so a stray "(none)"',
|
|
15428
|
+
"# concatenated with a real dep line never suppresses the real dependency",
|
|
15429
|
+
"# \u2014 only reference-free text counts as having no dependencies.",
|
|
15409
15430
|
"parse_deps() {",
|
|
15410
15431
|
' local line="$1"',
|
|
15411
|
-
` if echo "$line" | grep -qi '(none)'; then`,
|
|
15412
|
-
' echo ""',
|
|
15413
|
-
" return",
|
|
15414
|
-
" fi",
|
|
15415
15432
|
` echo "$line" | grep -oE '#[0-9]+' | tr -d '#' | tr '\\n' ' ' || echo ""`,
|
|
15416
15433
|
"}",
|
|
15417
15434
|
"",
|
|
@@ -15459,7 +15476,7 @@ function buildCheckBlockedScript(tiers, scopeGate, _runRatio) {
|
|
|
15459
15476
|
" local issue_data",
|
|
15460
15477
|
` issue_data=$(echo "$issues" | jq -r '`,
|
|
15461
15478
|
" .[] |",
|
|
15462
|
-
' (.body | split("\\n") | map(select(test("Depends on:"; "i"))) |
|
|
15479
|
+
' (.body | split("\\n") | map(select(test("Depends on:"; "i"))) | join(" ")) as $dep_line |',
|
|
15463
15480
|
' "\\(.number)\\t\\($dep_line)"',
|
|
15464
15481
|
" ')",
|
|
15465
15482
|
"",
|
|
@@ -15559,7 +15576,7 @@ function buildCheckBlockedScript(tiers, scopeGate, _runRatio) {
|
|
|
15559
15576
|
" local issue_data",
|
|
15560
15577
|
` issue_data=$(echo "$issues" | jq -r '`,
|
|
15561
15578
|
" .[] |",
|
|
15562
|
-
' (.body | split("\\n") | map(select(test("Depends on:"; "i"))) |
|
|
15579
|
+
' (.body | split("\\n") | map(select(test("Depends on:"; "i"))) | join(" ")) as $dep_line |',
|
|
15563
15580
|
' (.labels | map(.name) | map(select(startswith("type:"))) | .[0] // "") as $type_label |',
|
|
15564
15581
|
' "\\(.number)\\t\\(.title)\\t\\($type_label)\\t\\($dep_line)"',
|
|
15565
15582
|
" ')",
|
|
@@ -15664,7 +15681,7 @@ function buildCheckBlockedScript(tiers, scopeGate, _runRatio) {
|
|
|
15664
15681
|
" local bl_data",
|
|
15665
15682
|
` bl_data=$(echo "$bl_issues" | jq -r '`,
|
|
15666
15683
|
" .[] |",
|
|
15667
|
-
' (.body | split("\\n") | map(select(test("Depends on:"; "i"))) |
|
|
15684
|
+
' (.body | split("\\n") | map(select(test("Depends on:"; "i"))) | join(" ")) as $dep_line |',
|
|
15668
15685
|
' "\\(.number)\\t\\(.title)\\t\\(.updatedAt)\\t\\($dep_line)"',
|
|
15669
15686
|
" ')",
|
|
15670
15687
|
"",
|