@open-tomato/rafa 0.33.0 → 0.34.1

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.
@@ -3,7 +3,7 @@ import {
3
3
  activeOutput,
4
4
  isStampableStub,
5
5
  readRafaBlocks
6
- } from "./index-dv0ycmp8.js";
6
+ } from "./index-vp0xghk2.js";
7
7
  import {
8
8
  messageOf,
9
9
  parseTaskDeclaration
@@ -324,6 +324,35 @@ var TESTS_SETTINGS = {
324
324
  testsIntegration: { key: "tests.integration", read: globList, cli: false }
325
325
  };
326
326
 
327
+ // src/config-schema-triage.ts
328
+ var SIMILARITY_THRESHOLD_MAX = 1;
329
+ var SIMILARITY_CANDIDATES_MIN = 1;
330
+ var SIMILARITY_CANDIDATES_MAX = 10;
331
+ function isThreshold(raw) {
332
+ return typeof raw === "number" && Number.isFinite(raw) && raw > 0 && raw <= SIMILARITY_THRESHOLD_MAX;
333
+ }
334
+ function isCandidateCount(raw) {
335
+ return typeof raw === "number" && Number.isSafeInteger(raw) && raw >= SIMILARITY_CANDIDATES_MIN && raw <= SIMILARITY_CANDIDATES_MAX;
336
+ }
337
+ var similarityThreshold = (raw, at) => raw === false || isThreshold(raw) ? { value: raw, problems: [], extras: [] } : refused(at, raw, `false or a number above 0 and at most ${String(SIMILARITY_THRESHOLD_MAX)}`);
338
+ var similarityCandidates = (raw, at) => isCandidateCount(raw) ? { value: raw, problems: [], extras: [] } : refused(at, raw, `a whole number from ${String(SIMILARITY_CANDIDATES_MIN)} to ${String(SIMILARITY_CANDIDATES_MAX)}`);
339
+ var TRIAGE_DEFAULTS = Object.freeze({
340
+ triageSimilarityThreshold: 0.3,
341
+ triageSimilarityCandidates: 3
342
+ });
343
+ var TRIAGE_SETTINGS = {
344
+ triageSimilarityThreshold: {
345
+ key: "triage.similarity.threshold",
346
+ read: similarityThreshold,
347
+ cli: false
348
+ },
349
+ triageSimilarityCandidates: {
350
+ key: "triage.similarity.candidates",
351
+ read: similarityCandidates,
352
+ cli: false
353
+ }
354
+ };
355
+
327
356
  // src/config-schema-wrap-up.ts
328
357
  var WRAP_UP_RETRIES_MIN = 1;
329
358
  var WRAP_UP_RETRIES_MAX = 3;
@@ -536,6 +565,7 @@ var CONFIG_DEFAULTS = Object.freeze({
536
565
  roadmapIssue: null,
537
566
  claimsStaleAfter: "3d",
538
567
  claimsAhead: "off",
568
+ ...TRIAGE_DEFAULTS,
539
569
  ...RELEASE_DEFAULTS,
540
570
  cleanupStaleDays: 30,
541
571
  cleanupWorktreeIdleDays: 7,
@@ -623,6 +653,7 @@ var SETTINGS = {
623
653
  roadmapIssue: { key: "roadmap.issue", read: issueNumber, cli: false },
624
654
  claimsStaleAfter: { key: "claims.staleAfter", read: claimsStaleAfter, cli: false },
625
655
  claimsAhead: { key: "claims.ahead", read: claimsAhead, cli: false },
656
+ ...TRIAGE_SETTINGS,
626
657
  ...RELEASE_SETTINGS,
627
658
  cleanupStaleDays: { key: "cleanup.staleDays", read: dayCount, cli: false },
628
659
  cleanupWorktreeIdleDays: {
@@ -758,6 +789,8 @@ function readLayer(rawOf, atOf) {
758
789
  roadmapIssue: read("roadmapIssue"),
759
790
  claimsStaleAfter: read("claimsStaleAfter"),
760
791
  claimsAhead: read("claimsAhead"),
792
+ triageSimilarityThreshold: read("triageSimilarityThreshold"),
793
+ triageSimilarityCandidates: read("triageSimilarityCandidates"),
761
794
  releaseEnabled: read("releaseEnabled"),
762
795
  releaseVersionFile: read("releaseVersionFile"),
763
796
  releaseChangelog: read("releaseChangelog"),
@@ -821,7 +854,14 @@ function sortKeys(document, path) {
821
854
  }
822
855
  return { named, extras, problems };
823
856
  }
857
+ var TAB_INDENTED_LINE = /^[ \t]*\t[ \t]*[^\s#]/;
858
+ function tabIndentProblems(text2, path) {
859
+ return text2.split(/\r?\n/).flatMap((line, index) => TAB_INDENTED_LINE.test(line) ? [`${path}: line ${index + 1} is indented with a tab; YAML indents with spaces only`] : []);
860
+ }
824
861
  function parseYaml(text2, path) {
862
+ const tabProblems = tabIndentProblems(text2, path);
863
+ if (tabProblems.length > 0)
864
+ throw new ConfigError(tabProblems);
825
865
  try {
826
866
  return Bun.YAML.parse(text2);
827
867
  } catch (error) {
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@ import {
10
10
  start,
11
11
  usage,
12
12
  validateManifest
13
- } from "./index-w3vyb08t.js";
13
+ } from "./index-s8ff86xt.js";
14
14
  import {
15
15
  PLAN_BLOCK_KINDS,
16
16
  PLAN_HEADER_FIELDS,
@@ -24,7 +24,7 @@ import {
24
24
  renderInjection,
25
25
  runPreflight,
26
26
  runShellProbe
27
- } from "./index-zn08ywsv.js";
27
+ } from "./index-v8d7c6sw.js";
28
28
  import {
29
29
  CORE_ADAPTER_REGISTRY,
30
30
  DISK_FILE_SYSTEM,
@@ -53,7 +53,7 @@ import {
53
53
  scopeAt,
54
54
  selectEffortStore,
55
55
  selfAndAncestors
56
- } from "./index-kz7e4gtt.js";
56
+ } from "./index-bebv92ha.js";
57
57
  import {
58
58
  CONFIG_DEFAULTS,
59
59
  CONFIG_FILE,
@@ -70,7 +70,7 @@ import {
70
70
  parseReport,
71
71
  readRafaBlocks,
72
72
  resolveConfig
73
- } from "./index-dv0ycmp8.js";
73
+ } from "./index-vp0xghk2.js";
74
74
  import"./index-d6d0942q.js";
75
75
  import"./index-k6sd4ym5.js";
76
76
  import"./index-3mzw3kzh.js";
@@ -12,7 +12,7 @@ import {
12
12
  renderInjection,
13
13
  runPreflight,
14
14
  runShellProbe
15
- } from "../index-zn08ywsv.js";
15
+ } from "../index-v8d7c6sw.js";
16
16
  import {
17
17
  FINDING_KINDS,
18
18
  FINDING_SIGNALS,
@@ -21,7 +21,7 @@ import {
21
21
  isRafaBlockKind,
22
22
  parseReport,
23
23
  readRafaBlocks
24
- } from "../index-dv0ycmp8.js";
24
+ } from "../index-vp0xghk2.js";
25
25
  import {
26
26
  INJECT_MODES
27
27
  } from "../index-fzhd3d4y.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-tomato/rafa",
3
- "version": "0.33.0",
3
+ "version": "0.34.1",
4
4
  "description": "Alpha. Runs a plan through the ralph loop: one Claude Code session per task, one commit per task, then a pull request and a CI wait.",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -57,7 +57,9 @@
57
57
  "lint": "eslint .",
58
58
  "check-types": "tsc --noEmit && bun run --filter './packages/*' check-types",
59
59
  "gate:control-bytes": "bun scripts/control-byte-gate/control-byte-gate.ts",
60
- "snapshot": "bun scripts/snapshot-runtime.ts"
60
+ "snapshot": "bun scripts/snapshot-runtime.ts",
61
+ "stretch": "bash scripts/stretch/stretch.sh",
62
+ "device:check": "bash scripts/device/check.sh"
61
63
  },
62
64
  "devDependencies": {
63
65
  "@eslint/js": "^9.39.4",