@miadi/chronicle-tui 0.5.0 → 0.7.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.
@@ -0,0 +1,77 @@
1
+ /**
2
+ * An episode's inquiries, and attaching one from the shelf (jgwill/Miadi#722,
3
+ * on the door of jgwill/Miadi#621).
4
+ *
5
+ * `GET /api/chronicle/episodes/{ref}/inquiry` answers what the episode holds
6
+ * (`woven`), whether this reader may attach (`capabilities.attach`) and, for a
7
+ * writer, the shelf: artefact folders, newest first, filtered with `?q=`. The
8
+ * `POST` of the same path relates, copies, registers and lands one artefact.
9
+ * The browser does what the room's Inquiries card does
10
+ * (`app/chronicle/components/EpisodeInquiries.tsx`): a dry run first, shown in
11
+ * the card's words, then the attach itself once the person confirms.
12
+ */
13
+ import { cleanLine } from "./text.js";
14
+ const inquiryPath = (episode, query = "") => `/api/chronicle/episodes/${encodeURIComponent(episode)}/inquiry${query ? `?q=${encodeURIComponent(query)}` : ""}`;
15
+ /** What the episode holds, and the shelf when the attach would pass. Asked as the attach would be sent. */
16
+ export async function readInquiries(api, episode, query = "") {
17
+ const view = await api.getAsWriter(inquiryPath(episode, query));
18
+ return {
19
+ episode: view.episode,
20
+ woven: (view.woven ?? []).map((w) => ({
21
+ artefact: cleanLine(w.artefact),
22
+ exists: w.artefact_exists !== false,
23
+ ...(w.issue ? { issue: cleanLine(w.issue) } : {}),
24
+ ...(w.issue_url ? { issueUrl: w.issue_url } : {}),
25
+ ...(w.freshness ? { freshness: cleanLine(w.freshness) } : {}),
26
+ })),
27
+ attach: view.capabilities?.attach === true,
28
+ ...(view.shelf
29
+ ? {
30
+ shelf: {
31
+ total: view.shelf.total ?? 0,
32
+ unavailable: view.shelf.unavailable === true,
33
+ items: (view.shelf.items ?? []).map((item) => ({
34
+ // The artefact is sent back as the shelf named it; only what is printed is cleaned.
35
+ artefact: item.artefact,
36
+ modified: cleanLine(item.modified ?? ""),
37
+ ...(item.issue ? { issue: cleanLine(item.issue) } : {}),
38
+ episodes: (item.episodes ?? []).filter((n) => Number.isInteger(n)),
39
+ wovenHere: item.woven_here === true,
40
+ })),
41
+ },
42
+ }
43
+ : {}),
44
+ };
45
+ }
46
+ /** `owner/repo#number`, as the card asks for a thread. */
47
+ export const THREAD = /^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+#\d+$/;
48
+ export function attachInquiry(api, episode, input) {
49
+ return api.post(inquiryPath(episode), { artefact: input.artefact, ...(input.issue ? { issue: input.issue } : {}), dryRun: input.dryRun }, { timeoutMs: 120_000 });
50
+ }
51
+ /** The dry run in the card's words, with what the copy holds and what the door noticed. */
52
+ export function previewLines(result, artefact) {
53
+ const name = cleanLine(artefact);
54
+ if (result.ok === false)
55
+ return [{ text: "The door would refuse this attach.", tone: "warn" }];
56
+ const lines = [
57
+ { text: `Attaching relates ${name} to this episode, copies it into the episode's inquiry folder, records it on the wheel and commits it.` },
58
+ ];
59
+ const manifest = result.inquiry?.synced?.manifest;
60
+ if (manifest?.file_count !== undefined) {
61
+ const kb = Math.max(1, Math.round((manifest.bytes_total ?? 0) / 1024));
62
+ lines.push({ text: `The copy: ${manifest.file_count} file${manifest.file_count === 1 ? "" : "s"}, ${kb} KB.`, tone: "meta" });
63
+ }
64
+ for (const note of result.inquiry?.related?.diagnostics ?? [])
65
+ lines.push({ text: cleanLine(note), tone: "meta" });
66
+ if (result.owedActions?.length)
67
+ lines.push({ text: `Still owed afterwards: ${result.owedActions.map(cleanLine).join("; ")}`, tone: "warn" });
68
+ if (result.drift?.length)
69
+ lines.push({ text: `Drift noticed: ${result.drift.map(cleanLine).join("; ")}`, tone: "warn" });
70
+ return lines;
71
+ }
72
+ /** The outcome in the card's words. */
73
+ export function attachedMessage(result, artefact) {
74
+ const owed = result.owedActions?.length ? ` Still owed: ${result.owedActions.map(cleanLine).join("; ")}.` : "";
75
+ return `${cleanLine(artefact)} is woven into this episode.${owed}`;
76
+ }
77
+ //# sourceMappingURL=inquiries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inquiries.js","sourceRoot":"","sources":["../src/inquiries.ts"],"names":[],"mappings":"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"}
package/dist/model.d.ts CHANGED
@@ -18,6 +18,16 @@ export interface EpisodeRow {
18
18
  readings: EpisodeReadings;
19
19
  /** Who the episode is for (`audience:` in episode.yaml): a visitor never sees a `community` one. */
20
20
  audience: "public" | "community";
21
+ /** The episodes this one continues from or relates to (`lineage:` in episode.yaml). */
22
+ lineage: LineageLink[];
23
+ }
24
+ export interface LineageLink {
25
+ kind: "continues from" | "relates to" | "branch of";
26
+ /** The other episode's folder when the manifest names it, else its number or slug. */
27
+ target: string;
28
+ number?: number;
29
+ /** Why, in the author's words. */
30
+ relation?: string;
21
31
  }
22
32
  export declare function toRow(entry: EpisodeManifestEntry, audience?: "public" | "community"): EpisodeRow;
23
33
  /** Newest first; folders without a number last, by name. */
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACzE,OAAO,EAAmC,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGhH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,8EAA8E;IAC9E,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,eAAe,CAAA;IACzB,oGAAoG;IACpG,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAA;CACjC;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,GAAE,QAAQ,GAAG,WAAsB,GAAG,UAAU,CAa1G;AAED,4DAA4D;AAC5D,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,CAOlE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAoBnF;AAED,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,EAAE,CAAA;CAAE,CAIhH;AASD;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CAS9E;AAED,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAI3D;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAMD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAA;AAExE,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,YAAY,CAAA;IACnB,oEAAoE;IACpE,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,IAAI,EAAE,aAAa,EAAE,CAAA;CACtB;AAID,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAEnD;AA4BD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,EAAE,CA0C5E;AAED,kFAAkF;AAClF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAmBjE;AAED,2DAA2D;AAC3D,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjE"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
package/dist/model.js CHANGED
@@ -6,6 +6,20 @@
6
6
  import stringWidth from "string-width";
7
7
  import { findTextReferences, readEpisode } from "@miadi/inquiry-weave";
8
8
  import { clean, cleanLine } from "./text.js";
9
+ const LINK_KIND = { "continues-from": "continues from", "related-to": "relates to", "branch-of": "branch of" };
10
+ function lineageOf(entry) {
11
+ return (entry.relations ?? []).map((relation) => {
12
+ const path = typeof relation.metadata?.path === "string" ? relation.metadata.path : undefined;
13
+ const words = typeof relation.metadata?.relation === "string" ? relation.metadata.relation : undefined;
14
+ const number = relation.target.kind === "episode-number" ? Number(relation.target.value) : undefined;
15
+ return {
16
+ kind: LINK_KIND[relation.kind] ?? "relates to",
17
+ target: cleanLine(path ?? relation.target.value),
18
+ ...(number !== undefined && Number.isInteger(number) ? { number } : {}),
19
+ ...(words ? { relation: cleanLine(words) } : {}),
20
+ };
21
+ });
22
+ }
9
23
  export function toRow(entry, audience = "public") {
10
24
  return {
11
25
  name: entry.name,
@@ -18,6 +32,7 @@ export function toRow(entry, audience = "public") {
18
32
  structured: Boolean(entry.structured),
19
33
  readings: readEpisode(entry),
20
34
  audience,
35
+ lineage: lineageOf(entry),
21
36
  };
22
37
  }
23
38
  /** Newest first; folders without a number last, by name. */
package/dist/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
package/dist/tide.d.ts ADDED
@@ -0,0 +1,79 @@
1
+ /**
2
+ * The tide cockpit from the terminal, starting with an episode's companion
3
+ * seat (jgwill/Miadi#714, in P4 of jgwill/Miadi#706).
4
+ *
5
+ * `POST /api/tide/companion` runs `tide companion open --format json`. Without
6
+ * `run` it answers the plan; with `run` it carries the plan out and answers the
7
+ * steps taken. The browser does what the cockpit's "Open Mia for this episode"
8
+ * does (`components/tide/companion-opener.tsx`): it always shows the plan
9
+ * first, and offers to run only the plan on screen, only when that plan would
10
+ * act, and only once the person confirms it. Archiving the existing session is
11
+ * the person's word, so it is a choice they make, and choosing it asks again.
12
+ *
13
+ * Opening a seat starts an agent with permissions bypassed in a tmux session,
14
+ * on the app's host. The browser never types into that pane: the command does,
15
+ * and it waits until the seat is idle.
16
+ */
17
+ import { type MiadiApi } from "./api.js";
18
+ export interface CompanionPlan {
19
+ state?: string;
20
+ session?: string;
21
+ launch?: string;
22
+ commands?: string[];
23
+ starter_prompt?: string;
24
+ archive_name?: string | null;
25
+ episode?: {
26
+ number?: number;
27
+ title?: string;
28
+ folder?: string;
29
+ };
30
+ seat?: {
31
+ key?: string;
32
+ };
33
+ agent?: {
34
+ state?: string;
35
+ status?: string;
36
+ } | null;
37
+ listener?: {
38
+ state?: string;
39
+ };
40
+ run?: {
41
+ steps?: Array<{
42
+ at: string;
43
+ step: string;
44
+ }>;
45
+ warnings?: string[];
46
+ };
47
+ }
48
+ export interface CompanionAnswer {
49
+ /** tide's exit: 0 done (or nothing to do), 3 done with warnings, 4 refused, 2 not in controller mode. */
50
+ exitCode?: number;
51
+ plan?: CompanionPlan | null;
52
+ message?: string;
53
+ error?: string;
54
+ /** The HTTP status, when it was not 200. */
55
+ status?: number;
56
+ }
57
+ /** The plans that do nothing, as the cockpit lists them: nothing is offered to run. */
58
+ export declare const NOTHING_TO_RUN: readonly string[];
59
+ /** A plan that would act: a state that is not a refusal or a no-op, and commands to carry out. */
60
+ export declare function planActs(answer: CompanionAnswer | undefined): boolean;
61
+ /** The plan for an episode's companion seat. Acts on nothing. */
62
+ export declare function companionPlan(api: MiadiApi, episode: string, options?: {
63
+ archive?: boolean;
64
+ seat?: string;
65
+ }): Promise<CompanionAnswer>;
66
+ /** Carry the plan out. Opening a seat waits for its prompt and its listener: up to seven minutes. */
67
+ export declare function runCompanion(api: MiadiApi, episode: string, options?: {
68
+ archive?: boolean;
69
+ seat?: string;
70
+ }): Promise<CompanionAnswer>;
71
+ export interface PlanLine {
72
+ text: string;
73
+ tone?: "state" | "meta" | "warn" | "error" | "step";
74
+ }
75
+ /** What the person reads before deciding: the session, the state, what would be done, or what was done. */
76
+ export declare function companionLines(answer: CompanionAnswer): PlanLine[];
77
+ /** One line for the status bar once the plan ran. */
78
+ export declare function ranMessage(answer: CompanionAnswer): string;
79
+ //# sourceMappingURL=tide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tide.d.ts","sourceRoot":"","sources":["../src/tide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAA;AAGlD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9D,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACvB,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAClD,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7B,GAAG,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAC3E;AAED,MAAM,WAAW,eAAe;IAC9B,yGAAyG;IACzG,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,uFAAuF;AACvF,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAK3C,CAAA;AAED,kGAAkG;AAClG,wBAAgB,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,OAAO,CAKrE;AAYD,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAE1I;AAED,qGAAqG;AACrG,wBAAgB,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAEzI;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;CACpD;AAED,2GAA2G;AAC3G,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,QAAQ,EAAE,CAuBlE;AAED,qDAAqD;AACrD,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAO1D"}
package/dist/tide.js ADDED
@@ -0,0 +1,102 @@
1
+ /**
2
+ * The tide cockpit from the terminal, starting with an episode's companion
3
+ * seat (jgwill/Miadi#714, in P4 of jgwill/Miadi#706).
4
+ *
5
+ * `POST /api/tide/companion` runs `tide companion open --format json`. Without
6
+ * `run` it answers the plan; with `run` it carries the plan out and answers the
7
+ * steps taken. The browser does what the cockpit's "Open Mia for this episode"
8
+ * does (`components/tide/companion-opener.tsx`): it always shows the plan
9
+ * first, and offers to run only the plan on screen, only when that plan would
10
+ * act, and only once the person confirms it. Archiving the existing session is
11
+ * the person's word, so it is a choice they make, and choosing it asks again.
12
+ *
13
+ * Opening a seat starts an agent with permissions bypassed in a tmux session,
14
+ * on the app's host. The browser never types into that pane: the command does,
15
+ * and it waits until the seat is idle.
16
+ */
17
+ import { ApiError } from "./api.js";
18
+ import { clean, cleanLine } from "./text.js";
19
+ /** The plans that do nothing, as the cockpit lists them: nothing is offered to run. */
20
+ export const NOTHING_TO_RUN = [
21
+ "re-arm: already listening",
22
+ "re-arm: another seat listens on this episode",
23
+ "re-arm: pane runs something else",
24
+ "archive refused: the seat still listens",
25
+ ];
26
+ /** A plan that would act: a state that is not a refusal or a no-op, and commands to carry out. */
27
+ export function planActs(answer) {
28
+ const state = answer?.plan?.state;
29
+ if (!state || answer?.plan?.run)
30
+ return false;
31
+ if (NOTHING_TO_RUN.includes(state) || state.startsWith("archive refused"))
32
+ return false;
33
+ return (answer.plan?.commands?.length ?? 0) > 0;
34
+ }
35
+ async function companion(api, body, timeoutMs) {
36
+ try {
37
+ return await api.post("/api/tide/companion", body, { timeoutMs });
38
+ }
39
+ catch (error) {
40
+ // A refusal (409), tide's controller gate (423) and a bad episode (400) still answer in JSON.
41
+ if (error instanceof ApiError && error.body && typeof error.body === "object")
42
+ return { ...error.body, status: error.status };
43
+ throw error;
44
+ }
45
+ }
46
+ /** The plan for an episode's companion seat. Acts on nothing. */
47
+ export function companionPlan(api, episode, options = {}) {
48
+ return companion(api, { episode, archive: options.archive === true, ...(options.seat ? { seat: options.seat } : {}) }, 60_000);
49
+ }
50
+ /** Carry the plan out. Opening a seat waits for its prompt and its listener: up to seven minutes. */
51
+ export function runCompanion(api, episode, options = {}) {
52
+ return companion(api, { episode, archive: options.archive === true, run: true, ...(options.seat ? { seat: options.seat } : {}) }, 450_000);
53
+ }
54
+ /** What the person reads before deciding: the session, the state, what would be done, or what was done. */
55
+ export function companionLines(answer) {
56
+ const lines = [];
57
+ if (answer.error)
58
+ lines.push({ text: cleanLine(answer.error), tone: "error" });
59
+ if (answer.message)
60
+ lines.push({ text: cleanLine(answer.message), tone: "error" });
61
+ const plan = answer.plan;
62
+ if (!plan)
63
+ return lines;
64
+ if (plan.session)
65
+ lines.push({ text: `session: ${cleanLine(plan.session)}` });
66
+ if (plan.state) {
67
+ const listener = plan.listener?.state ? ` · listener: ${cleanLine(plan.listener.state)}` : "";
68
+ // A listening seat reports its agent as `shell`, not idle (#714, F1).
69
+ const agent = plan.agent?.status ? ` · agent: ${cleanLine(plan.agent.status)}` : "";
70
+ lines.push({ text: `state: ${cleanLine(plan.state)}${listener}${agent}`, tone: "state" });
71
+ }
72
+ if (plan.archive_name)
73
+ lines.push({ text: `archives the running session as ${cleanLine(plan.archive_name)}`, tone: "warn" });
74
+ if (plan.run) {
75
+ for (const step of plan.run.steps ?? [])
76
+ lines.push({ text: `${cleanLine(step.at).slice(11, 19)} ${cleanLine(step.step)}`, tone: "step" });
77
+ for (const warning of plan.run.warnings ?? [])
78
+ lines.push({ text: `warning: ${cleanLine(warning)}`, tone: "warn" });
79
+ if (plan.session)
80
+ lines.push({ text: `tmux attach -t ${cleanLine(plan.session)}`, tone: "meta" });
81
+ return lines;
82
+ }
83
+ ;
84
+ (plan.commands ?? []).forEach((command, index) => lines.push({ text: `${index + 1}. ${cleanLine(command)}` }));
85
+ if (planActs(answer) && plan.starter_prompt)
86
+ lines.push({ text: `starter prompt: ${clean(plan.starter_prompt).replace(/\s+/g, " ").trim()}`, tone: "meta" });
87
+ return lines;
88
+ }
89
+ /** One line for the status bar once the plan ran. */
90
+ export function ranMessage(answer) {
91
+ const session = answer.plan?.session ? cleanLine(answer.plan.session) : "the seat";
92
+ if (answer.exitCode === 0)
93
+ return `Opened ${session}: tmux attach -t ${session}`;
94
+ if (answer.exitCode === 3)
95
+ return `Opened ${session}, with warnings.`;
96
+ if (answer.exitCode === 4)
97
+ return `tide refused: ${cleanLine(answer.plan?.state ?? answer.message ?? "see the plan")}`;
98
+ if (answer.exitCode === 2)
99
+ return "tide is not in controller mode on the app's host.";
100
+ return cleanLine(answer.error ?? answer.message ?? `tide answered ${answer.exitCode ?? answer.status ?? "nothing"}`);
101
+ }
102
+ //# sourceMappingURL=tide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tide.js","sourceRoot":"","sources":["../src/tide.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@miadi/chronicle-tui",
3
- "version": "0.5.0",
4
- "description": "Browse the Miadi Chronicle from a terminal and take part in its talking circles: list and filter every episode, search their text, read a vessel's files with their references as chips, open the room, the wheel or the vessel as clickable links or a QR code, answer attention, and speak, witness, keep the diary and close a ceremony as yourself. Every operation is an action in one registry, so writes join the same list later.",
3
+ "version": "0.7.0",
4
+ "description": "Browse the Miadi Chronicle from a terminal and take part in its talking circles: list and filter every episode, search their text, read a vessel's files with their references as chips, open the room, the wheel or the vessel as clickable links or a QR code, answer attention, relate episodes, attach inquiries, open an episode's companion seat, and speak, witness, keep the diary and close a ceremony as yourself. Every operation is an action in one registry, so writes join the same list later.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
7
7
  "access": "public"