@deftai/directive-core 0.96.0 → 0.98.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/authz/classify.js +291 -0
  2. package/dist/cache/archive.js +10 -4
  3. package/dist/check/cached-orchestrator.d.ts +5 -0
  4. package/dist/check/cached-orchestrator.js +18 -1
  5. package/dist/check/gate-lists.d.ts +20 -0
  6. package/dist/check/gate-lists.js +54 -9
  7. package/dist/check/index.d.ts +1 -1
  8. package/dist/check/index.js +1 -1
  9. package/dist/check/orchestrator.d.ts +4 -0
  10. package/dist/check/orchestrator.js +4 -0
  11. package/dist/consumer-check-contract/evaluate.d.ts +124 -0
  12. package/dist/consumer-check-contract/evaluate.js +699 -0
  13. package/dist/consumer-check-contract/index.d.ts +5 -0
  14. package/dist/consumer-check-contract/index.js +5 -0
  15. package/dist/delivery-attempt/disk-begin.d.ts +51 -0
  16. package/dist/delivery-attempt/disk-begin.js +68 -0
  17. package/dist/delivery-attempt/evaluate.d.ts +26 -0
  18. package/dist/delivery-attempt/evaluate.js +443 -0
  19. package/dist/delivery-attempt/fingerprint.d.ts +32 -0
  20. package/dist/delivery-attempt/fingerprint.js +100 -0
  21. package/dist/delivery-attempt/handoff.d.ts +25 -0
  22. package/dist/delivery-attempt/handoff.js +102 -0
  23. package/dist/delivery-attempt/index.d.ts +17 -0
  24. package/dist/delivery-attempt/index.js +17 -0
  25. package/dist/delivery-attempt/ledger.d.ts +169 -0
  26. package/dist/delivery-attempt/ledger.js +758 -0
  27. package/dist/delivery-attempt/material-delta.d.ts +38 -0
  28. package/dist/delivery-attempt/material-delta.js +126 -0
  29. package/dist/delivery-attempt/types.d.ts +210 -0
  30. package/dist/delivery-attempt/types.js +77 -0
  31. package/dist/doctor/checks.d.ts +7 -0
  32. package/dist/doctor/checks.js +83 -0
  33. package/dist/doctor/index.d.ts +1 -0
  34. package/dist/doctor/index.js +1 -0
  35. package/dist/doctor/main.js +12 -0
  36. package/dist/doctor/openclaw-soft-rebind.d.ts +26 -0
  37. package/dist/doctor/openclaw-soft-rebind.js +164 -0
  38. package/dist/hooks/dispatcher.d.ts +7 -1
  39. package/dist/hooks/dispatcher.js +117 -13
  40. package/dist/index.d.ts +4 -0
  41. package/dist/index.js +4 -0
  42. package/dist/init-deposit/gitignore.js +7 -0
  43. package/dist/init-deposit/hygiene.d.ts +70 -1
  44. package/dist/init-deposit/hygiene.js +582 -8
  45. package/dist/init-deposit/init-deposit.js +5 -0
  46. package/dist/init-deposit/refresh.js +3 -0
  47. package/dist/init-deposit/scaffold.js +277 -4
  48. package/dist/init-deposit/skill-discovery-deposit.js +15 -0
  49. package/dist/policy/check-resume.d.ts +72 -0
  50. package/dist/policy/check-resume.js +253 -0
  51. package/dist/policy/coverage-check-resume-presets.d.ts +46 -0
  52. package/dist/policy/coverage-check-resume-presets.js +228 -0
  53. package/dist/policy/coverage-debt.d.ts +76 -0
  54. package/dist/policy/coverage-debt.js +262 -0
  55. package/dist/policy/index.d.ts +3 -0
  56. package/dist/policy/index.js +50 -21
  57. package/dist/pr-merge-readiness/ci-gate.d.ts +29 -1
  58. package/dist/pr-merge-readiness/ci-gate.js +191 -24
  59. package/dist/pr-merge-readiness/compute.js +10 -1
  60. package/dist/pr-merge-readiness/index.d.ts +2 -1
  61. package/dist/pr-merge-readiness/index.js +2 -1
  62. package/dist/pr-merge-readiness/output.js +14 -0
  63. package/dist/pr-merge-readiness/platform-status.d.ts +29 -0
  64. package/dist/pr-merge-readiness/platform-status.js +49 -0
  65. package/dist/pr-watch/constants.d.ts +10 -0
  66. package/dist/pr-watch/constants.js +12 -1
  67. package/dist/pr-watch/main.js +16 -1
  68. package/dist/pr-watch/probe.js +13 -1
  69. package/dist/pr-watch/types.d.ts +3 -2
  70. package/dist/pr-watch/watch.js +14 -7
  71. package/dist/release/auto-hatch.d.ts +114 -0
  72. package/dist/release/auto-hatch.js +301 -0
  73. package/dist/release/coverage-debt-ledger.d.ts +22 -0
  74. package/dist/release/coverage-debt-ledger.js +157 -0
  75. package/dist/release/index.d.ts +3 -0
  76. package/dist/release/index.js +3 -0
  77. package/dist/release/pipeline.js +164 -12
  78. package/dist/release/suite-stamp.d.ts +44 -0
  79. package/dist/release/suite-stamp.js +133 -0
  80. package/dist/release/types.d.ts +19 -0
  81. package/dist/scope-provenance/digest.d.ts +67 -0
  82. package/dist/scope-provenance/digest.js +188 -0
  83. package/dist/scope-provenance/evaluate.d.ts +82 -0
  84. package/dist/scope-provenance/evaluate.js +528 -0
  85. package/dist/scope-provenance/index.d.ts +6 -0
  86. package/dist/scope-provenance/index.js +6 -0
  87. package/dist/session/compact-ritual.d.ts +96 -0
  88. package/dist/session/compact-ritual.js +237 -0
  89. package/dist/session/compact-ritual.spec.d.ts +2 -0
  90. package/dist/session/compact-ritual.spec.js +21 -0
  91. package/dist/session/coverage-check-resume-nudge.d.ts +34 -0
  92. package/dist/session/coverage-check-resume-nudge.js +66 -0
  93. package/dist/session/index.d.ts +3 -0
  94. package/dist/session/index.js +3 -0
  95. package/dist/session/openclaw-soft-rebind-deposit.d.ts +46 -0
  96. package/dist/session/openclaw-soft-rebind-deposit.js +165 -0
  97. package/dist/session/session-start.js +21 -0
  98. package/dist/test-boundary/evaluate.d.ts +54 -0
  99. package/dist/test-boundary/evaluate.js +368 -0
  100. package/dist/test-boundary/index.d.ts +6 -0
  101. package/dist/test-boundary/index.js +6 -0
  102. package/dist/test-boundary/policy.d.ts +52 -0
  103. package/dist/test-boundary/policy.js +182 -0
  104. package/dist/triage/bootstrap/gitignore.d.ts +1 -1
  105. package/dist/triage/bootstrap/gitignore.js +15 -1
  106. package/dist/triage/classify/label-mirror.d.ts +31 -1
  107. package/dist/triage/classify/label-mirror.js +78 -6
  108. package/dist/triage/help/registry-data.d.ts +6 -6
  109. package/dist/triage/help/registry-data.js +12 -3
  110. package/dist/vbrief-activate/activate.js +22 -6
  111. package/dist/vbrief-validate/plan-hooks.d.ts +4 -0
  112. package/dist/vbrief-validate/plan-hooks.js +54 -0
  113. package/dist/xbrief/styles.js +33 -17
  114. package/package.json +7 -3
@@ -4,6 +4,19 @@
4
4
  * One schema spine (xBRIEF v0.8); markdown is a dense render of the same plan,
5
5
  * not a second dialect.
6
6
  */
7
+ import { parseMarkdownHeading } from "../text/redos-safe.js";
8
+ /**
9
+ * Linear frontmatter ``key: value`` parse (no nested quantifiers).
10
+ * Replaces ``/^key:\s*(.+)\s*$/`` flagged as CodeQL js/polynomial-redos (#3174).
11
+ */
12
+ function frontmatterField(line, key) {
13
+ const prefix = `${key}:`;
14
+ if (!line.startsWith(prefix)) {
15
+ return null;
16
+ }
17
+ const value = line.slice(prefix.length).trim();
18
+ return value.length > 0 ? value : null;
19
+ }
7
20
  /** Required H2 section titles in the markdown form per style. */
8
21
  export const MD_REQUIRED_SECTIONS = {
9
22
  scope: ["Title", "Status", "Overview", "Items"],
@@ -200,25 +213,28 @@ export function parseMarkdownMeta(md) {
200
213
  continue;
201
214
  }
202
215
  if (inFront) {
203
- const idMatch = /^id:\s*(.+)\s*$/.exec(line);
204
- if (idMatch?.[1] !== undefined)
205
- id = idMatch[1].trim();
206
- const styleMatch = /^style:\s*(.+)\s*$/.exec(line);
207
- if (styleMatch?.[1] !== undefined)
208
- style = styleMatch[1].trim();
216
+ // Linear field parse — avoids js/polynomial-redos on \s*(.+)\s* (#3174 alerts #84-#85).
217
+ const idValue = frontmatterField(line, "id");
218
+ if (idValue !== null)
219
+ id = idValue;
220
+ const styleValue = frontmatterField(line, "style");
221
+ if (styleValue !== null)
222
+ style = styleValue;
209
223
  continue;
210
224
  }
211
- const h1 = /^#\s+(.+)$/.exec(line);
212
- if (h1?.[1] !== undefined && title === null) {
213
- title = h1[1].trim();
214
- }
215
- const h2 = /^##\s+(.+)$/.exec(line);
216
- if (h2?.[1] !== undefined) {
217
- const name = h2[1].trim();
218
- sections.add(name);
219
- afterTitleH2 = name === "Title";
220
- afterStatusH2 = name === "Status";
221
- continue;
225
+ // Linear ATX heading parse — avoids js/polynomial-redos on ^#+\s+(.+)$ (#3174 alerts #86-#87).
226
+ const heading = parseMarkdownHeading(line);
227
+ if (heading !== null) {
228
+ const name = heading.text.trim();
229
+ if (heading.hashes === "#" && title === null) {
230
+ title = name;
231
+ }
232
+ else if (heading.hashes === "##") {
233
+ sections.add(name);
234
+ afterTitleH2 = name === "Title";
235
+ afterStatusH2 = name === "Status";
236
+ continue;
237
+ }
222
238
  }
223
239
  if (afterTitleH2 && line.trim().length > 0 && !line.startsWith("#")) {
224
240
  // Prefer ## Title body over H1 when present.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deftai/directive-core",
3
- "version": "0.96.0",
3
+ "version": "0.98.0",
4
4
  "description": "TypeScript engine core for the Directive framework.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -251,6 +251,10 @@
251
251
  "types": "./dist/parent-turn-shape/index.d.ts",
252
252
  "default": "./dist/parent-turn-shape/index.js"
253
253
  },
254
+ "./delivery-attempt": {
255
+ "types": "./dist/delivery-attempt/index.d.ts",
256
+ "default": "./dist/delivery-attempt/index.js"
257
+ },
254
258
  "./intake": {
255
259
  "types": "./dist/intake/index.d.ts",
256
260
  "default": "./dist/intake/index.js"
@@ -350,8 +354,8 @@
350
354
  "provenance": true
351
355
  },
352
356
  "dependencies": {
353
- "@deftai/directive-content": "^0.96.0",
354
- "@deftai/directive-types": "^0.96.0",
357
+ "@deftai/directive-content": "^0.98.0",
358
+ "@deftai/directive-types": "^0.98.0",
355
359
  "archiver": "^8.0.0"
356
360
  },
357
361
  "scripts": {