@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.
@@ -14,8 +14,8 @@ import {
14
14
  openNdjsonStore,
15
15
  openSqliteStore,
16
16
  selectEffortStore
17
- } from "../../index-74btmn1e.js";
18
- import"../../index-w9naz372.js";
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-w9naz372.js";
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.38.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("ioreg", [...IOREG_ARGS], { encoding: "utf8" });
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. The original is kept whole at ${String(result.backupPath)};` + ` rename it back to undo. ${keepsIdLine("rebuild")}`
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 };