@open-tomato/rafa 0.28.0 → 0.31.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.
- package/README.md +190 -18
- package/dist/bundled/skills/dev-planner/SKILL.md +4 -4
- package/dist/cli.js +17328 -12664
- package/dist/{describe-vbwqxj1f.js → describe-b2kfwphn.js} +3 -3
- package/dist/effort/store/index.js +4 -4
- package/dist/{index-4rwvr6t4.js → index-13wzpgc1.js} +1578 -100
- package/dist/{index-p1265xgj.js → index-89j1m0f6.js} +3 -3
- package/dist/{index-em1vd7kd.js → index-b766n1aw.js} +2886 -3049
- package/dist/{index-sf2brh4w.js → index-dnwcx1cs.js} +2 -1
- package/dist/{index-4j1e3h26.js → index-e10rwa4g.js} +1 -1
- package/dist/{index-xwr54rzt.js → index-p0njjkjj.js} +2 -2
- package/dist/{index-6jkj0dcx.js → index-szgyrz6j.js} +5045 -1956
- package/dist/{index-rv7y8y1j.js → index-t6q4k1tq.js} +113 -26
- package/dist/index.js +12 -10
- package/dist/plan/index.js +3 -3
- package/package.json +1 -1
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
REQUIRED_ITEM_KEYS,
|
|
12
12
|
SKILL_TIERS,
|
|
13
13
|
STORE_BACKENDS,
|
|
14
|
+
SYNC_STRATEGIES,
|
|
14
15
|
busyTimeoutMs,
|
|
15
16
|
confidence,
|
|
16
17
|
dayCount,
|
|
@@ -37,12 +38,13 @@ import {
|
|
|
37
38
|
tierPin,
|
|
38
39
|
tierSwitch,
|
|
39
40
|
usdAmount
|
|
40
|
-
} from "./index-
|
|
41
|
+
} from "./index-dnwcx1cs.js";
|
|
41
42
|
|
|
42
43
|
// src/config-schema.ts
|
|
43
44
|
import { join } from "path";
|
|
44
45
|
|
|
45
46
|
// src/config-readers.ts
|
|
47
|
+
import { isAbsolute, normalize } from "path";
|
|
46
48
|
function mapOf(value, expected) {
|
|
47
49
|
return (raw, at) => {
|
|
48
50
|
if (!isMapping(raw)) {
|
|
@@ -74,6 +76,90 @@ var trackerKind = text("a tracker kind name");
|
|
|
74
76
|
var releaseFile = text("a file path");
|
|
75
77
|
var tierPins = mapOf(tierPin, "false or a tier");
|
|
76
78
|
var routeTable = mapOf(routeTarget, "false or an agent name");
|
|
79
|
+
var RELEASE_STRATEGIES = ["semver-by-level"];
|
|
80
|
+
var RELEASE_SETTLE_MODES = ["push", "pr"];
|
|
81
|
+
var RELEASE_TAG_MODES = ["manual", "settle"];
|
|
82
|
+
var VERSION_COLLISION_MODES = ["allow", "report", "ask", "refuse"];
|
|
83
|
+
var releaseStrategy = oneOf(RELEASE_STRATEGIES);
|
|
84
|
+
var releaseSettleMode = oneOf(RELEASE_SETTLE_MODES);
|
|
85
|
+
var releaseTagMode = oneOf(RELEASE_TAG_MODES);
|
|
86
|
+
var versionCollisionMode = oneOf(VERSION_COLLISION_MODES);
|
|
87
|
+
var UNTRACKED_DIRECTORY = ".rafa";
|
|
88
|
+
var FRAGMENTS_EXPECTED = `a relative directory path not under ${UNTRACKED_DIRECTORY}/`;
|
|
89
|
+
function isUnderUntracked(path) {
|
|
90
|
+
const [first] = normalize(path).split(/[\\/]/);
|
|
91
|
+
return first === UNTRACKED_DIRECTORY;
|
|
92
|
+
}
|
|
93
|
+
var fragmentsDirectory = (raw, at) => {
|
|
94
|
+
const reading = text(FRAGMENTS_EXPECTED)(raw, at);
|
|
95
|
+
const path = reading.value;
|
|
96
|
+
if (path === undefined || !isAbsolute(path) && !isUnderUntracked(path))
|
|
97
|
+
return reading;
|
|
98
|
+
const problem = `${at.label} is ${describeValue(raw)}, expected ${FRAGMENTS_EXPECTED}`;
|
|
99
|
+
return { value: undefined, problems: [problem], extras: [] };
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
// src/config-schema-release.ts
|
|
103
|
+
var PR_DEFAULTS = Object.freeze({
|
|
104
|
+
prProvider: null,
|
|
105
|
+
prMergeMethod: "squash",
|
|
106
|
+
prBase: null,
|
|
107
|
+
prResolveBudget: 2,
|
|
108
|
+
prVersionCollision: "report"
|
|
109
|
+
});
|
|
110
|
+
var RELEASE_DEFAULTS = Object.freeze({
|
|
111
|
+
releaseEnabled: RELEASE_AUTO,
|
|
112
|
+
releaseVersionFile: "package.json",
|
|
113
|
+
releaseChangelog: "CHANGELOG.md",
|
|
114
|
+
releaseHeading: "## {version} \u2014 {date}, {title}",
|
|
115
|
+
releaseFragments: ".changes",
|
|
116
|
+
releaseStrategy: "semver-by-level",
|
|
117
|
+
releaseSettle: "push",
|
|
118
|
+
releaseTag: "manual"
|
|
119
|
+
});
|
|
120
|
+
var DANGEROUS_RELEASE_DEFAULTS = Object.freeze({
|
|
121
|
+
dangerousAcceptVersionCollision: false
|
|
122
|
+
});
|
|
123
|
+
var PR_SETTINGS = {
|
|
124
|
+
prProvider: { key: "pr.provider", read: oneOf(PR_PROVIDERS), cli: false },
|
|
125
|
+
prMergeMethod: { key: "pr.mergeMethod", read: mergeMethod, cli: false },
|
|
126
|
+
prBase: { key: "pr.base", read: text("a branch name"), cli: false },
|
|
127
|
+
prResolveBudget: { key: "pr.resolveBudget", read: usdAmount, cli: false },
|
|
128
|
+
prVersionCollision: {
|
|
129
|
+
key: "pr.versionCollision",
|
|
130
|
+
read: versionCollisionMode,
|
|
131
|
+
cli: false
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
var RELEASE_SETTINGS = {
|
|
135
|
+
releaseEnabled: { key: "release.enabled", read: releaseEnabled, cli: false },
|
|
136
|
+
releaseVersionFile: {
|
|
137
|
+
key: "release.versionFile",
|
|
138
|
+
read: releaseFile,
|
|
139
|
+
cli: false
|
|
140
|
+
},
|
|
141
|
+
releaseChangelog: { key: "release.changelog", read: releaseFile, cli: false },
|
|
142
|
+
releaseHeading: {
|
|
143
|
+
key: "release.heading",
|
|
144
|
+
read: text("a changelog heading template"),
|
|
145
|
+
cli: false
|
|
146
|
+
},
|
|
147
|
+
releaseFragments: {
|
|
148
|
+
key: "release.fragments",
|
|
149
|
+
read: fragmentsDirectory,
|
|
150
|
+
cli: false
|
|
151
|
+
},
|
|
152
|
+
releaseStrategy: { key: "release.strategy", read: releaseStrategy, cli: false },
|
|
153
|
+
releaseSettle: { key: "release.settle", read: releaseSettleMode, cli: false },
|
|
154
|
+
releaseTag: { key: "release.tag", read: releaseTagMode, cli: false }
|
|
155
|
+
};
|
|
156
|
+
var DANGEROUS_RELEASE_SETTINGS = {
|
|
157
|
+
dangerousAcceptVersionCollision: {
|
|
158
|
+
key: "dangerous.acceptVersionCollision",
|
|
159
|
+
read: flag,
|
|
160
|
+
cli: false
|
|
161
|
+
}
|
|
162
|
+
};
|
|
77
163
|
|
|
78
164
|
// src/tiers/resolve.ts
|
|
79
165
|
import { readFileSync } from "fs";
|
|
@@ -245,6 +331,7 @@ var CONFIG_DEFAULTS = Object.freeze({
|
|
|
245
331
|
version: 1,
|
|
246
332
|
store: "sqlite",
|
|
247
333
|
effortBusyTimeoutMs: 5000,
|
|
334
|
+
effortSync: "local",
|
|
248
335
|
inject: "stage",
|
|
249
336
|
planDir: join(".rafa", "plans"),
|
|
250
337
|
specsDir: join(".rafa", "specs"),
|
|
@@ -263,20 +350,17 @@ var CONFIG_DEFAULTS = Object.freeze({
|
|
|
263
350
|
modules: Object.freeze([]),
|
|
264
351
|
allowList: Object.freeze([]),
|
|
265
352
|
settingSources: Object.freeze(["project", "local"]),
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
prBase: null,
|
|
269
|
-
prResolveBudget: 2,
|
|
353
|
+
loopWorktreeDir: join(".rafa", "worktrees"),
|
|
354
|
+
...PR_DEFAULTS,
|
|
270
355
|
boardTrustedAuthors: Object.freeze([]),
|
|
271
356
|
roadmapIssue: null,
|
|
272
|
-
|
|
273
|
-
releaseVersionFile: "package.json",
|
|
274
|
-
releaseChangelog: "CHANGELOG.md",
|
|
275
|
-
releaseHeading: "## {version} \u2014 {date}, {title}",
|
|
357
|
+
...RELEASE_DEFAULTS,
|
|
276
358
|
cleanupStaleDays: 30,
|
|
277
359
|
cleanupWorktreeIdleDays: 7,
|
|
278
360
|
cleanupKeep: Object.freeze([]),
|
|
279
361
|
dangerousAcceptStaleRefs: false,
|
|
362
|
+
...DANGEROUS_RELEASE_DEFAULTS,
|
|
363
|
+
dangerousSelfUpdateDuringLoop: false,
|
|
280
364
|
statusNotice: true,
|
|
281
365
|
tiersRafa: "on",
|
|
282
366
|
tiersSkills: new Map,
|
|
@@ -289,6 +373,7 @@ var SETTINGS = {
|
|
|
289
373
|
version: { key: "version", read: oneOf(CONFIG_VERSIONS), cli: false },
|
|
290
374
|
store: { key: "store", read: oneOf(STORE_BACKENDS), cli: true },
|
|
291
375
|
effortBusyTimeoutMs: { key: "effort.busyTimeoutMs", read: busyTimeoutMs, cli: false },
|
|
376
|
+
effortSync: { key: "effort.sync", read: oneOf(SYNC_STRATEGIES), cli: false },
|
|
292
377
|
inject: { key: "plan.inject", read: oneOf(INJECT_MODES), cli: true },
|
|
293
378
|
planDir: { key: "plan.dir", read: directory, cli: true },
|
|
294
379
|
specsDir: { key: "specs.dir", read: directory, cli: true },
|
|
@@ -338,28 +423,15 @@ var SETTINGS = {
|
|
|
338
423
|
read: subsetOf(CLAUDE_SETTING_SOURCES),
|
|
339
424
|
cli: true
|
|
340
425
|
},
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
prBase: { key: "pr.base", read: text("a branch name"), cli: false },
|
|
344
|
-
prResolveBudget: { key: "pr.resolveBudget", read: usdAmount, cli: false },
|
|
426
|
+
loopWorktreeDir: { key: "loop.worktreeDir", read: directory, cli: false },
|
|
427
|
+
...PR_SETTINGS,
|
|
345
428
|
boardTrustedAuthors: {
|
|
346
429
|
key: "board.trustedAuthors",
|
|
347
430
|
read: listOf(githubLogin, "GitHub logins"),
|
|
348
431
|
cli: false
|
|
349
432
|
},
|
|
350
433
|
roadmapIssue: { key: "roadmap.issue", read: issueNumber, cli: false },
|
|
351
|
-
|
|
352
|
-
releaseVersionFile: {
|
|
353
|
-
key: "release.versionFile",
|
|
354
|
-
read: releaseFile,
|
|
355
|
-
cli: false
|
|
356
|
-
},
|
|
357
|
-
releaseChangelog: { key: "release.changelog", read: releaseFile, cli: false },
|
|
358
|
-
releaseHeading: {
|
|
359
|
-
key: "release.heading",
|
|
360
|
-
read: text("a changelog heading template"),
|
|
361
|
-
cli: false
|
|
362
|
-
},
|
|
434
|
+
...RELEASE_SETTINGS,
|
|
363
435
|
cleanupStaleDays: { key: "cleanup.staleDays", read: dayCount, cli: false },
|
|
364
436
|
cleanupWorktreeIdleDays: {
|
|
365
437
|
key: "cleanup.worktreeIdleDays",
|
|
@@ -376,6 +448,12 @@ var SETTINGS = {
|
|
|
376
448
|
read: flag,
|
|
377
449
|
cli: false
|
|
378
450
|
},
|
|
451
|
+
...DANGEROUS_RELEASE_SETTINGS,
|
|
452
|
+
dangerousSelfUpdateDuringLoop: {
|
|
453
|
+
key: "dangerous.selfUpdateDuringLoop",
|
|
454
|
+
read: flag,
|
|
455
|
+
cli: false
|
|
456
|
+
},
|
|
379
457
|
statusNotice: { key: "status.notice", read: flag, cli: false },
|
|
380
458
|
tiersRafa: { key: "tiers.rafa", read: tierSwitch, cli: false },
|
|
381
459
|
tiersSkills: { key: "tiers.skills", read: tierPins, cli: false },
|
|
@@ -453,6 +531,7 @@ function readLayer(rawOf, atOf) {
|
|
|
453
531
|
version: read("version"),
|
|
454
532
|
store: read("store"),
|
|
455
533
|
effortBusyTimeoutMs: read("effortBusyTimeoutMs"),
|
|
534
|
+
effortSync: read("effortSync"),
|
|
456
535
|
inject: read("inject"),
|
|
457
536
|
planDir: read("planDir"),
|
|
458
537
|
specsDir: read("specsDir"),
|
|
@@ -471,20 +550,28 @@ function readLayer(rawOf, atOf) {
|
|
|
471
550
|
modules: read("modules"),
|
|
472
551
|
allowList: read("allowList"),
|
|
473
552
|
settingSources: read("settingSources"),
|
|
553
|
+
loopWorktreeDir: read("loopWorktreeDir"),
|
|
474
554
|
prProvider: read("prProvider"),
|
|
475
555
|
prMergeMethod: read("prMergeMethod"),
|
|
476
556
|
prBase: read("prBase"),
|
|
477
557
|
prResolveBudget: read("prResolveBudget"),
|
|
558
|
+
prVersionCollision: read("prVersionCollision"),
|
|
478
559
|
boardTrustedAuthors: read("boardTrustedAuthors"),
|
|
479
560
|
roadmapIssue: read("roadmapIssue"),
|
|
480
561
|
releaseEnabled: read("releaseEnabled"),
|
|
481
562
|
releaseVersionFile: read("releaseVersionFile"),
|
|
482
563
|
releaseChangelog: read("releaseChangelog"),
|
|
483
564
|
releaseHeading: read("releaseHeading"),
|
|
565
|
+
releaseFragments: read("releaseFragments"),
|
|
566
|
+
releaseStrategy: read("releaseStrategy"),
|
|
567
|
+
releaseSettle: read("releaseSettle"),
|
|
568
|
+
releaseTag: read("releaseTag"),
|
|
484
569
|
cleanupStaleDays: read("cleanupStaleDays"),
|
|
485
570
|
cleanupWorktreeIdleDays: read("cleanupWorktreeIdleDays"),
|
|
486
571
|
cleanupKeep: read("cleanupKeep"),
|
|
487
572
|
dangerousAcceptStaleRefs: read("dangerousAcceptStaleRefs"),
|
|
573
|
+
dangerousAcceptVersionCollision: read("dangerousAcceptVersionCollision"),
|
|
574
|
+
dangerousSelfUpdateDuringLoop: read("dangerousSelfUpdateDuringLoop"),
|
|
488
575
|
statusNotice: read("statusNotice"),
|
|
489
576
|
tiersRafa: read("tiersRafa"),
|
|
490
577
|
tiersSkills: read("tiersSkills"),
|
|
@@ -1058,4 +1145,4 @@ function activeOutputMode() {
|
|
|
1058
1145
|
return activeMode;
|
|
1059
1146
|
}
|
|
1060
1147
|
|
|
1061
|
-
export { pinKey, pinLine, collisionMessage, readItemBytes, resolveTiers, findTierItem, DEFAULT_ROUTES, DEFAULT_ROUTING, CONFIG_FILE, CONFIG_DEFAULTS, SETTINGS, ConfigError, configFilePath, parseConfigText, resolveConfig, isStampableStub, planStubFromPrompt, stampPrompt, planStubFromPath, RAFA_BLOCK_KINDS, isRafaBlockKind, readRafaBlocks, REPORT_STATUSES, FINDING_KINDS, FINDING_SIGNALS, FINDING_DOMAINS, CHANGE_LEVELS, parseReport
|
|
1148
|
+
export { pinKey, pinLine, collisionMessage, readItemBytes, resolveTiers, findTierItem, DEFAULT_ROUTES, DEFAULT_ROUTING, CONFIG_FILE, CONFIG_DEFAULTS, SETTINGS, ConfigError, configFilePath, parseConfigText, resolveConfig, isStampableStub, planStubFromPrompt, stampPrompt, planStubFromPath, createTextOutput, activeOutput, activeOutputMode, RAFA_BLOCK_KINDS, isRafaBlockKind, readRafaBlocks, REPORT_STATUSES, FINDING_KINDS, FINDING_SIGNALS, FINDING_DOMAINS, CHANGE_LEVELS, parseReport };
|
package/dist/index.js
CHANGED
|
@@ -5,14 +5,12 @@ import {
|
|
|
5
5
|
OUTPUT_CHANNELS,
|
|
6
6
|
RUNNING_MANIFEST_SEAMS,
|
|
7
7
|
collect,
|
|
8
|
-
loadConfig,
|
|
9
8
|
plan,
|
|
10
|
-
readConfigFile,
|
|
11
9
|
report,
|
|
12
10
|
start,
|
|
13
11
|
usage,
|
|
14
12
|
validateManifest
|
|
15
|
-
} from "./index-
|
|
13
|
+
} from "./index-szgyrz6j.js";
|
|
16
14
|
import {
|
|
17
15
|
PLAN_BLOCK_KINDS,
|
|
18
16
|
PLAN_HEADER_FIELDS,
|
|
@@ -26,7 +24,7 @@ import {
|
|
|
26
24
|
renderInjection,
|
|
27
25
|
runPreflight,
|
|
28
26
|
runShellProbe
|
|
29
|
-
} from "./index-
|
|
27
|
+
} from "./index-89j1m0f6.js";
|
|
30
28
|
import {
|
|
31
29
|
CORE_ADAPTER_REGISTRY,
|
|
32
30
|
DISK_FILE_SYSTEM,
|
|
@@ -37,13 +35,15 @@ import {
|
|
|
37
35
|
ScopeError,
|
|
38
36
|
createAdapterRegistry,
|
|
39
37
|
initHint,
|
|
38
|
+
loadConfig,
|
|
40
39
|
openNdjsonStore,
|
|
41
40
|
openSqliteStore,
|
|
41
|
+
readConfigFile,
|
|
42
42
|
resolveScope,
|
|
43
43
|
scopeAt,
|
|
44
44
|
selectEffortStore,
|
|
45
45
|
selfAndAncestors
|
|
46
|
-
} from "./index-
|
|
46
|
+
} from "./index-13wzpgc1.js";
|
|
47
47
|
import {
|
|
48
48
|
CONFIG_DEFAULTS,
|
|
49
49
|
CONFIG_FILE,
|
|
@@ -58,10 +58,10 @@ import {
|
|
|
58
58
|
parseReport,
|
|
59
59
|
readRafaBlocks,
|
|
60
60
|
resolveConfig
|
|
61
|
-
} from "./index-
|
|
61
|
+
} from "./index-t6q4k1tq.js";
|
|
62
62
|
import"./index-d6d0942q.js";
|
|
63
|
-
import"./index-
|
|
64
|
-
import"./index-
|
|
63
|
+
import"./index-p0njjkjj.js";
|
|
64
|
+
import"./index-e10rwa4g.js";
|
|
65
65
|
import {
|
|
66
66
|
CLAUDE_SETTING_SOURCES,
|
|
67
67
|
CONFIG_VERSIONS,
|
|
@@ -71,8 +71,9 @@ import {
|
|
|
71
71
|
PREREQUISITE_KINDS,
|
|
72
72
|
PR_PROVIDERS,
|
|
73
73
|
RELEASE_AUTO,
|
|
74
|
-
STORE_BACKENDS
|
|
75
|
-
|
|
74
|
+
STORE_BACKENDS,
|
|
75
|
+
SYNC_STRATEGIES
|
|
76
|
+
} from "./index-dnwcx1cs.js";
|
|
76
77
|
import"./index-wp8c28fd.js";
|
|
77
78
|
export {
|
|
78
79
|
validateManifest,
|
|
@@ -107,6 +108,7 @@ export {
|
|
|
107
108
|
createAdapterRegistry,
|
|
108
109
|
configFilePath,
|
|
109
110
|
ScopeError,
|
|
111
|
+
SYNC_STRATEGIES,
|
|
110
112
|
STORE_BACKENDS,
|
|
111
113
|
SCOPE_DIR,
|
|
112
114
|
RUNNING_MANIFEST_SEAMS,
|
package/dist/plan/index.js
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
renderInjection,
|
|
13
13
|
runPreflight,
|
|
14
14
|
runShellProbe
|
|
15
|
-
} from "../index-
|
|
15
|
+
} from "../index-89j1m0f6.js";
|
|
16
16
|
import {
|
|
17
17
|
FINDING_KINDS,
|
|
18
18
|
FINDING_SIGNALS,
|
|
@@ -21,10 +21,10 @@ import {
|
|
|
21
21
|
isRafaBlockKind,
|
|
22
22
|
parseReport,
|
|
23
23
|
readRafaBlocks
|
|
24
|
-
} from "../index-
|
|
24
|
+
} from "../index-t6q4k1tq.js";
|
|
25
25
|
import {
|
|
26
26
|
INJECT_MODES
|
|
27
|
-
} from "../index-
|
|
27
|
+
} from "../index-dnwcx1cs.js";
|
|
28
28
|
import"../index-wp8c28fd.js";
|
|
29
29
|
export {
|
|
30
30
|
runShellProbe,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@open-tomato/rafa",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.31.0",
|
|
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": {
|