@frehilm/ordna-cli 0.1.4 → 0.2.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.
Files changed (62) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +14 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/assign.d.ts.map +1 -1
  5. package/dist/commands/assign.js +3 -2
  6. package/dist/commands/assign.js.map +1 -1
  7. package/dist/commands/commit.d.ts.map +1 -1
  8. package/dist/commands/commit.js +3 -2
  9. package/dist/commands/commit.js.map +1 -1
  10. package/dist/commands/create.d.ts.map +1 -1
  11. package/dist/commands/create.js +8 -3
  12. package/dist/commands/create.js.map +1 -1
  13. package/dist/commands/init.d.ts +15 -1
  14. package/dist/commands/init.d.ts.map +1 -1
  15. package/dist/commands/init.js +67 -17
  16. package/dist/commands/init.js.map +1 -1
  17. package/dist/commands/list.d.ts.map +1 -1
  18. package/dist/commands/list.js +3 -2
  19. package/dist/commands/list.js.map +1 -1
  20. package/dist/commands/move.d.ts.map +1 -1
  21. package/dist/commands/move.js +3 -2
  22. package/dist/commands/move.js.map +1 -1
  23. package/dist/commands/show.d.ts.map +1 -1
  24. package/dist/commands/show.js +3 -2
  25. package/dist/commands/show.js.map +1 -1
  26. package/dist/lib/ensure-context.d.ts +19 -0
  27. package/dist/lib/ensure-context.d.ts.map +1 -0
  28. package/dist/lib/ensure-context.js +39 -0
  29. package/dist/lib/ensure-context.js.map +1 -0
  30. package/dist/lib/prompt-mode.d.ts +12 -0
  31. package/dist/lib/prompt-mode.d.ts.map +1 -0
  32. package/dist/lib/prompt-mode.js +43 -0
  33. package/dist/lib/prompt-mode.js.map +1 -0
  34. package/dist/tui/App.d.ts.map +1 -1
  35. package/dist/tui/App.js +39 -1
  36. package/dist/tui/App.js.map +1 -1
  37. package/dist/tui/LineInput.d.ts +26 -0
  38. package/dist/tui/LineInput.d.ts.map +1 -0
  39. package/dist/tui/LineInput.js +114 -0
  40. package/dist/tui/LineInput.js.map +1 -0
  41. package/dist/tui/SetupModal.d.ts +14 -0
  42. package/dist/tui/SetupModal.d.ts.map +1 -0
  43. package/dist/tui/SetupModal.js +67 -0
  44. package/dist/tui/SetupModal.js.map +1 -0
  45. package/dist/tui/TaskDetail.d.ts.map +1 -1
  46. package/dist/tui/TaskDetail.js +1 -1
  47. package/dist/tui/TaskDetail.js.map +1 -1
  48. package/dist/tui/TaskEditor.d.ts.map +1 -1
  49. package/dist/tui/TaskEditor.js +96 -28
  50. package/dist/tui/TaskEditor.js.map +1 -1
  51. package/dist/tui/TextPrompt.d.ts.map +1 -1
  52. package/dist/tui/TextPrompt.js +2 -2
  53. package/dist/tui/TextPrompt.js.map +1 -1
  54. package/dist/tui/hooks.d.ts +17 -0
  55. package/dist/tui/hooks.d.ts.map +1 -1
  56. package/dist/tui/hooks.js +53 -1
  57. package/dist/tui/hooks.js.map +1 -1
  58. package/dist/tui/index.d.ts.map +1 -1
  59. package/dist/tui/index.js +38 -3
  60. package/dist/tui/index.js.map +1 -1
  61. package/package.json +3 -3
  62. package/templates/AGENTS.md +25 -0
@@ -1,8 +1,9 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { ARCHIVED_STATUS, updateTask as updateTaskCore, } from "@frehilm/ordna-core";
3
3
  import { Box, Text, useInput } from "ink";
4
- import TextInput from "ink-text-input";
5
4
  import React, { useEffect, useMemo, useState } from "react";
5
+ import { useRawBackspaceDelete } from "./hooks.js";
6
+ import { LineInput } from "./LineInput.js";
6
7
  import { colorForStatus, tagColor, theme } from "./theme.js";
7
8
  const PRIORITIES = [null, "low", "medium", "high"];
8
9
  function toDraft(task) {
@@ -137,6 +138,12 @@ export function TaskEditor({ task, ctx, onClose, onSaved, width, height, }) {
137
138
  const [error, setError] = useState(null);
138
139
  const [cursor, setCursor] = useState(0);
139
140
  const [sectionScrollIdx, setSectionScrollIdx] = useState(0);
141
+ // When set, the editor is asking the user to confirm a discard / save /
142
+ // cancel choice instead of accepting field edits. Driven by the
143
+ // dirty-Esc flow at the bottom of the main useInput handler.
144
+ const [confirmExit, setConfirmExit] = useState(false);
145
+ const baseline = useMemo(() => toDraft(task), [task]);
146
+ const dirty = useMemo(() => JSON.stringify(draft) !== JSON.stringify(baseline), [draft, baseline]);
140
147
  const fields = useMemo(() => buildFields(draft), [draft]);
141
148
  const focused = fields[focusIdx] ?? fields[0];
142
149
  const innerWidth = Math.max(10, width - 4);
@@ -230,6 +237,48 @@ export function TaskEditor({ task, ctx, onClose, onSaved, width, height, }) {
230
237
  return;
231
238
  setCursor((c) => Math.max(0, Math.min(c, sec.content.length)));
232
239
  }, [editing, focused, draft.sections]);
240
+ // Raw-byte backspace/forward-delete for the section editor. Ink's
241
+ // parsed key object collapses both into `key.delete`, so we need
242
+ // the byte stream to do the right thing. Active only while a
243
+ // section is being edited; LineInput owns its own copy for the
244
+ // title/assignee/tags/depends_on text fields.
245
+ const sectionEditActive = editing &&
246
+ focused?.kind === "section" &&
247
+ !confirmExit &&
248
+ !saving &&
249
+ draft.sections[focused.index] !== undefined;
250
+ const sectionIdx = focused?.kind === "section" ? focused.index : -1;
251
+ useRawBackspaceDelete(() => {
252
+ if (sectionIdx < 0)
253
+ return;
254
+ const section = draft.sections[sectionIdx];
255
+ if (!section)
256
+ return;
257
+ if (cursor === 0)
258
+ return;
259
+ const next = section.content.slice(0, cursor - 1) +
260
+ section.content.slice(cursor);
261
+ setDraft((d) => ({
262
+ ...d,
263
+ sections: d.sections.map((s, i) => i === sectionIdx ? { ...s, content: next } : s),
264
+ }));
265
+ setCursor(cursor - 1);
266
+ }, () => {
267
+ if (sectionIdx < 0)
268
+ return;
269
+ const section = draft.sections[sectionIdx];
270
+ if (!section)
271
+ return;
272
+ if (cursor >= section.content.length)
273
+ return;
274
+ const next = section.content.slice(0, cursor) +
275
+ section.content.slice(cursor + 1);
276
+ setDraft((d) => ({
277
+ ...d,
278
+ sections: d.sections.map((s, i) => i === sectionIdx ? { ...s, content: next } : s),
279
+ }));
280
+ // Cursor stays put.
281
+ }, sectionEditActive);
233
282
  const save = async () => {
234
283
  setSaving(true);
235
284
  setError(null);
@@ -244,15 +293,38 @@ export function TaskEditor({ task, ctx, onClose, onSaved, width, height, }) {
244
293
  sections: draft.sections,
245
294
  }, ctx);
246
295
  onSaved(updated);
296
+ return true;
247
297
  }
248
298
  catch (e) {
249
299
  setError(e.message);
250
300
  setSaving(false);
301
+ return false;
251
302
  }
252
303
  };
253
304
  useInput(async (input, key) => {
254
305
  if (saving)
255
306
  return;
307
+ // Confirmation overlay intercepts everything else.
308
+ if (confirmExit) {
309
+ if (input === "s" || input === "S" || key.return) {
310
+ const ok = await save();
311
+ // On success the parent's onSaved closes the editor; on
312
+ // failure we drop the prompt so the user can see the
313
+ // error banner and decide what to do.
314
+ if (!ok)
315
+ setConfirmExit(false);
316
+ return;
317
+ }
318
+ if (input === "d" || input === "D") {
319
+ onClose();
320
+ return;
321
+ }
322
+ if (input === "c" || input === "C" || key.escape) {
323
+ setConfirmExit(false);
324
+ return;
325
+ }
326
+ return;
327
+ }
256
328
  if (key.ctrl && (input === "s" || input === "S")) {
257
329
  await save();
258
330
  return;
@@ -374,20 +446,11 @@ export function TaskEditor({ task, ctx, onClose, onSaved, width, height, }) {
374
446
  writeContent(next, cursor + 1);
375
447
  return;
376
448
  }
377
- if (key.backspace) {
378
- if (cursor === 0)
379
- return;
380
- const next = content.slice(0, cursor - 1) + content.slice(cursor);
381
- writeContent(next, cursor - 1);
449
+ // Backspace / forward-delete are handled by the raw-byte
450
+ // hook below — Ink can't tell them apart in the parsed key
451
+ // object. See `useRawBackspaceDelete` in hooks.ts.
452
+ if (key.backspace || key.delete)
382
453
  return;
383
- }
384
- if (key.delete) {
385
- if (cursor >= content.length)
386
- return;
387
- const next = content.slice(0, cursor) + content.slice(cursor + 1);
388
- writeContent(next, cursor);
389
- return;
390
- }
391
454
  if (input && !key.ctrl && !key.meta) {
392
455
  const next = content.slice(0, cursor) + input + content.slice(cursor);
393
456
  writeContent(next, cursor + input.length);
@@ -399,7 +462,12 @@ export function TaskEditor({ task, ctx, onClose, onSaved, width, height, }) {
399
462
  }
400
463
  // Not editing: navigation + open editor
401
464
  if (key.escape) {
402
- onClose();
465
+ if (dirty) {
466
+ setConfirmExit(true);
467
+ }
468
+ else {
469
+ onClose();
470
+ }
403
471
  return;
404
472
  }
405
473
  if (key.tab && key.shift) {
@@ -444,7 +512,7 @@ export function TaskEditor({ task, ctx, onClose, onSaved, width, height, }) {
444
512
  (focused.kind === "section" && focused.index === field.index));
445
513
  const isEditing = isFocused && editing;
446
514
  if (isEditing) {
447
- return (_jsx(TextInput, { value: value, onChange: onChange, onSubmit: () => setEditing(false), placeholder: placeholder }));
515
+ return (_jsx(LineInput, { value: value, onChange: onChange, onSubmit: () => setEditing(false), placeholder: placeholder }));
448
516
  }
449
517
  const display = value.length === 0 ? placeholder ?? "—" : value;
450
518
  const dim = value.length === 0;
@@ -461,7 +529,7 @@ export function TaskEditor({ task, ctx, onClose, onSaved, width, height, }) {
461
529
  const isFocused = focused?.kind === "tags";
462
530
  const isEditing = isFocused && editing;
463
531
  if (isEditing) {
464
- return (_jsx(TextInput, { value: tokensToString(draft.tags), onChange: (v) => setDraft((d) => ({ ...d, tags: stringToTokens(v) })), onSubmit: () => setEditing(false), placeholder: "comma or space separated" }));
532
+ return (_jsx(LineInput, { value: tokensToString(draft.tags), onChange: (v) => setDraft((d) => ({ ...d, tags: stringToTokens(v) })), onSubmit: () => setEditing(false), placeholder: "comma or space separated" }));
465
533
  }
466
534
  if (draft.tags.length === 0) {
467
535
  return _jsx(Text, { color: theme.textFaint, children: "\u2014" });
@@ -472,7 +540,7 @@ export function TaskEditor({ task, ctx, onClose, onSaved, width, height, }) {
472
540
  const isFocused = focused?.kind === "depends_on";
473
541
  const isEditing = isFocused && editing;
474
542
  if (isEditing) {
475
- return (_jsx(TextInput, { value: tokensToString(draft.depends_on), onChange: (v) => setDraft((d) => ({ ...d, depends_on: stringToTokens(v) })), onSubmit: () => setEditing(false), placeholder: "e.g. T-001, T-002" }));
543
+ return (_jsx(LineInput, { value: tokensToString(draft.depends_on), onChange: (v) => setDraft((d) => ({ ...d, depends_on: stringToTokens(v) })), onSubmit: () => setEditing(false), placeholder: "e.g. T-001, T-002" }));
476
544
  }
477
545
  if (draft.depends_on.length === 0) {
478
546
  return _jsx(Text, { color: theme.textFaint, children: "\u2014" });
@@ -490,14 +558,14 @@ export function TaskEditor({ task, ctx, onClose, onSaved, width, height, }) {
490
558
  const priorityColor = draft.priority
491
559
  ? theme.priority[draft.priority]
492
560
  : theme.textFaint;
493
- return (_jsxs(Box, { flexDirection: "column", borderStyle: "double", borderColor: theme.borderFocused, width: width, height: height, paddingX: 2, paddingY: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: theme.accent, bold: true, children: task.id }), _jsx(Text, { color: theme.textMuted, children: " edit" }), saving ? (_jsx(Text, { color: theme.textMuted, children: " · saving…" })) : null] }), error ? (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "#ef4444", children: error }) })) : null, _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [renderRow("Title", { kind: "title" }, renderTextValue({ kind: "title" }, draft.title, (v) => setDraft((d) => ({ ...d, title: v })))), renderRow("Status", { kind: "status" }, renderSelectValue({ kind: "status" }, draft.status, statusColor)), renderRow("Priority", { kind: "priority" }, renderSelectValue({ kind: "priority" }, priorityLabel(draft.priority), priorityColor)), renderRow("Assignee", { kind: "assignee" }, renderTextValue({ kind: "assignee" }, draft.assignee, (v) => setDraft((d) => ({ ...d, assignee: v })), "unassigned")), renderRow("Tags", { kind: "tags" }, renderTags()), renderRow("Depends", { kind: "depends_on" }, renderDependsOn())] }), _jsxs(Box, { flexDirection: "column", width: innerWidth, height: sectionsAreaHeight, children: [sectionLayout.aboveCount > 0 ? (_jsxs(Text, { color: theme.textMuted, italic: true, wrap: "truncate-end", children: ["\u2191 ", sectionLayout.aboveCount, " more"] })) : null, renderableSections
494
- .slice(sectionLayout.start, sectionLayout.end)
495
- .map((entry) => renderSection(entry.index, entry.section)), sectionLayout.belowCount > 0 ? (_jsxs(Text, { color: theme.textMuted, italic: true, wrap: "truncate-end", children: ["\u2193 ", sectionLayout.belowCount, " more"] })) : null] }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: theme.textMuted, italic: true, children: editing
496
- ? focused?.kind === "section"
497
- ? "←/→/↑/↓ move · Ctrl+←/→ word · Ctrl+A/E line · Esc back · Ctrl+S save"
498
- : focused?.kind === "status" || focused?.kind === "priority"
499
- ? "↑/↓ change · Enter/Esc back · Ctrl+S save"
500
- : "Enter confirm · Esc back · Ctrl+S save"
501
- : "Tab field · Enter edit · Ctrl+S save · Esc cancel" }) })] }));
561
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "double", borderColor: theme.borderFocused, width: width, height: height, paddingX: 2, paddingY: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: theme.accent, bold: true, children: task.id }), _jsx(Text, { color: theme.textMuted, children: " edit" }), saving ? (_jsx(Text, { color: theme.textMuted, children: " · saving…" })) : null, dirty && !confirmExit && !saving ? (_jsx(Text, { color: theme.accent2, children: " · unsaved" })) : null] }), error ? (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "#ef4444", children: error }) })) : null, confirmExit ? (_jsxs(Box, { flexDirection: "column", marginTop: 2, paddingX: 2, children: [_jsx(Text, { color: theme.accent2, bold: true, children: "Unsaved changes" }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: theme.text, children: ["You've made changes to", " ", _jsx(Text, { color: theme.accent, bold: true, children: task.id }), ". What would you like to do?"] }) }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Text, { children: [_jsx(Text, { color: theme.accent, bold: true, children: " S " }), _jsx(Text, { color: theme.text, children: "save and close" })] }), _jsxs(Text, { children: [_jsx(Text, { color: theme.accent, bold: true, children: " D " }), _jsx(Text, { color: theme.text, children: "discard changes and close" })] }), _jsxs(Text, { children: [_jsx(Text, { color: theme.accent, bold: true, children: " C " }), _jsx(Text, { color: theme.text, children: "keep editing" })] })] }), _jsx(Box, { marginTop: 2, children: _jsx(Text, { color: theme.textMuted, italic: true, children: "Enter saves \u00B7 Esc cancels" }) })] })) : (_jsxs(_Fragment, { children: [_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [renderRow("Title", { kind: "title" }, renderTextValue({ kind: "title" }, draft.title, (v) => setDraft((d) => ({ ...d, title: v })))), renderRow("Status", { kind: "status" }, renderSelectValue({ kind: "status" }, draft.status, statusColor)), renderRow("Priority", { kind: "priority" }, renderSelectValue({ kind: "priority" }, priorityLabel(draft.priority), priorityColor)), renderRow("Assignee", { kind: "assignee" }, renderTextValue({ kind: "assignee" }, draft.assignee, (v) => setDraft((d) => ({ ...d, assignee: v })), "unassigned")), renderRow("Tags", { kind: "tags" }, renderTags()), renderRow("Depends", { kind: "depends_on" }, renderDependsOn())] }), _jsxs(Box, { flexDirection: "column", width: innerWidth, height: sectionsAreaHeight, children: [sectionLayout.aboveCount > 0 ? (_jsxs(Text, { color: theme.textMuted, italic: true, wrap: "truncate-end", children: ["\u2191 ", sectionLayout.aboveCount, " more"] })) : null, renderableSections
562
+ .slice(sectionLayout.start, sectionLayout.end)
563
+ .map((entry) => renderSection(entry.index, entry.section)), sectionLayout.belowCount > 0 ? (_jsxs(Text, { color: theme.textMuted, italic: true, wrap: "truncate-end", children: ["\u2193 ", sectionLayout.belowCount, " more"] })) : null] }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: theme.textMuted, italic: true, children: editing
564
+ ? focused?.kind === "section"
565
+ ? "←/→/↑/↓ move · Ctrl+←/→ word · Ctrl+A/E line · Esc back · Ctrl+S save"
566
+ : focused?.kind === "status" || focused?.kind === "priority"
567
+ ? "↑/↓ change · Enter/Esc back · Ctrl+S save"
568
+ : "Enter confirm · Esc back · Ctrl+S save"
569
+ : "Tab field · Enter edit · Ctrl+S save · Esc cancel" }) })] }))] }));
502
570
  }
503
571
  //# sourceMappingURL=TaskEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaskEditor.js","sourceRoot":"","sources":["../../src/tui/TaskEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskEditor.js","sourceRoot":"","sources":["../../src/tui/TaskEditor.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TextPrompt.d.ts","sourceRoot":"","sources":["../../src/tui/TextPrompt.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,UAAU,KAAK;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,EAC1B,KAAK,EACL,YAAiB,EACjB,QAAQ,EACR,QAAQ,GACR,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAmC3B"}
1
+ {"version":3,"file":"TextPrompt.d.ts","sourceRoot":"","sources":["../../src/tui/TextPrompt.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,UAAU,KAAK;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,EAC1B,KAAK,EACL,YAAiB,EACjB,QAAQ,EACR,QAAQ,GACR,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAmC3B"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text, useInput } from "ink";
3
- import TextInput from "ink-text-input";
4
3
  import React, { useState } from "react";
4
+ import { LineInput } from "./LineInput.js";
5
5
  import { theme } from "./theme.js";
6
6
  export function TextPrompt({ label, initialValue = "", onSubmit, onCancel, }) {
7
7
  const [value, setValue] = useState(initialValue);
@@ -9,7 +9,7 @@ export function TextPrompt({ label, initialValue = "", onSubmit, onCancel, }) {
9
9
  if (key.escape)
10
10
  onCancel();
11
11
  });
12
- return (_jsxs(Box, { borderStyle: "double", borderColor: theme.borderFocused, flexDirection: "column", paddingX: 2, paddingY: 1, children: [_jsx(Text, { color: theme.text, bold: true, children: label }), _jsx(Box, { marginTop: 1, children: _jsx(TextInput, { value: value, onChange: setValue, onSubmit: (v) => {
12
+ return (_jsxs(Box, { borderStyle: "double", borderColor: theme.borderFocused, flexDirection: "column", paddingX: 2, paddingY: 1, children: [_jsx(Text, { color: theme.text, bold: true, children: label }), _jsx(Box, { marginTop: 1, children: _jsx(LineInput, { value: value, onChange: setValue, onSubmit: (v) => {
13
13
  if (v.trim().length === 0)
14
14
  onCancel();
15
15
  else
@@ -1 +1 @@
1
- {"version":3,"file":"TextPrompt.js","sourceRoot":"","sources":["../../src/tui/TextPrompt.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AASnC,MAAM,UAAU,UAAU,CAAC,EAC1B,KAAK,EACL,YAAY,GAAG,EAAE,EACjB,QAAQ,EACR,QAAQ,GACD;IACP,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEjD,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACxB,IAAI,GAAG,CAAC,MAAM;YAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,OAAO,CACN,MAAC,GAAG,IACH,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAE,KAAK,CAAC,aAAa,EAChC,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,aAEX,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,kBAC3B,KAAK,GACA,EACP,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YAChB,KAAC,SAAS,IACT,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;wBACf,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;4BAAE,QAAQ,EAAE,CAAC;;4BACjC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC,GACA,GACG,EACN,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YAChB,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,sDAE7B,GACF,IACD,CACN,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"TextPrompt.js","sourceRoot":"","sources":["../../src/tui/TextPrompt.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AASnC,MAAM,UAAU,UAAU,CAAC,EAC1B,KAAK,EACL,YAAY,GAAG,EAAE,EACjB,QAAQ,EACR,QAAQ,GACD;IACP,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEjD,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACxB,IAAI,GAAG,CAAC,MAAM;YAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,OAAO,CACN,MAAC,GAAG,IACH,WAAW,EAAC,QAAQ,EACpB,WAAW,EAAE,KAAK,CAAC,aAAa,EAChC,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,aAEX,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,kBAC3B,KAAK,GACA,EACP,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YAChB,KAAC,SAAS,IACT,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;wBACf,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;4BAAE,QAAQ,EAAE,CAAC;;4BACjC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC,GACA,GACG,EACN,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YAChB,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,sDAE7B,GACF,IACD,CACN,CAAC;AACH,CAAC"}
@@ -2,5 +2,22 @@ export interface TerminalSize {
2
2
  rows: number;
3
3
  columns: number;
4
4
  }
5
+ /**
6
+ * Subscribes to Ink's raw stdin event emitter so we can disambiguate
7
+ * Backspace from forward-Delete. Ink itself can't: macOS Backspace
8
+ * sends `\x7f` and forward-Delete sends `\x1b[3~`, but both end up as
9
+ * `key.delete === true` in the parsed key object (see Ink's
10
+ * parse-keypress.js `TODO(vadimdemedes)` note about not splitting them
11
+ * to avoid a breaking change).
12
+ *
13
+ * The hook calls `onBackspace` for the byte sequences a real Backspace
14
+ * sends (`\x7f` or `\b`) and `onForwardDelete` for the forward-Delete
15
+ * sequences (`\x1b[3~` and its rxvt/vt220 variants). Callers should
16
+ * skip these keys in their `useInput` handlers so the two paths don't
17
+ * fight.
18
+ *
19
+ * Pass `isActive=false` to detach (e.g. when the field loses focus).
20
+ */
21
+ export declare function useRawBackspaceDelete(onBackspace: () => void, onForwardDelete: () => void, isActive?: boolean): void;
5
22
  export declare function useTerminalSize(): TerminalSize;
6
23
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/tui/hooks.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,eAAe,IAAI,YAAY,CAoB9C"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/tui/hooks.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACpC,WAAW,EAAE,MAAM,IAAI,EACvB,eAAe,EAAE,MAAM,IAAI,EAC3B,QAAQ,UAAO,GACb,IAAI,CA0CN;AAED,wBAAgB,eAAe,IAAI,YAAY,CAoB9C"}
package/dist/tui/hooks.js CHANGED
@@ -1,4 +1,56 @@
1
- import { useEffect, useState } from "react";
1
+ import { useStdin } from "ink";
2
+ import { useEffect, useRef, useState } from "react";
3
+ /**
4
+ * Subscribes to Ink's raw stdin event emitter so we can disambiguate
5
+ * Backspace from forward-Delete. Ink itself can't: macOS Backspace
6
+ * sends `\x7f` and forward-Delete sends `\x1b[3~`, but both end up as
7
+ * `key.delete === true` in the parsed key object (see Ink's
8
+ * parse-keypress.js `TODO(vadimdemedes)` note about not splitting them
9
+ * to avoid a breaking change).
10
+ *
11
+ * The hook calls `onBackspace` for the byte sequences a real Backspace
12
+ * sends (`\x7f` or `\b`) and `onForwardDelete` for the forward-Delete
13
+ * sequences (`\x1b[3~` and its rxvt/vt220 variants). Callers should
14
+ * skip these keys in their `useInput` handlers so the two paths don't
15
+ * fight.
16
+ *
17
+ * Pass `isActive=false` to detach (e.g. when the field loses focus).
18
+ */
19
+ export function useRawBackspaceDelete(onBackspace, onForwardDelete, isActive = true) {
20
+ const onBackspaceRef = useRef(onBackspace);
21
+ const onForwardDeleteRef = useRef(onForwardDelete);
22
+ onBackspaceRef.current = onBackspace;
23
+ onForwardDeleteRef.current = onForwardDelete;
24
+ const stdin = useStdin();
25
+ useEffect(() => {
26
+ if (!isActive)
27
+ return;
28
+ const emitter = stdin.internal_eventEmitter;
29
+ if (!emitter)
30
+ return;
31
+ const handler = (data) => {
32
+ const seq = typeof data === "string"
33
+ ? data
34
+ : Buffer.isBuffer(data)
35
+ ? data.toString("utf8")
36
+ : "";
37
+ if (seq.length === 0)
38
+ return;
39
+ if (seq === "\x7f" || seq === "\b") {
40
+ onBackspaceRef.current();
41
+ return;
42
+ }
43
+ if (seq === "\x1b[3~" || seq === "\x1b[3$" || seq === "\x1b[3^") {
44
+ onForwardDeleteRef.current();
45
+ return;
46
+ }
47
+ };
48
+ emitter.on("input", handler);
49
+ return () => {
50
+ emitter.removeListener("input", handler);
51
+ };
52
+ }, [isActive, stdin]);
53
+ }
2
54
  export function useTerminalSize() {
3
55
  const [size, setSize] = useState({
4
56
  rows: process.stdout.rows || 24,
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/tui/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAO5C,MAAM,UAAU,eAAe;IAC9B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAe;QAC9C,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;QAC/B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;KACrC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,QAAQ,GAAG,GAAS,EAAE;YAC3B,OAAO,CAAC;gBACP,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;gBAC/B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;aACrC,CAAC,CAAC;QACJ,CAAC,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtC,OAAO,GAAG,EAAE;YACX,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAI,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/tui/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAOpD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CACpC,WAAuB,EACvB,eAA2B,EAC3B,QAAQ,GAAG,IAAI;IAEf,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,kBAAkB,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IACnD,cAAc,CAAC,OAAO,GAAG,WAAW,CAAC;IACrC,kBAAkB,CAAC,OAAO,GAAG,eAAe,CAAC;IAE7C,MAAM,KAAK,GAAG,QAAQ,EAQrB,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,OAAO,GAAG,KAAK,CAAC,qBAAqB,CAAC;QAC5C,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,OAAO,GAAG,CAAC,IAAa,EAAQ,EAAE;YACvC,MAAM,GAAG,GACR,OAAO,IAAI,KAAK,QAAQ;gBACvB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACtB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACvB,CAAC,CAAC,EAAE,CAAC;YACR,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC7B,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACpC,cAAc,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO;YACR,CAAC;YACD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACjE,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC7B,OAAO;YACR,CAAC;QACF,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE;YACX,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,eAAe;IAC9B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAe;QAC9C,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;QAC/B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;KACrC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,QAAQ,GAAG,GAAS,EAAE;YAC3B,OAAO,CAAC;gBACP,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;gBAC/B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;aACrC,CAAC,CAAC;QACJ,CAAC,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtC,OAAO,GAAG,EAAE;YACX,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tui/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAMnD,MAAM,WAAW,eAAe;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CACnC;AAED,wBAAsB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tui/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAOnD,MAAM,WAAW,eAAe;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CACnC;AAED,wBAAsB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC3E"}
package/dist/tui/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ensureStorageConfig, NeedsModeSelection, writeStorageConfig, } from "@frehilm/ordna-core";
2
3
  import { render } from "ink";
3
4
  import React from "react";
4
5
  import { App } from "./App.js";
6
+ import { SetupModal } from "./SetupModal.js";
5
7
  const ENTER_ALT_SCREEN = "\x1b[?1049h\x1b[H";
6
8
  const EXIT_ALT_SCREEN = "\x1b[?1049l";
7
9
  export async function runBoard(options = {}) {
@@ -12,14 +14,47 @@ export async function runBoard(options = {}) {
12
14
  if (useAltScreen)
13
15
  process.stdout.write(EXIT_ALT_SCREEN);
14
16
  };
15
- const { waitUntilExit } = render(_jsx(App, { agentHook: options.agentHook }), {
16
- exitOnCtrlC: true,
17
- });
18
17
  try {
18
+ // Ensure a config exists (auto-detect + optionally write) before
19
+ // mounting the main App. If detection lands on `ask`, this
20
+ // throws NeedsModeSelection — we render the setup modal first,
21
+ // write the chosen config, then continue to the board.
22
+ try {
23
+ await ensureStorageConfig(process.cwd());
24
+ }
25
+ catch (err) {
26
+ if (!(err instanceof NeedsModeSelection))
27
+ throw err;
28
+ const picked = await showSetupModal(err.reason);
29
+ if (picked === null) {
30
+ // User cancelled — exit cleanly without rendering the board.
31
+ return;
32
+ }
33
+ writeStorageConfig(process.cwd(), picked);
34
+ }
35
+ const { waitUntilExit } = render(_jsx(App, { agentHook: options.agentHook }), { exitOnCtrlC: true });
19
36
  await waitUntilExit();
20
37
  }
21
38
  finally {
22
39
  cleanup();
23
40
  }
24
41
  }
42
+ /**
43
+ * Render the SetupModal in its own short-lived Ink instance, await
44
+ * the user's choice, return the picked mode (or `null` on Esc).
45
+ */
46
+ function showSetupModal(reason) {
47
+ return new Promise((resolve) => {
48
+ let resolved = false;
49
+ const settle = (value) => {
50
+ if (resolved)
51
+ return;
52
+ resolved = true;
53
+ instance.unmount();
54
+ resolve(value);
55
+ };
56
+ const instance = render(_jsx(SetupModal, { reason: reason, onPick: (mode) => settle(mode), onCancel: () => settle(null) }), { exitOnCtrlC: true });
57
+ instance.waitUntilExit().then(() => settle(null));
58
+ });
59
+ }
25
60
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tui/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAC7C,MAAM,eAAe,GAAG,aAAa,CAAC;AAUtC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAA2B,EAAE;IAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAC1C,IAAI,YAAY;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,GAAS,EAAE;QAC1B,IAAI,YAAY;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,IAAC,SAAS,EAAE,OAAO,CAAC,SAAS,GAAI,EAAE;QACvE,WAAW,EAAE,IAAI;KACjB,CAAC,CAAC;IACH,IAAI,CAAC;QACJ,MAAM,aAAa,EAAE,CAAC;IACvB,CAAC;YAAS,CAAC;QACV,OAAO,EAAE,CAAC;IACX,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tui/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EACN,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAC7C,MAAM,eAAe,GAAG,aAAa,CAAC;AAUtC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAA2B,EAAE;IAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAC1C,IAAI,YAAY;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,GAAS,EAAE;QAC1B,IAAI,YAAY;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,IAAI,CAAC;QACJ,iEAAiE;QACjE,2DAA2D;QAC3D,+DAA+D;QAC/D,uDAAuD;QACvD,IAAI,CAAC;YACJ,MAAM,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,CAAC,GAAG,YAAY,kBAAkB,CAAC;gBAAE,MAAM,GAAG,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACrB,6DAA6D;gBAC7D,OAAO;YACR,CAAC;YACD,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAC/B,KAAC,GAAG,IAAC,SAAS,EAAE,OAAO,CAAC,SAAS,GAAI,EACrC,EAAE,WAAW,EAAE,IAAI,EAAE,CACrB,CAAC;QACF,MAAM,aAAa,EAAE,CAAC;IACvB,CAAC;YAAS,CAAC;QACV,OAAO,EAAE,CAAC;IACX,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CACtB,MAAc;IAEd,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,MAAM,GAAG,CAAC,KAA6C,EAAQ,EAAE;YACtE,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,CACtB,KAAC,UAAU,IACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAC9B,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAC3B,EACF,EAAE,WAAW,EAAE,IAAI,EAAE,CACrB,CAAC;QACF,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frehilm/ordna-cli",
3
- "version": "0.1.4",
3
+ "version": "0.2.0",
4
4
  "description": "The `ordna` CLI and Ink-based Kanban TUI for Ordna. Re-exports the core API.",
5
5
  "license": "MIT",
6
6
  "author": "FreHilm <1584617+FreHilm@users.noreply.github.com>",
@@ -40,8 +40,8 @@
40
40
  "ink": "^5.1.1",
41
41
  "ink-text-input": "^6.0.0",
42
42
  "react": "^18.3.1",
43
- "@frehilm/ordna-web": "^0.1.4",
44
- "@frehilm/ordna-core": "^0.1.4"
43
+ "@frehilm/ordna-core": "^0.2.0",
44
+ "@frehilm/ordna-web": "^0.2.0"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@types/node": "^22.10.5",
@@ -160,6 +160,31 @@ webPort: 7420 # default port for `ordna web`
160
160
  - `statuses` defines the columns 1:1, in order. The first status is the
161
161
  default for newly-created tasks unless `--status` is passed.
162
162
 
163
+ ### Storage mode (important for agents)
164
+
165
+ The config may set `storage:` to one of three values. **Check this before
166
+ assuming you can read or write `tasks/*.md`:**
167
+
168
+ - **`storage: file`** (default) — everything documented above applies. Tasks
169
+ are markdown files in `tasksDir`; you can `cat`, `grep`, and edit them
170
+ directly. This is what most projects use.
171
+ - **`storage: hybrid`** — tasks are still files in `tasksDir`, AND a git
172
+ ref (`refs/ordna/state`) holds a shared next-id allocator + audit log.
173
+ Read/write the files normally; ID allocation goes through the ref under
174
+ the hood (no agent action needed). You can still `cat` and `grep`.
175
+ - **`storage: namespace`** — tasks live as **git blobs** at
176
+ `refs/ordna/tasks/<id>`. **There are no task files on disk.** `cat
177
+ tasks/T-001.md` will fail. Use the CLI (`ordna show T-001`, `ordna
178
+ list`, `ordna create`, etc.) for everything — direct file access is
179
+ not possible.
180
+
181
+ When in doubt, run `ordna list` and inspect the output rather than
182
+ walking `tasks/` directly. If the user hasn't picked a mode yet, the
183
+ first CLI invocation auto-detects (existing tasks → file; existing refs
184
+ → the matching mode) or prompts them on the TUI / web. Agents typically
185
+ hit this through the CLI's non-interactive error message ("set
186
+ `ORDNA_STORAGE=file|hybrid|namespace`").
187
+
163
188
  ---
164
189
 
165
190
  ## 4. The `ordna` CLI