fifony 0.1.30 → 0.1.31

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.
@@ -13,7 +13,7 @@
13
13
  <link rel="manifest" href="/assets/manifest.webmanifest" />
14
14
  <link rel="icon" href="/assets/icon.svg" type="image/svg+xml" />
15
15
  <link rel="apple-touch-icon" href="/assets/icon.svg" />
16
- <script type="module" crossorigin src="/assets/assets/index-BsgIa3RC.js"></script>
16
+ <script type="module" crossorigin src="/assets/assets/index-ywtlX6S8.js"></script>
17
17
  <link rel="modulepreload" crossorigin href="/assets/assets/rolldown-runtime-DF2fYuay.js">
18
18
  <link rel="modulepreload" crossorigin href="/assets/assets/vendor-D-IqxHHu.js">
19
19
  <link rel="modulepreload" crossorigin href="/assets/assets/createLucideIcon-DgMTp0yx.js">
@@ -1,4 +1,4 @@
1
- const CACHE_VERSION = "1774159285211";
1
+ const CACHE_VERSION = "1774160943990";
2
2
  const CORE_CACHE = `fifony-core-${CACHE_VERSION}`;
3
3
  const ASSET_CACHE = `fifony-assets-${CACHE_VERSION}`;
4
4
  const APP_SHELL_ROUTES = ["/kanban", "/issues", "/agents", "/settings", "/onboarding"];
@@ -23,10 +23,10 @@ import {
23
23
  startApiServer,
24
24
  syncRuntimeConfigSettings,
25
25
  validateConfig
26
- } from "../chunk-3FCJI2GK.js";
26
+ } from "../chunk-7AMUAUY5.js";
27
27
  import {
28
28
  computeMetrics
29
- } from "../chunk-2G6SRDOC.js";
29
+ } from "../chunk-CXFEPU5Q.js";
30
30
  import {
31
31
  detectAvailableProviders,
32
32
  detectDefaultBranch,
@@ -34,7 +34,7 @@ import {
34
34
  getProviderDefaultCommand,
35
35
  resolveDefaultProvider,
36
36
  setSkipSource
37
- } from "../chunk-XVF6GOVS.js";
37
+ } from "../chunk-IYAF3SY6.js";
38
38
  import {
39
39
  debugBoot,
40
40
  fail,
@@ -47,7 +47,7 @@ import {
47
47
  recoverOrphans,
48
48
  recoverState,
49
49
  stopQueueWorkers
50
- } from "../chunk-VOQT7RVT.js";
50
+ } from "../chunk-VUNMXX7N.js";
51
51
  import {
52
52
  initLogger,
53
53
  logger
@@ -15,8 +15,8 @@ import {
15
15
  runIssueOnce,
16
16
  runPlanningJob,
17
17
  tryParseJsonOutput
18
- } from "./chunk-3FCJI2GK.js";
19
- import "./chunk-2G6SRDOC.js";
18
+ } from "./chunk-7AMUAUY5.js";
19
+ import "./chunk-CXFEPU5Q.js";
20
20
  import {
21
21
  buildPrompt,
22
22
  buildProviderBasePrompt,
@@ -33,9 +33,9 @@ import {
33
33
  runCommandWithTimeout,
34
34
  runHook,
35
35
  shouldSkipMergePath
36
- } from "./chunk-XVF6GOVS.js";
36
+ } from "./chunk-IYAF3SY6.js";
37
37
  import "./chunk-O5AEQXUV.js";
38
- import "./chunk-VOQT7RVT.js";
38
+ import "./chunk-VUNMXX7N.js";
39
39
  import "./chunk-DVU3CXWA.js";
40
40
  import "./chunk-OONOOWNC.js";
41
41
  export {
@@ -71,4 +71,4 @@ export {
71
71
  shouldSkipMergePath,
72
72
  tryParseJsonOutput
73
73
  };
74
- //# sourceMappingURL=agent-FPUYBJZD.js.map
74
+ //# sourceMappingURL=agent-OBLUHG2W.js.map
@@ -21,7 +21,7 @@ import {
21
21
  snapshotAndClearDirtyEventIds,
22
22
  snapshotAndClearDirtyIssueIds,
23
23
  snapshotAndClearDirtyIssuePlanIds
24
- } from "./chunk-2G6SRDOC.js";
24
+ } from "./chunk-CXFEPU5Q.js";
25
25
  import {
26
26
  ADAPTERS,
27
27
  assertIssueHasGitWorktree,
@@ -49,7 +49,7 @@ import {
49
49
  resolveAgentCommand,
50
50
  runCommandWithTimeout,
51
51
  runHook
52
- } from "./chunk-XVF6GOVS.js";
52
+ } from "./chunk-IYAF3SY6.js";
53
53
  import {
54
54
  appendFileTail,
55
55
  clamp,
@@ -74,7 +74,7 @@ import {
74
74
  } from "./chunk-O5AEQXUV.js";
75
75
  import {
76
76
  enqueue
77
- } from "./chunk-VOQT7RVT.js";
77
+ } from "./chunk-VUNMXX7N.js";
78
78
  import {
79
79
  logger
80
80
  } from "./chunk-DVU3CXWA.js";
@@ -2774,6 +2774,34 @@ async function replanIssueCommand(input, deps) {
2774
2774
  deps.eventStore.addEvent(issue.id, "manual", `Replan requested for ${issue.identifier} \u2014 now at plan v${issue.planVersion}.`);
2775
2775
  }
2776
2776
 
2777
+ // src/commands/request-rework.command.ts
2778
+ async function requestReworkCommand(input, deps) {
2779
+ const { issue, reviewerFeedback, note } = input;
2780
+ if (issue.state !== "Reviewing" && issue.state !== "PendingDecision") {
2781
+ throw new Error(
2782
+ `requestReworkCommand requires Reviewing or PendingDecision state, got ${issue.state}.`
2783
+ );
2784
+ }
2785
+ issue.lastError = reviewerFeedback;
2786
+ issue.lastFailedPhase = "review";
2787
+ issue.attempts += 1;
2788
+ if (issue.state === "Reviewing") {
2789
+ await transitionIssueCommand(
2790
+ { issue, target: "PendingDecision", note: `Reviewer completed for ${issue.identifier}.` },
2791
+ deps
2792
+ );
2793
+ }
2794
+ await transitionIssueCommand(
2795
+ { issue, target: "Queued", note: note ?? `Reviewer requested rework for ${issue.identifier}.` },
2796
+ deps
2797
+ );
2798
+ deps.eventStore.addEvent(
2799
+ issue.id,
2800
+ "runner",
2801
+ `Issue ${issue.identifier} sent back for rework by reviewer.`
2802
+ );
2803
+ }
2804
+
2777
2805
  // src/commands/merge-workspace.command.ts
2778
2806
  import { existsSync as existsSync7 } from "fs";
2779
2807
  import { execSync } from "child_process";
@@ -3014,8 +3042,9 @@ async function retryExecutionCommand(input, deps) {
3014
3042
  `retryExecutionCommand requires Blocked state, got ${issue.state}. Use replanIssueCommand for re-planning or the generic /retry endpoint for other states.`
3015
3043
  );
3016
3044
  }
3045
+ issue.attempts += 1;
3017
3046
  await transitionIssueCommand(
3018
- { issue, target: "Queued", note: note ?? `Retry execution for ${issue.identifier} (attempt ${issue.attempts + 1}).` },
3047
+ { issue, target: "Queued", note: note ?? `Retry execution for ${issue.identifier} (attempt ${issue.attempts}).` },
3019
3048
  deps
3020
3049
  );
3021
3050
  deps.eventStore.addEvent(
@@ -3111,8 +3140,14 @@ function registerStateRoutes(app, state) {
3111
3140
  if (!nextState) {
3112
3141
  throw new Error(`Unsupported state: ${String(payload.state)}`);
3113
3142
  }
3143
+ if (nextState === "Running" && issue.state !== "Queued") {
3144
+ return c.json({ ok: false, error: "Manual transition to Running is only supported from Queued." }, 400);
3145
+ }
3114
3146
  const container = getContainer();
3115
3147
  await transitionIssueCommand({ issue, target: nextState, note: `Manual state update: ${nextState}` }, container);
3148
+ if (nextState === "Running") {
3149
+ await enqueue(issue, "execute");
3150
+ }
3116
3151
  if (nextState === "Cancelled" && payload.reason) {
3117
3152
  issue.lastError = toStringValue(payload.reason);
3118
3153
  }
@@ -3147,6 +3182,7 @@ function registerStateRoutes(app, state) {
3147
3182
  container
3148
3183
  );
3149
3184
  } else if (issue.state === "Approved") {
3185
+ issue.attempts += 1;
3150
3186
  await transitionIssueCommand(
3151
3187
  { issue, target: "Planning", note: "Requeued for rework after merge conflicts." },
3152
3188
  container
@@ -3161,6 +3197,15 @@ function registerStateRoutes(app, state) {
3161
3197
  container
3162
3198
  );
3163
3199
  }
3200
+ } else if (issue.state === "Reviewing" || issue.state === "PendingDecision") {
3201
+ await requestReworkCommand(
3202
+ {
3203
+ issue,
3204
+ reviewerFeedback: issue.lastError || "Manual rework request.",
3205
+ note: `Manual rework requested for ${issue.identifier}.`
3206
+ },
3207
+ container
3208
+ );
3164
3209
  } else if (issue.state === "PendingApproval") {
3165
3210
  await transitionIssueCommand(
3166
3211
  { issue, target: "Queued", note: "Manual retry \u2014 queued for execution." },
@@ -3229,7 +3274,7 @@ function registerStateRoutes(app, state) {
3229
3274
  if (!issueId) return c.json({ ok: false, error: "Issue id is required." }, 400);
3230
3275
  const issue = findIssue(state, issueId);
3231
3276
  if (!issue) return c.json({ ok: false, error: "Issue not found." }, 404);
3232
- const { dryMerge } = await import("./workspace-KEHFITYR.js");
3277
+ const { dryMerge } = await import("./workspace-3PV5PTR5.js");
3233
3278
  const result = dryMerge(issue);
3234
3279
  return c.json({ ok: true, ...result });
3235
3280
  } catch (error) {
@@ -3244,7 +3289,7 @@ function registerStateRoutes(app, state) {
3244
3289
  if (!issueId) return c.json({ ok: false, error: "Issue id is required." }, 400);
3245
3290
  const issue = findIssue(state, issueId);
3246
3291
  if (!issue) return c.json({ ok: false, error: "Issue not found." }, 404);
3247
- const { rebaseWorktree } = await import("./workspace-KEHFITYR.js");
3292
+ const { rebaseWorktree } = await import("./workspace-3PV5PTR5.js");
3248
3293
  const result = rebaseWorktree(issue);
3249
3294
  if (result.success) {
3250
3295
  addEvent(state, issue.id, "info", `Branch ${issue.branchName} rebased onto ${issue.baseBranch}.`);
@@ -3376,7 +3421,7 @@ function registerStateRoutes(app, state) {
3376
3421
  const issue = findIssue(state, issueId);
3377
3422
  if (!issue) return c.json({ ok: false, error: "Issue not found." }, 404);
3378
3423
  try {
3379
- const { getIssueTransitionHistory } = await import("./issue-state-machine-V2KPUYPW.js");
3424
+ const { getIssueTransitionHistory } = await import("./issue-state-machine-ETAJLBS6.js");
3380
3425
  const limit = parseInt(c.req.query("limit") ?? "50", 10);
3381
3426
  const offset = parseInt(c.req.query("offset") ?? "0", 10);
3382
3427
  const transitions = await getIssueTransitionHistory(issue.id, { limit, offset });
@@ -3387,7 +3432,7 @@ function registerStateRoutes(app, state) {
3387
3432
  });
3388
3433
  app.get("/api/state-machine/transitions", async (c) => {
3389
3434
  try {
3390
- const { getStateMachineTransitions } = await import("./issue-state-machine-V2KPUYPW.js");
3435
+ const { getStateMachineTransitions } = await import("./issue-state-machine-ETAJLBS6.js");
3391
3436
  return c.json({ ok: true, transitions: getStateMachineTransitions() });
3392
3437
  } catch (error) {
3393
3438
  return c.json({ ok: false, error: error instanceof Error ? error.message : String(error) }, 500);
@@ -3395,7 +3440,7 @@ function registerStateRoutes(app, state) {
3395
3440
  });
3396
3441
  app.get("/api/state-machine/visualize", async (c) => {
3397
3442
  try {
3398
- const { visualizeStateMachine } = await import("./issue-state-machine-V2KPUYPW.js");
3443
+ const { visualizeStateMachine } = await import("./issue-state-machine-ETAJLBS6.js");
3399
3444
  const dot = visualizeStateMachine();
3400
3445
  if (!dot) return c.json({ ok: false, error: "Visualization not available." }, 404);
3401
3446
  return c.json({ ok: true, dot });
@@ -7276,6 +7321,7 @@ async function handleStatePatch(state, issue, payload) {
7276
7321
  if (!nextState || !ALLOWED_STATES.includes(nextState)) {
7277
7322
  throw new Error(`Unsupported state: ${String(payload.state)}`);
7278
7323
  }
7324
+ const sourceState = issue.state;
7279
7325
  const path = findIssueStateMachineTransitionPath(null, issue.state, nextState);
7280
7326
  if (!path || path.length === 0) {
7281
7327
  throw new Error(`No valid transition from '${issue.state}' to '${nextState}' for issue ${issue.id}.`);
@@ -7283,6 +7329,14 @@ async function handleStatePatch(state, issue, payload) {
7283
7329
  for (const event of path) {
7284
7330
  await transitionIssue(issue, event, { note: `Manual state update: ${nextState}`, reason: toStringValue(payload.reason) });
7285
7331
  }
7332
+ if (nextState === "Running" && sourceState === "Queued") {
7333
+ try {
7334
+ const { enqueue: enqueue2 } = await import("./queue-workers-IEI23UUO.js");
7335
+ await enqueue2(issue, "execute");
7336
+ } catch (error) {
7337
+ logger.warn({ issueId: issue.id, err: error }, "[Issues] Failed to enqueue after manual Running transition");
7338
+ }
7339
+ }
7286
7340
  if (nextState === "PendingApproval") {
7287
7341
  issue.nextRetryAt = void 0;
7288
7342
  issue.lastError = void 0;
@@ -7293,34 +7347,6 @@ async function handleStatePatch(state, issue, payload) {
7293
7347
  addEvent(state, issue.id, "manual", `Manual state transition to ${nextState}`);
7294
7348
  }
7295
7349
 
7296
- // src/commands/request-rework.command.ts
7297
- async function requestReworkCommand(input, deps) {
7298
- const { issue, reviewerFeedback, note } = input;
7299
- if (issue.state !== "Reviewing" && issue.state !== "PendingDecision") {
7300
- throw new Error(
7301
- `requestReworkCommand requires Reviewing or PendingDecision state, got ${issue.state}.`
7302
- );
7303
- }
7304
- issue.lastError = reviewerFeedback;
7305
- issue.lastFailedPhase = "review";
7306
- issue.attempts += 1;
7307
- if (issue.state === "Reviewing") {
7308
- await transitionIssueCommand(
7309
- { issue, target: "PendingDecision", note: `Reviewer completed for ${issue.identifier}.` },
7310
- deps
7311
- );
7312
- }
7313
- await transitionIssueCommand(
7314
- { issue, target: "Queued", note: note ?? `Reviewer requested rework for ${issue.identifier}.` },
7315
- deps
7316
- );
7317
- deps.eventStore.addEvent(
7318
- issue.id,
7319
- "runner",
7320
- `Issue ${issue.identifier} sent back for rework by reviewer.`
7321
- );
7322
- }
7323
-
7324
7350
  // src/agents/issue-runner.ts
7325
7351
  async function runPlanningJob(state, issue) {
7326
7352
  issue.planningStatus = "planning";
@@ -7566,7 +7592,7 @@ async function runIssueOnce(state, issue, running) {
7566
7592
  const { workspacePath, promptText, promptFile } = await prepareWorkspace(issue, state, state.config.defaultBranch);
7567
7593
  container.issueRepository.markDirty(issue.id);
7568
7594
  try {
7569
- const { getIssueStateResource: getIssueStateResource2 } = await import("./store-RVKQ6UEY.js");
7595
+ const { getIssueStateResource: getIssueStateResource2 } = await import("./store-MTE6H7WQ.js");
7570
7596
  const res = getIssueStateResource2();
7571
7597
  if (res) {
7572
7598
  await res.patch(issue.id, {
@@ -7678,4 +7704,4 @@ export {
7678
7704
  syncReferenceRepositories,
7679
7705
  importReferenceArtifacts
7680
7706
  };
7681
- //# sourceMappingURL=chunk-3FCJI2GK.js.map
7707
+ //# sourceMappingURL=chunk-7AMUAUY5.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  computeDiffStats
3
- } from "./chunk-XVF6GOVS.js";
3
+ } from "./chunk-IYAF3SY6.js";
4
4
  import {
5
5
  isoWeek,
6
6
  now
@@ -323,7 +323,7 @@ function emitFsmEvent(issueId, kind, message) {
323
323
  }
324
324
  }
325
325
  async function lazyEnqueue(issue, job) {
326
- const { enqueue } = await import("./queue-workers-EGHCDDLB.js");
326
+ const { enqueue } = await import("./queue-workers-IEI23UUO.js");
327
327
  return enqueue(issue, job);
328
328
  }
329
329
  var ISSUE_STATE_MACHINE_ID = "issue-lifecycle";
@@ -844,4 +844,4 @@ export {
844
844
  canTransitionIssue,
845
845
  visualizeStateMachine
846
846
  };
847
- //# sourceMappingURL=chunk-2G6SRDOC.js.map
847
+ //# sourceMappingURL=chunk-CXFEPU5Q.js.map
@@ -1550,7 +1550,7 @@ function parseDiffStats(issue, raw) {
1550
1550
  }
1551
1551
  async function syncIssueDiffStatsToStore(issue) {
1552
1552
  if (!issue?.id) return;
1553
- const { getIssueStateResource } = await import("./store-RVKQ6UEY.js");
1553
+ const { getIssueStateResource } = await import("./store-MTE6H7WQ.js");
1554
1554
  const issueResource = getIssueStateResource();
1555
1555
  if (!issueResource) return;
1556
1556
  const toNumber = (value) => {
@@ -1811,4 +1811,4 @@ export {
1811
1811
  hydrateIssuePathsFromWorkspace,
1812
1812
  writeVersionedArtifacts
1813
1813
  };
1814
- //# sourceMappingURL=chunk-XVF6GOVS.js.map
1814
+ //# sourceMappingURL=chunk-IYAF3SY6.js.map
@@ -26,7 +26,7 @@ async function initQueueWorkers(state) {
26
26
  }, 3e4);
27
27
  persistInterval = setInterval(() => {
28
28
  if (!active || !runtimeState) return;
29
- import("./store-RVKQ6UEY.js").then(
29
+ import("./store-MTE6H7WQ.js").then(
30
30
  ({ persistState }) => persistState(runtimeState).catch(() => {
31
31
  })
32
32
  ).catch(() => {
@@ -116,11 +116,11 @@ function sortQueue() {
116
116
  }
117
117
  async function dispatchPlan(issue) {
118
118
  logger.info({ issueId: issue.id, identifier: issue.identifier }, "[Queue] Dispatching plan job");
119
- const { runPlanningJob } = await import("./issue-runner-MRHO5ZAB.js");
119
+ const { runPlanningJob } = await import("./issue-runner-CI7IUBBD.js");
120
120
  await runPlanningJob(runtimeState, issue);
121
121
  }
122
122
  async function dispatchExecute(issue) {
123
- const { runIssueOnce } = await import("./issue-runner-MRHO5ZAB.js");
123
+ const { runIssueOnce } = await import("./issue-runner-CI7IUBBD.js");
124
124
  while (active && runtimeState) {
125
125
  const current = getCurrentIssue(issue.id);
126
126
  if (!current || current.state !== "Queued" && current.state !== "Running") break;
@@ -130,12 +130,12 @@ async function dispatchExecute(issue) {
130
130
  }
131
131
  async function dispatchReview(issue) {
132
132
  logger.info({ issueId: issue.id, identifier: issue.identifier }, "[Queue] Dispatching review job");
133
- const { runIssueOnce } = await import("./issue-runner-MRHO5ZAB.js");
133
+ const { runIssueOnce } = await import("./issue-runner-CI7IUBBD.js");
134
134
  await runIssueOnce(runtimeState, issue, running);
135
135
  }
136
136
  async function checkStaleIssues() {
137
137
  if (!runtimeState) return;
138
- const { ensureNotStale } = await import("./scheduler-V4GMCBTE.js");
138
+ const { ensureNotStale } = await import("./scheduler-JSH55NAQ.js");
139
139
  await ensureNotStale(runtimeState, runtimeState.config.staleInProgressTimeoutMs);
140
140
  }
141
141
  var draining = false;
@@ -186,7 +186,7 @@ async function enqueue(issue, job) {
186
186
  async function recoverState() {
187
187
  if (!runtimeState) return;
188
188
  try {
189
- const { getIssueStateMachinePlugin, ISSUE_STATE_MACHINE_ID } = await import("./issue-state-machine-V2KPUYPW.js");
189
+ const { getIssueStateMachinePlugin, ISSUE_STATE_MACHINE_ID } = await import("./issue-state-machine-ETAJLBS6.js");
190
190
  const fsmPlugin = getIssueStateMachinePlugin();
191
191
  if (fsmPlugin?.getState) {
192
192
  for (const issue of runtimeState.issues) {
@@ -218,9 +218,9 @@ async function recoverState() {
218
218
  }
219
219
  async function recoverOrphans() {
220
220
  if (!runtimeState) return;
221
- const { isAgentStillRunning, cleanStalePidFile } = await import("./agent-FPUYBJZD.js");
222
- const { executeTransition } = await import("./issue-state-machine-V2KPUYPW.js");
223
- const { addEvent } = await import("./issues-3PUMY63N.js");
221
+ const { isAgentStillRunning, cleanStalePidFile } = await import("./agent-OBLUHG2W.js");
222
+ const { executeTransition } = await import("./issue-state-machine-ETAJLBS6.js");
223
+ const { addEvent } = await import("./issues-6VCD27PA.js");
224
224
  const candidates = runtimeState.issues.filter((i) => i.state === "Running" || i.state === "Queued");
225
225
  logger.debug({ count: candidates.length }, "[Queue] Checking for orphaned agent processes");
226
226
  for (const issue of candidates) {
@@ -258,7 +258,7 @@ function cleanTerminalWorkspaces() {
258
258
  logger.info({ count: terminals.length }, "[Queue] Scheduling terminal workspace cleanup in background");
259
259
  const state = runtimeState;
260
260
  setImmediate(async () => {
261
- const { cleanWorkspace } = await import("./agent-FPUYBJZD.js");
261
+ const { cleanWorkspace } = await import("./agent-OBLUHG2W.js");
262
262
  for (const issue of terminals) {
263
263
  try {
264
264
  await cleanWorkspace(issue.id, issue, state);
@@ -292,4 +292,4 @@ export {
292
292
  cleanTerminalWorkspaces,
293
293
  getQueueStats
294
294
  };
295
- //# sourceMappingURL=chunk-VOQT7RVT.js.map
295
+ //# sourceMappingURL=chunk-VUNMXX7N.js.map
package/dist/cli.js CHANGED
@@ -3,11 +3,11 @@ import {
3
3
  importReferenceArtifacts,
4
4
  listReferenceRepositories,
5
5
  syncReferenceRepositories
6
- } from "./chunk-3FCJI2GK.js";
7
- import "./chunk-2G6SRDOC.js";
8
- import "./chunk-XVF6GOVS.js";
6
+ } from "./chunk-7AMUAUY5.js";
7
+ import "./chunk-CXFEPU5Q.js";
8
+ import "./chunk-IYAF3SY6.js";
9
9
  import "./chunk-O5AEQXUV.js";
10
- import "./chunk-VOQT7RVT.js";
10
+ import "./chunk-VUNMXX7N.js";
11
11
  import "./chunk-DVU3CXWA.js";
12
12
  import "./chunk-OONOOWNC.js";
13
13
 
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  runIssueOnce,
3
3
  runPlanningJob
4
- } from "./chunk-3FCJI2GK.js";
5
- import "./chunk-2G6SRDOC.js";
6
- import "./chunk-XVF6GOVS.js";
4
+ } from "./chunk-7AMUAUY5.js";
5
+ import "./chunk-CXFEPU5Q.js";
6
+ import "./chunk-IYAF3SY6.js";
7
7
  import "./chunk-O5AEQXUV.js";
8
- import "./chunk-VOQT7RVT.js";
8
+ import "./chunk-VUNMXX7N.js";
9
9
  import "./chunk-DVU3CXWA.js";
10
10
  import "./chunk-OONOOWNC.js";
11
11
  export {
12
12
  runIssueOnce,
13
13
  runPlanningJob
14
14
  };
15
- //# sourceMappingURL=issue-runner-MRHO5ZAB.js.map
15
+ //# sourceMappingURL=issue-runner-CI7IUBBD.js.map
@@ -15,8 +15,8 @@ import {
15
15
  setIssueResourceStateApi,
16
16
  setIssueStateMachinePlugin,
17
17
  visualizeStateMachine
18
- } from "./chunk-2G6SRDOC.js";
19
- import "./chunk-XVF6GOVS.js";
18
+ } from "./chunk-CXFEPU5Q.js";
19
+ import "./chunk-IYAF3SY6.js";
20
20
  import "./chunk-O5AEQXUV.js";
21
21
  import "./chunk-DVU3CXWA.js";
22
22
  import "./chunk-OONOOWNC.js";
@@ -38,4 +38,4 @@ export {
38
38
  setIssueStateMachinePlugin,
39
39
  visualizeStateMachine
40
40
  };
41
- //# sourceMappingURL=issue-state-machine-V2KPUYPW.js.map
41
+ //# sourceMappingURL=issue-state-machine-ETAJLBS6.js.map
@@ -12,13 +12,13 @@ import {
12
12
  normalizeIssue,
13
13
  transitionIssue,
14
14
  validateConfig
15
- } from "./chunk-3FCJI2GK.js";
15
+ } from "./chunk-7AMUAUY5.js";
16
16
  import {
17
17
  computeMetrics
18
- } from "./chunk-2G6SRDOC.js";
19
- import "./chunk-XVF6GOVS.js";
18
+ } from "./chunk-CXFEPU5Q.js";
19
+ import "./chunk-IYAF3SY6.js";
20
20
  import "./chunk-O5AEQXUV.js";
21
- import "./chunk-VOQT7RVT.js";
21
+ import "./chunk-VUNMXX7N.js";
22
22
  import "./chunk-DVU3CXWA.js";
23
23
  import "./chunk-OONOOWNC.js";
24
24
  export {
@@ -37,4 +37,4 @@ export {
37
37
  transitionIssue,
38
38
  validateConfig
39
39
  };
40
- //# sourceMappingURL=issues-3PUMY63N.js.map
40
+ //# sourceMappingURL=issues-6VCD27PA.js.map
@@ -7,7 +7,7 @@ import {
7
7
  recoverOrphans,
8
8
  recoverState,
9
9
  stopQueueWorkers
10
- } from "./chunk-VOQT7RVT.js";
10
+ } from "./chunk-VUNMXX7N.js";
11
11
  import "./chunk-DVU3CXWA.js";
12
12
  import "./chunk-OONOOWNC.js";
13
13
  export {
@@ -20,4 +20,4 @@ export {
20
20
  recoverState,
21
21
  stopQueueWorkers
22
22
  };
23
- //# sourceMappingURL=queue-workers-EGHCDDLB.js.map
23
+ //# sourceMappingURL=queue-workers-IEI23UUO.js.map
@@ -4,11 +4,11 @@ import {
4
4
  hasTerminalQueue,
5
5
  installGracefulShutdown,
6
6
  isShuttingDown
7
- } from "./chunk-3FCJI2GK.js";
8
- import "./chunk-2G6SRDOC.js";
9
- import "./chunk-XVF6GOVS.js";
7
+ } from "./chunk-7AMUAUY5.js";
8
+ import "./chunk-CXFEPU5Q.js";
9
+ import "./chunk-IYAF3SY6.js";
10
10
  import "./chunk-O5AEQXUV.js";
11
- import "./chunk-VOQT7RVT.js";
11
+ import "./chunk-VUNMXX7N.js";
12
12
  import "./chunk-DVU3CXWA.js";
13
13
  import "./chunk-OONOOWNC.js";
14
14
  export {
@@ -18,4 +18,4 @@ export {
18
18
  installGracefulShutdown,
19
19
  isShuttingDown
20
20
  };
21
- //# sourceMappingURL=scheduler-V4GMCBTE.js.map
21
+ //# sourceMappingURL=scheduler-JSH55NAQ.js.map
@@ -18,16 +18,16 @@ import {
18
18
  persistStateFull,
19
19
  replacePersistedSetting,
20
20
  setActiveApiPlugin
21
- } from "./chunk-3FCJI2GK.js";
21
+ } from "./chunk-7AMUAUY5.js";
22
22
  import {
23
23
  hasDirtyState,
24
24
  markEventDirty,
25
25
  markIssueDirty,
26
26
  markIssuePlanDirty
27
- } from "./chunk-2G6SRDOC.js";
28
- import "./chunk-XVF6GOVS.js";
27
+ } from "./chunk-CXFEPU5Q.js";
28
+ import "./chunk-IYAF3SY6.js";
29
29
  import "./chunk-O5AEQXUV.js";
30
- import "./chunk-VOQT7RVT.js";
30
+ import "./chunk-VUNMXX7N.js";
31
31
  import "./chunk-DVU3CXWA.js";
32
32
  import "./chunk-OONOOWNC.js";
33
33
  export {
@@ -55,4 +55,4 @@ export {
55
55
  replacePersistedSetting,
56
56
  setActiveApiPlugin
57
57
  };
58
- //# sourceMappingURL=store-RVKQ6UEY.js.map
58
+ //# sourceMappingURL=store-MTE6H7WQ.js.map
@@ -21,7 +21,7 @@ import {
21
21
  shouldSkipMergePath,
22
22
  syncIssueDiffStatsToStore,
23
23
  writeVersionedArtifacts
24
- } from "./chunk-XVF6GOVS.js";
24
+ } from "./chunk-IYAF3SY6.js";
25
25
  import "./chunk-O5AEQXUV.js";
26
26
  import "./chunk-DVU3CXWA.js";
27
27
  import "./chunk-OONOOWNC.js";
@@ -49,4 +49,4 @@ export {
49
49
  syncIssueDiffStatsToStore,
50
50
  writeVersionedArtifacts
51
51
  };
52
- //# sourceMappingURL=workspace-KEHFITYR.js.map
52
+ //# sourceMappingURL=workspace-3PV5PTR5.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fifony",
3
- "version": "0.1.30",
3
+ "version": "0.1.31",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",