@open-tomato/rafa 0.38.0 → 0.40.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 +10 -6
- package/dist/PROMPT.md +3 -1
- package/dist/bundled/agents/loop-implementer.md +5 -0
- package/dist/bundled/agents/qa-bug-reporter.md +2 -2
- package/dist/bundled/operators/.claude-plugin/plugin.json +1 -1
- package/dist/bundled/operators/agents/rafa-stretch-analyst.md +7 -0
- package/dist/bundled/operators/agents/rafa-stretch-engineer.md +21 -45
- package/dist/bundled/operators/agents/rafa-stretch-watchtower.md +7 -0
- package/dist/bundled/operators/skills/rafa-stretch-pit-stop/SKILL.md +1 -1
- package/dist/bundled/operators/skills/rafa-stretch-sweep/SKILL.md +1 -1
- package/dist/bundled/skills/dev-planner/SKILL.md +2 -2
- package/dist/bundled/stretch/engineer-prompt-default.md +5 -0
- package/dist/cli.js +13577 -9318
- package/dist/effort/store/index.js +2 -2
- package/dist/{index-w9naz372.js → index-334y39tn.js} +67 -1
- package/dist/{index-74btmn1e.js → index-8veaj0t9.js} +6 -5
- package/dist/{index-mzcz139z.js → index-j7kjj0dd.js} +4726 -1940
- package/dist/{index-zdz0mp63.js → index-krpmxpkh.js} +1 -1
- package/dist/{index-e3vhhfka.js → index-zcbj07aq.js} +2146 -882
- package/dist/index.js +4 -4
- package/dist/plan/index.js +2 -2
- package/dist/plan-prompt.md +27 -0
- package/dist/plans/resolve-conflict-lockfile.md +2 -2
- package/dist/plans/resolve-conflict-manifest.md +1 -1
- package/package.json +1 -1
|
@@ -14,8 +14,8 @@ import {
|
|
|
14
14
|
openNdjsonStore,
|
|
15
15
|
openSqliteStore,
|
|
16
16
|
selectEffortStore
|
|
17
|
-
} from "../../index-
|
|
18
|
-
import"../../index-
|
|
17
|
+
} from "../../index-8veaj0t9.js";
|
|
18
|
+
import"../../index-334y39tn.js";
|
|
19
19
|
import"../../index-d6d0942q.js";
|
|
20
20
|
import"../../index-sr3kc4mf.js";
|
|
21
21
|
import {
|
|
@@ -175,6 +175,65 @@ var fragmentsDirectory = (raw, at) => {
|
|
|
175
175
|
return { value: undefined, problems: [problem], extras: [] };
|
|
176
176
|
};
|
|
177
177
|
|
|
178
|
+
// src/config-schema-board-project.ts
|
|
179
|
+
var BOARD_PROJECT_RETRIES_MIN = 1;
|
|
180
|
+
var BOARD_PROJECT_RETRIES_MAX = 10;
|
|
181
|
+
var BOARD_PROJECT_RETRY_WAIT_MIN_SECONDS = 1;
|
|
182
|
+
var BOARD_PROJECT_RETRY_WAIT_MAX_SECONDS = 60;
|
|
183
|
+
var BOARD_PROJECT_PROGRESS_MIN_SECONDS = 1;
|
|
184
|
+
var BOARD_PROJECT_PROGRESS_MAX_SECONDS = 300;
|
|
185
|
+
var BOARD_PROJECT_WRITE_BATCH_MIN = 1;
|
|
186
|
+
var BOARD_PROJECT_WRITE_BATCH_MAX = 100;
|
|
187
|
+
var BOARD_PROJECT_WRITE_PAUSE_MIN_MS = 0;
|
|
188
|
+
var BOARD_PROJECT_WRITE_PAUSE_MAX_MS = 60000;
|
|
189
|
+
function isWholeBetween(raw, min, max) {
|
|
190
|
+
return typeof raw === "number" && Number.isSafeInteger(raw) && raw >= min && raw <= max;
|
|
191
|
+
}
|
|
192
|
+
function rangeWords(min, max) {
|
|
193
|
+
return `a whole number from ${String(min)} to ${String(max)}`;
|
|
194
|
+
}
|
|
195
|
+
function wholeBetween(min, max) {
|
|
196
|
+
return (raw, at) => isWholeBetween(raw, min, max) ? { value: raw, problems: [], extras: [] } : refused(at, raw, rangeWords(min, max));
|
|
197
|
+
}
|
|
198
|
+
function offOrWholeBetween(min, max) {
|
|
199
|
+
return (raw, at) => raw === false || isWholeBetween(raw, min, max) ? { value: raw, problems: [], extras: [] } : refused(at, raw, `false or ${rangeWords(min, max)}`);
|
|
200
|
+
}
|
|
201
|
+
var boardProjectRetries = offOrWholeBetween(BOARD_PROJECT_RETRIES_MIN, BOARD_PROJECT_RETRIES_MAX);
|
|
202
|
+
var boardProjectRetryWaitSeconds = wholeBetween(BOARD_PROJECT_RETRY_WAIT_MIN_SECONDS, BOARD_PROJECT_RETRY_WAIT_MAX_SECONDS);
|
|
203
|
+
var boardProjectProgressSeconds = offOrWholeBetween(BOARD_PROJECT_PROGRESS_MIN_SECONDS, BOARD_PROJECT_PROGRESS_MAX_SECONDS);
|
|
204
|
+
var boardProjectWriteBatchSize = wholeBetween(BOARD_PROJECT_WRITE_BATCH_MIN, BOARD_PROJECT_WRITE_BATCH_MAX);
|
|
205
|
+
var boardProjectWritePauseMs = wholeBetween(BOARD_PROJECT_WRITE_PAUSE_MIN_MS, BOARD_PROJECT_WRITE_PAUSE_MAX_MS);
|
|
206
|
+
var BOARD_PROJECT_LIMIT_DEFAULTS = Object.freeze({
|
|
207
|
+
boardProjectRetries: 3,
|
|
208
|
+
boardProjectRetryWaitSeconds: 2,
|
|
209
|
+
boardProjectProgressSeconds: 10,
|
|
210
|
+
boardProjectWriteBatchSize: 20,
|
|
211
|
+
boardProjectWritePauseMs: 1000
|
|
212
|
+
});
|
|
213
|
+
var BOARD_PROJECT_LIMIT_SETTINGS = {
|
|
214
|
+
boardProjectRetries: { key: "board.project.retries", read: boardProjectRetries, cli: false },
|
|
215
|
+
boardProjectRetryWaitSeconds: {
|
|
216
|
+
key: "board.project.retryWaitSeconds",
|
|
217
|
+
read: boardProjectRetryWaitSeconds,
|
|
218
|
+
cli: false
|
|
219
|
+
},
|
|
220
|
+
boardProjectProgressSeconds: {
|
|
221
|
+
key: "board.project.progressSeconds",
|
|
222
|
+
read: boardProjectProgressSeconds,
|
|
223
|
+
cli: false
|
|
224
|
+
},
|
|
225
|
+
boardProjectWriteBatchSize: {
|
|
226
|
+
key: "board.project.writeBatchSize",
|
|
227
|
+
read: boardProjectWriteBatchSize,
|
|
228
|
+
cli: false
|
|
229
|
+
},
|
|
230
|
+
boardProjectWritePauseMs: {
|
|
231
|
+
key: "board.project.writePauseMs",
|
|
232
|
+
read: boardProjectWritePauseMs,
|
|
233
|
+
cli: false
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
|
|
178
237
|
// src/config-schema-hub.ts
|
|
179
238
|
var HUB_TIMEOUT_MIN_SECONDS = 1;
|
|
180
239
|
var HUB_TIMEOUT_MAX_SECONDS = 30;
|
|
@@ -569,6 +628,7 @@ var CONFIG_DEFAULTS = Object.freeze({
|
|
|
569
628
|
boardRelationships: "labels",
|
|
570
629
|
boardProjectTemplate: BOARD_PROJECT_TEMPLATE_DEFAULT,
|
|
571
630
|
boardProjectNumber: null,
|
|
631
|
+
...BOARD_PROJECT_LIMIT_DEFAULTS,
|
|
572
632
|
roadmapIssue: null,
|
|
573
633
|
claimsStaleAfter: "3d",
|
|
574
634
|
claimsAhead: "off",
|
|
@@ -659,6 +719,7 @@ var SETTINGS = {
|
|
|
659
719
|
},
|
|
660
720
|
boardProjectTemplate: { key: "board.project.template", read: projectUrl, cli: false },
|
|
661
721
|
boardProjectNumber: { key: "board.project.number", read: projectNumber, cli: false },
|
|
722
|
+
...BOARD_PROJECT_LIMIT_SETTINGS,
|
|
662
723
|
roadmapIssue: { key: "roadmap.issue", read: issueNumber, cli: false },
|
|
663
724
|
claimsStaleAfter: { key: "claims.staleAfter", read: claimsStaleAfter, cli: false },
|
|
664
725
|
claimsAhead: { key: "claims.ahead", read: claimsAhead, cli: false },
|
|
@@ -797,6 +858,11 @@ function readLayer(rawOf, atOf) {
|
|
|
797
858
|
boardRelationships: read("boardRelationships"),
|
|
798
859
|
boardProjectTemplate: read("boardProjectTemplate"),
|
|
799
860
|
boardProjectNumber: read("boardProjectNumber"),
|
|
861
|
+
boardProjectRetries: read("boardProjectRetries"),
|
|
862
|
+
boardProjectRetryWaitSeconds: read("boardProjectRetryWaitSeconds"),
|
|
863
|
+
boardProjectProgressSeconds: read("boardProjectProgressSeconds"),
|
|
864
|
+
boardProjectWriteBatchSize: read("boardProjectWriteBatchSize"),
|
|
865
|
+
boardProjectWritePauseMs: read("boardProjectWritePauseMs"),
|
|
800
866
|
roadmapIssue: read("roadmapIssue"),
|
|
801
867
|
claimsStaleAfter: read("claimsStaleAfter"),
|
|
802
868
|
claimsAhead: read("claimsAhead"),
|
|
@@ -1412,4 +1478,4 @@ function activeOutputMode() {
|
|
|
1412
1478
|
return activeMode;
|
|
1413
1479
|
}
|
|
1414
1480
|
|
|
1415
|
-
export { hubContextOf, PREREQUISITE_KINDS, requiredPrerequisite, optionalPrerequisite, MODULE_SOURCE_KINDS, 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 };
|
|
1481
|
+
export { hubContextOf, PREREQUISITE_KINDS, requiredPrerequisite, optionalPrerequisite, MODULE_SOURCE_KINDS, RELEASE_DEFAULTS, pinKey, pinLine, collisionMessage, readItemBytes, resolveTiers, findTierItem, DEFAULT_ROUTES, DEFAULT_ROUTING, CONFIG_FILE, CONFIG_DEFAULTS, SETTINGS, SETTING_NAMES, SETTING_BY_KEY, SECTIONS, knownKeysAbove, 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 };
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
parseConfigText,
|
|
16
16
|
readRafaBlocks,
|
|
17
17
|
resolveConfig
|
|
18
|
-
} from "./index-
|
|
18
|
+
} from "./index-334y39tn.js";
|
|
19
19
|
import {
|
|
20
20
|
bless,
|
|
21
21
|
merge
|
|
@@ -259,7 +259,7 @@ import { Database as Database2 } from "bun:sqlite";
|
|
|
259
259
|
|
|
260
260
|
// package.json
|
|
261
261
|
var name = "@open-tomato/rafa";
|
|
262
|
-
var version = "0.
|
|
262
|
+
var version = "0.40.0";
|
|
263
263
|
|
|
264
264
|
// src/cli/version.ts
|
|
265
265
|
var RAFA_VERSION = version;
|
|
@@ -1802,6 +1802,7 @@ function gitRemoteUrl(dir) {
|
|
|
1802
1802
|
// src/effort/store/store-identity.ts
|
|
1803
1803
|
var HOST_ID_KEY = "rafa effort store host id";
|
|
1804
1804
|
var MACHINE_ID_PATH = "/etc/machine-id";
|
|
1805
|
+
var IOREG_PATH = "/usr/sbin/ioreg";
|
|
1805
1806
|
var IOREG_ARGS = ["-rd1", "-c", "IOPlatformExpertDevice"];
|
|
1806
1807
|
function hostIdFrom(source, value) {
|
|
1807
1808
|
return createHmac("sha256", HOST_ID_KEY).update(`${source}:${value}`).digest("hex");
|
|
@@ -1819,7 +1820,7 @@ function parseIoregPlatformUuid(output) {
|
|
|
1819
1820
|
return match?.[1] ?? null;
|
|
1820
1821
|
}
|
|
1821
1822
|
function readIoregPlatformUuid() {
|
|
1822
|
-
const result = spawnSync3(
|
|
1823
|
+
const result = spawnSync3(IOREG_PATH, [...IOREG_ARGS], { encoding: "utf8" });
|
|
1823
1824
|
if (result.error !== undefined || result.status !== 0)
|
|
1824
1825
|
return null;
|
|
1825
1826
|
return parseIoregPlatformUuid(result.stdout);
|
|
@@ -2717,7 +2718,7 @@ function renderFixSchema(result) {
|
|
|
2717
2718
|
case "rebuilt":
|
|
2718
2719
|
return [
|
|
2719
2720
|
...rebuildLines(result),
|
|
2720
|
-
`\u2705 Rebuilt at this rafa's migrations.
|
|
2721
|
+
`\u2705 Rebuilt at this rafa's migrations. Every row the original held is copied to ${String(result.backupPath)}.` + ` ${keepsIdLine("rebuild")}`
|
|
2721
2722
|
];
|
|
2722
2723
|
}
|
|
2723
2724
|
}
|
|
@@ -6497,4 +6498,4 @@ function selectEffortStore(repoRoot, config) {
|
|
|
6497
6498
|
return adapter.create({ repoRoot });
|
|
6498
6499
|
}
|
|
6499
6500
|
|
|
6500
|
-
export { EFFORT_STORE_DIR, effortStoreFileName, EFFORT_DIR_VARIABLE, effortStoreDir, guardTestProcess, EFFORT_KEY_PROJECTIONS, openNdjsonStore, name, version, RAFA_VERSION, versionLine, createGitRunner, gitSaid, NOT_A_REPOSITORY, mainCheckoutOf, SCOPE_DIR, INIT_COMMAND, DISK_FILE_SYSTEM, ScopeError, scopeAt, initHint, selfAndAncestors, resolveScope, POSITION_FILE, positionFilePath, readPositionFile, writePositionFile, positionAt, rehome, hop, goHome, HOP_FILE, hopFilePath, readHopRecord, writeHopRecord, staleAgainst, SessionRecordError, isSessionId, sessionPhase, SessionConflictError, SessionStateError, runsDir, sessionFilePath, errorCode, isPidAlive, readSessions, readSession, beginSession, updateSession, DEVELOPMENT_NEXT_STEP, DEVELOPMENT_MARK, DevelopmentBuildRefusedError, refuseUnownedDevelopmentWrite, LEGACY_GATE_OPEN, LEGACY_GATE_CLOSED, SQLITE_MIGRATIONS, sqliteCatalogue, planSchema, SchemaRefusedError, readStoreSchema, writeNames, ACROSS_STORES_ORDER, STAMPED_COLUMNS, stampedValues, activeStoreSettings, normalizeRemote, gitRemoteUrl, readStoreMeta, SQLITE_STORE_FILE_NAME, sqliteStorePath, LONE_SURROGATE, withSqliteStore, writeSqliteStore, openSqliteStore, EffortCopyRefusal, EffortCopyFailure, copyEffortStore, RebuildRefusal, readConfigFile, loadConfig, plansDirAt, requireProject, resolvePlansDir, resolveProjectConfig, countTasks, formatCounts, checkbox, planFileName, stubOfPlanFile, isFile, issueLine, plural, expectNoArgument, expectOneArgument, expectAtMostOneArgument, readSwitch, fileStamp, keepsIdLine, fix_schema_default, minutesBetween, readCommitLog, UnionSchemaMismatch, migrateStore, MOVE_TO_SQLITE, MergeRefusal, mergeStore, createFileSync, SyncModuleMissing, selectSync, SKILL_FILE, MARKDOWN_EXTENSION, scanLayout, declaredNameIssue, readFrontmatterDocument, readFrontmatter, renderFrontmatter, mergeFrontmatter, writeFrontmatter, ACTION_HEADING, CAUSE_HEADING, parseInstinct, writeInstinct, readScopes, allRecords, findRecords, instinctProject, toHeldRecords, EVENT_PREFIX, padKind, oneLine, sessionSpawnEnv, CLAUDE_BIN, claudeArgs, interruptClaudeSessions, spawnClaude, runClaude, spawnClaudeCaptured, runClaudeCaptured, planFilePath, ClaudePlannerError, ISSUE_TYPES, ISSUE_PRIORITIES, ISSUE_STATES, GITHUB_LABELS, createGhRunner, typeOfLabels, moduleOfLabels, createLocalTracker, PORT_VERSIONS, createAdapterRegistry, CORE_ADAPTER_REGISTRY, TRUSTED_PERMISSIONS, TRUST_REFUSAL_EXIT, createGhPermissions, readAuthorTrust, ghBoardTrust, readBoardTrust, requireTrustedBoardAuthor, trustRefusalClause, trustRefusalMessage, requireTrustedAuthor, createGhEditorLogin, readEditorTrust, editorRefusalMessage, WIRE_FORMAT, WIRE_VERSION, WireFormatError, WireExportRefusal, encodeWirePayload, decodeWirePayload, exportWirePayload, materialiseWirePayload, selectEffortStore };
|
|
6501
|
+
export { EFFORT_STORE_DIR, effortStoreFileName, EFFORT_DIR_VARIABLE, effortStoreDir, guardTestProcess, EFFORT_KEY_PROJECTIONS, openNdjsonStore, name, version, RAFA_VERSION, versionLine, createGitRunner, gitSaid, NOT_A_REPOSITORY, mainCheckoutOf, SCOPE_DIR, INIT_COMMAND, DISK_FILE_SYSTEM, ScopeError, scopeAt, initHint, selfAndAncestors, resolveScope, POSITION_FILE, positionFilePath, readPositionFile, writePositionFile, positionAt, rehome, hop, goHome, HOP_FILE, hopFilePath, readHopRecord, writeHopRecord, staleAgainst, RECORD_EXTENSION, SessionRecordError, isSessionId, isPositiveWhole, sessionPhase, parseSessionRecord, SessionConflictError, SessionStateError, runsDir, sessionFilePath, errorCode, isPidAlive, readState, readSessions, readSession, beginSession, updateSession, DEVELOPMENT_NEXT_STEP, DEVELOPMENT_MARK, DevelopmentBuildRefusedError, refuseUnownedDevelopmentWrite, LEGACY_GATE_OPEN, LEGACY_GATE_CLOSED, SQLITE_MIGRATIONS, sqliteCatalogue, planSchema, SchemaRefusedError, readStoreSchema, writeNames, ACROSS_STORES_ORDER, STAMPED_COLUMNS, stampedValues, activeStoreSettings, normalizeRemote, gitRemoteUrl, readStoreMeta, SQLITE_STORE_FILE_NAME, sqliteStorePath, LONE_SURROGATE, withSqliteStore, writeSqliteStore, openSqliteStore, EffortCopyRefusal, EffortCopyFailure, copyEffortStore, RebuildRefusal, readConfigFile, loadConfig, plansDirAt, requireProject, resolvePlansDir, resolveProjectConfig, countTasks, formatCounts, checkbox, planFileName, stubOfPlanFile, isFile, issueLine, plural, expectNoArgument, expectOneArgument, expectAtMostOneArgument, readSwitch, fileStamp, keepsIdLine, fix_schema_default, minutesBetween, readCommitLog, UnionSchemaMismatch, migrateStore, MOVE_TO_SQLITE, MergeRefusal, mergeStore, createFileSync, SyncModuleMissing, selectSync, SKILL_FILE, MARKDOWN_EXTENSION, scanLayout, declaredNameIssue, readFrontmatterDocument, readFrontmatter, renderFrontmatter, mergeFrontmatter, writeFrontmatter, ACTION_HEADING, CAUSE_HEADING, parseInstinct, writeInstinct, readScopes, allRecords, findRecords, instinctProject, toHeldRecords, EVENT_PREFIX, padKind, oneLine, sessionSpawnEnv, CLAUDE_BIN, claudeArgs, interruptClaudeSessions, spawnClaude, runClaude, spawnClaudeCaptured, runClaudeCaptured, planFilePath, ClaudePlannerError, ISSUE_TYPES, ISSUE_PRIORITIES, ISSUE_STATES, GITHUB_LABELS, createGhRunner, typeOfLabels, moduleOfLabels, createGithubTracker, createLocalTracker, PORT_VERSIONS, createAdapterRegistry, CORE_ADAPTER_REGISTRY, TRUSTED_PERMISSIONS, TRUST_REFUSAL_EXIT, createGhPermissions, readAuthorTrust, ghBoardTrust, readBoardTrust, requireTrustedBoardAuthor, trustRefusalClause, trustRefusalMessage, requireTrustedAuthor, createGhEditorLogin, readEditorTrust, editorRefusalMessage, WIRE_FORMAT, WIRE_VERSION, WireFormatError, WireExportRefusal, encodeWirePayload, decodeWirePayload, exportWirePayload, materialiseWirePayload, selectEffortStore };
|