@tangle-network/braid 0.1.0 → 0.1.1

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 (174) hide show
  1. package/README.md +10 -0
  2. package/THIRD_PARTY_LICENSES.json +16 -0
  3. package/THIRD_PARTY_NOTICES.md +4 -1
  4. package/dist/adapters/analysis/managed-analysis-runtime.d.ts +19 -0
  5. package/dist/adapters/analysis/managed-analysis-runtime.d.ts.map +1 -0
  6. package/dist/adapters/analysis/managed-analysis-runtime.js +72 -0
  7. package/dist/adapters/analysis/managed-analysis-runtime.js.map +1 -0
  8. package/dist/adapters/analysis/production-analysis-analyst.d.ts +1 -1
  9. package/dist/adapters/analysis/production-analysis-analyst.d.ts.map +1 -1
  10. package/dist/adapters/analysis/production-analysis-analyst.js +12 -2
  11. package/dist/adapters/analysis/production-analysis-analyst.js.map +1 -1
  12. package/dist/adapters/analysis/python-runner.d.ts +3 -1
  13. package/dist/adapters/analysis/python-runner.d.ts.map +1 -1
  14. package/dist/adapters/analysis/python-runner.js +99 -1
  15. package/dist/adapters/analysis/python-runner.js.map +1 -1
  16. package/dist/adapters/analysis/trace-analysis-adapter.d.ts +2 -0
  17. package/dist/adapters/analysis/trace-analysis-adapter.d.ts.map +1 -1
  18. package/dist/adapters/analysis/trace-analysis-adapter.js +6 -0
  19. package/dist/adapters/analysis/trace-analysis-adapter.js.map +1 -1
  20. package/dist/adapters/credentials/headless-key.js +3 -2
  21. package/dist/adapters/credentials/headless-key.js.map +1 -1
  22. package/dist/adapters/persistence/posix-at.d.ts +8 -0
  23. package/dist/adapters/persistence/posix-at.d.ts.map +1 -0
  24. package/dist/adapters/persistence/posix-at.js +96 -0
  25. package/dist/adapters/persistence/posix-at.js.map +1 -0
  26. package/dist/adapters/persistence/safe-file-descriptor.d.ts +1 -1
  27. package/dist/adapters/persistence/safe-file-descriptor.d.ts.map +1 -1
  28. package/dist/adapters/persistence/safe-file-descriptor.js +29 -18
  29. package/dist/adapters/persistence/safe-file-descriptor.js.map +1 -1
  30. package/dist/adapters/persistence/safe-file-io.d.ts.map +1 -1
  31. package/dist/adapters/persistence/safe-file-io.js +9 -9
  32. package/dist/adapters/persistence/safe-file-io.js.map +1 -1
  33. package/dist/adapters/persistence/safe-file.d.ts +1 -1
  34. package/dist/adapters/persistence/safe-file.d.ts.map +1 -1
  35. package/dist/adapters/persistence/safe-file.js +4 -4
  36. package/dist/adapters/persistence/safe-file.js.map +1 -1
  37. package/dist/adapters/storage/sqlite-bound-open.d.ts +4 -4
  38. package/dist/adapters/storage/sqlite-bound-open.d.ts.map +1 -1
  39. package/dist/adapters/storage/sqlite-bound-open.js +49 -19
  40. package/dist/adapters/storage/sqlite-bound-open.js.map +1 -1
  41. package/dist/app/analysis-comparison-request.d.ts +1 -1
  42. package/dist/app/analysis-comparison-request.d.ts.map +1 -1
  43. package/dist/app/analysis-comparison-request.js +9 -5
  44. package/dist/app/analysis-comparison-request.js.map +1 -1
  45. package/dist/app/analysis-comparison.js +2 -2
  46. package/dist/app/analysis-comparison.js.map +1 -1
  47. package/dist/app/analysis-promotion.d.ts.map +1 -1
  48. package/dist/app/analysis-promotion.js +4 -5
  49. package/dist/app/analysis-promotion.js.map +1 -1
  50. package/dist/app/analysis-request.d.ts +1 -1
  51. package/dist/app/analysis-request.d.ts.map +1 -1
  52. package/dist/app/analysis-request.js +3 -7
  53. package/dist/app/analysis-request.js.map +1 -1
  54. package/dist/app/analysis-service.js +1 -1
  55. package/dist/app/analysis-service.js.map +1 -1
  56. package/dist/app/analysis-source.d.ts +4 -1
  57. package/dist/app/analysis-source.d.ts.map +1 -1
  58. package/dist/app/analysis-source.js +18 -0
  59. package/dist/app/analysis-source.js.map +1 -1
  60. package/dist/app/analysis-types.d.ts +1 -0
  61. package/dist/app/analysis-types.d.ts.map +1 -1
  62. package/dist/app/analysis-types.js.map +1 -1
  63. package/dist/app/application-support.d.ts +4 -0
  64. package/dist/app/application-support.d.ts.map +1 -1
  65. package/dist/app/application-support.js.map +1 -1
  66. package/dist/app/application.d.ts.map +1 -1
  67. package/dist/app/application.js +28 -7
  68. package/dist/app/application.js.map +1 -1
  69. package/dist/app/journal.d.ts +4 -0
  70. package/dist/app/journal.d.ts.map +1 -1
  71. package/dist/app/journal.js +6 -0
  72. package/dist/app/journal.js.map +1 -1
  73. package/dist/app/storage-journal.d.ts +4 -1
  74. package/dist/app/storage-journal.d.ts.map +1 -1
  75. package/dist/app/storage-journal.js +5 -0
  76. package/dist/app/storage-journal.js.map +1 -1
  77. package/dist/bin/plain.js +1 -1
  78. package/dist/bin/plain.js.map +1 -1
  79. package/dist/domain/ids-core.d.ts +1 -1
  80. package/dist/domain/ids-core.d.ts.map +1 -1
  81. package/dist/domain/ids-core.js +5 -2
  82. package/dist/domain/ids-core.js.map +1 -1
  83. package/dist/ports/effect-storage.d.ts +5 -0
  84. package/dist/ports/effect-storage.d.ts.map +1 -1
  85. package/dist/startup/durable-runtime.js +2 -344
  86. package/dist/startup/durable-runtime.js.map +1 -6
  87. package/dist/startup/preview-runtime.js +170 -6
  88. package/dist/startup/preview-runtime.js.map +1 -6
  89. package/dist/startup/terminal-runtime.js +5 -13
  90. package/dist/startup/terminal-runtime.js.map +1 -6
  91. package/dist/version.d.ts +1 -1
  92. package/dist/version.d.ts.map +1 -1
  93. package/dist/version.js +21 -1
  94. package/dist/version.js.map +1 -1
  95. package/dist/views/shared/semantic-details.d.ts.map +1 -1
  96. package/dist/views/shared/semantic-details.js +5 -0
  97. package/dist/views/shared/semantic-details.js.map +1 -1
  98. package/package.json +8 -3
  99. package/dist/startup/chunks/analysis-comparison-facts-BYZX2KTR.js +0 -2
  100. package/dist/startup/chunks/analysis-comparison-facts-BYZX2KTR.js.map +0 -6
  101. package/dist/startup/chunks/analysis-comparison-record-VMUVZPUV.js +0 -2
  102. package/dist/startup/chunks/analysis-comparison-record-VMUVZPUV.js.map +0 -6
  103. package/dist/startup/chunks/chunk-2B6P3EZQ.js +0 -2
  104. package/dist/startup/chunks/chunk-2B6P3EZQ.js.map +0 -6
  105. package/dist/startup/chunks/chunk-3SLVNOQZ.js +0 -2
  106. package/dist/startup/chunks/chunk-3SLVNOQZ.js.map +0 -6
  107. package/dist/startup/chunks/chunk-5ZIGORCF.js +0 -6
  108. package/dist/startup/chunks/chunk-5ZIGORCF.js.map +0 -6
  109. package/dist/startup/chunks/chunk-6G7QKB6J.js +0 -2
  110. package/dist/startup/chunks/chunk-6G7QKB6J.js.map +0 -6
  111. package/dist/startup/chunks/chunk-AUAERYTD.js +0 -2
  112. package/dist/startup/chunks/chunk-AUAERYTD.js.map +0 -6
  113. package/dist/startup/chunks/chunk-BCT2WD5R.js +0 -2
  114. package/dist/startup/chunks/chunk-BCT2WD5R.js.map +0 -6
  115. package/dist/startup/chunks/chunk-ECYRVU25.js +0 -2
  116. package/dist/startup/chunks/chunk-ECYRVU25.js.map +0 -6
  117. package/dist/startup/chunks/chunk-EQDIVTWX.js +0 -2
  118. package/dist/startup/chunks/chunk-EQDIVTWX.js.map +0 -6
  119. package/dist/startup/chunks/chunk-FRHYXPNB.js +0 -2
  120. package/dist/startup/chunks/chunk-FRHYXPNB.js.map +0 -6
  121. package/dist/startup/chunks/chunk-GZKMBTCI.js +0 -3
  122. package/dist/startup/chunks/chunk-GZKMBTCI.js.map +0 -6
  123. package/dist/startup/chunks/chunk-GZLREBOD.js +0 -2
  124. package/dist/startup/chunks/chunk-GZLREBOD.js.map +0 -6
  125. package/dist/startup/chunks/chunk-HFZ5Q3X5.js +0 -2
  126. package/dist/startup/chunks/chunk-HFZ5Q3X5.js.map +0 -6
  127. package/dist/startup/chunks/chunk-ICFZ5GZR.js +0 -2
  128. package/dist/startup/chunks/chunk-ICFZ5GZR.js.map +0 -6
  129. package/dist/startup/chunks/chunk-JR4A5QXZ.js +0 -2
  130. package/dist/startup/chunks/chunk-JR4A5QXZ.js.map +0 -6
  131. package/dist/startup/chunks/chunk-LUXHNCKY.js +0 -2
  132. package/dist/startup/chunks/chunk-LUXHNCKY.js.map +0 -6
  133. package/dist/startup/chunks/chunk-NDSFD5HI.js +0 -2
  134. package/dist/startup/chunks/chunk-NDSFD5HI.js.map +0 -6
  135. package/dist/startup/chunks/chunk-NWDQFVYZ.js +0 -6
  136. package/dist/startup/chunks/chunk-NWDQFVYZ.js.map +0 -6
  137. package/dist/startup/chunks/chunk-PAPTIOCL.js +0 -2
  138. package/dist/startup/chunks/chunk-PAPTIOCL.js.map +0 -6
  139. package/dist/startup/chunks/chunk-PIJUYQ3B.js +0 -2
  140. package/dist/startup/chunks/chunk-PIJUYQ3B.js.map +0 -6
  141. package/dist/startup/chunks/chunk-PXRVFPRL.js +0 -2
  142. package/dist/startup/chunks/chunk-PXRVFPRL.js.map +0 -6
  143. package/dist/startup/chunks/chunk-RELMHYIG.js +0 -3
  144. package/dist/startup/chunks/chunk-RELMHYIG.js.map +0 -6
  145. package/dist/startup/chunks/chunk-RJAXEI5Z.js +0 -2
  146. package/dist/startup/chunks/chunk-RJAXEI5Z.js.map +0 -6
  147. package/dist/startup/chunks/chunk-RPJ2AWHI.js +0 -2
  148. package/dist/startup/chunks/chunk-RPJ2AWHI.js.map +0 -6
  149. package/dist/startup/chunks/chunk-TW2LBTSL.js +0 -2
  150. package/dist/startup/chunks/chunk-TW2LBTSL.js.map +0 -6
  151. package/dist/startup/chunks/chunk-TYNDYSMP.js +0 -2
  152. package/dist/startup/chunks/chunk-TYNDYSMP.js.map +0 -6
  153. package/dist/startup/chunks/chunk-TZNTMUGF.js +0 -117
  154. package/dist/startup/chunks/chunk-TZNTMUGF.js.map +0 -6
  155. package/dist/startup/chunks/chunk-UT4NB43O.js +0 -2
  156. package/dist/startup/chunks/chunk-UT4NB43O.js.map +0 -6
  157. package/dist/startup/chunks/chunk-VTNLVERY.js +0 -2
  158. package/dist/startup/chunks/chunk-VTNLVERY.js.map +0 -6
  159. package/dist/startup/chunks/configuration-wizard-G5VQFNBR.js +0 -3
  160. package/dist/startup/chunks/configuration-wizard-G5VQFNBR.js.map +0 -6
  161. package/dist/startup/chunks/production-connection-providers-3BNIYUIS.js +0 -2
  162. package/dist/startup/chunks/production-connection-providers-3BNIYUIS.js.map +0 -6
  163. package/dist/startup/chunks/production-connections-27KWJIR6.js +0 -2
  164. package/dist/startup/chunks/production-connections-27KWJIR6.js.map +0 -6
  165. package/dist/startup/chunks/profile-connection-dispatch-HFTWSEIR.js +0 -2
  166. package/dist/startup/chunks/profile-connection-dispatch-HFTWSEIR.js.map +0 -6
  167. package/dist/startup/chunks/supervisor-control-VPVKE7NI.js +0 -2
  168. package/dist/startup/chunks/supervisor-control-VPVKE7NI.js.map +0 -6
  169. package/dist/startup/chunks/supervisor-watch-X6TXO6GN.js +0 -2
  170. package/dist/startup/chunks/supervisor-watch-X6TXO6GN.js.map +0 -6
  171. package/dist/startup/chunks/trace-store-ZIU4S2VR.js +0 -6
  172. package/dist/startup/chunks/trace-store-ZIU4S2VR.js.map +0 -6
  173. package/dist/startup/chunks/ui-dispatch-NV3XTZDR.js +0 -3
  174. package/dist/startup/chunks/ui-dispatch-NV3XTZDR.js.map +0 -6
@@ -1,6 +1,170 @@
1
- import{b as g,c as x,g as I,l as w,n as M}from"./chunks/chunk-5ZIGORCF.js";import{d as m,h as v,j as E,k as b}from"./chunks/chunk-TZNTMUGF.js";import{b as C}from"./chunks/chunk-NWDQFVYZ.js";import"./chunks/chunk-GZKMBTCI.js";import"./chunks/chunk-HFZ5Q3X5.js";import"./chunks/chunk-2B6P3EZQ.js";var A="\x1B[?1049h",O="\x1B[?1049l",h=class extends m{#r=!1;#e=!1;start(e,o){this.#r&&!this.#e||(this.#r=!0,this.#e=!1,super.start(e,o),this.write(A),this.clearScreen())}stop(){this.#e||(this.#e=!0,this.write(O),super.stop())}};var T={SIGHUP:129,SIGINT:130,SIGTERM:143};function P(r){let e=r,o,s=!1,l=Object.fromEntries(Object.entries(T).map(([n,a])=>[n,()=>{o===void 0&&(o=a,e(a))}]));for(let n of Object.keys(T))process.on(n,l[n]);let t=()=>{if(!s){s=!0;for(let n of Object.keys(T))process.off(n,l[n])}};return Object.freeze({takeOver:n=>(e=n,o!==void 0&&n(o),t),dispose:t})}var _=4,R=8e3,k=1024*1024,S=class{#r;#e;#n;#a;#s;#t=[];#o=0;#i=!1;focused=!1;constructor(e,o,s,l){let t=e.connections.find(i=>i.id===e.selectedConnectionId),a=e.runs.filter(i=>i.branchId===e.branchId).sort((i,y)=>y.updatedAt.localeCompare(i.updatedAt))[0]?.status??"ready",d=e.profile.harness??"auto",c=e.profile.model?.default??"profile default",u=t?.name??"no connection",f=e.conversations?.find(i=>i.id===e.conversationId);this.#r={workspace:e.workspace??o,conversationTitle:f?.title??"New conversation",branch:e.branchId,profileName:e.profile.name??"AgentProfile",runner:d,model:c,connection:u,...e.profile.model?.reasoningEffort===void 0?{}:{effort:e.profile.model.reasoningEffort},...e.profile.model?.maxOutputTokens===void 0?{}:{maxOutputTokens:e.profile.model.maxOutputTokens}},this.#n=l,this.#a=s,this.#s=a==="ready"?"ready for a message":a;let p=e.messages.filter(i=>i.branchId===e.branchId&&i.status!=="redacted").slice(-_).map(i=>`${i.role==="user"?"you":"braid"}
2
- ${N(i.text)}`).join(`
3
-
4
- `);this.#e=new b(p||`Send a task to ${e.profile.name??"this AgentProfile"}, or press Ctrl+P for commands.`,1,1)}handleInput(e){if(this.#i)return;let o=Buffer.byteLength(e,"utf8");if(this.#o+o>k){this.#t.length=0,this.#o=0,this.#i=!0;return}this.#t.push(e),this.#o+=o}drainInput(){let e=this.#i?[]:[...this.#t];return this.#t.length=0,this.#o=0,Object.freeze(e)}invalidate(){this.#e.invalidate()}render(e){let o=Math.max(1,Math.floor(this.#a())),s=I(this.#n,this.#r,e),l=w([this.#n.success(this.#s)],[this.#n.text("Ctrl+P commands")],e),t=[g(e,"\u203A send",this.#n),`${this.#n.accent("\u203A")}${v}`,"","",g(e,"alt+enter newline \xB7 paste",this.#n)],n=Math.max(0,o-s.length-t.length-1),a=n===0?[]:this.#e.render(e).slice(-n),d=[...a,...Array.from({length:Math.max(0,n-a.length)},()=>"")];return[...s,...d,...t,l].slice(-o)}};function N(r){let e=C(r);return e.length<=R?e:`\u2026
5
- ${Array.from(e).slice(-R).join("")}`}function Y(r){let e=r.terminal??(r.inline?new m:new h),o=x(e,r.suppressMetadata===!0),s=!1,l=()=>{s||(s=!0,o())},t=new E(e),n=new S(r.state,r.workspace,()=>e.rows,M({...r.colors===void 0?{}:{colors:r.colors},...r.highContrast===void 0?{}:{highContrast:r.highContrast},...r.reducedMotion===void 0?{}:{reducedMotion:r.reducedMotion}})),a=!1,d=!1,c,u,f=()=>{a||(a=!0,t.setFocus(null),t.removeChild(n))},p=()=>{f(),d||t.stop(),l()},i=P(p);return t.addChild(n),t.setFocus(n),t.start(),t.renderNow(!0),{tui:t,...r.suppressMetadata===!0?{outputPolicyCleanup:l}:{},adopt:()=>(c!==void 0||(f(),d=!0,c=Object.freeze({tui:t,input:n.drainInput()})),c),takeSignalOwnership:y=>(u??=i.takeOver(y),u),close:()=>{p(),u===void 0&&i.dispose()}}}export{m as ProcessTerminal,E as TuiMainScreen,Y as createStartupPreview};
6
- //# sourceMappingURL=preview-runtime.js.map
1
+ import { ProcessTerminal } from '@earendil-works/pi-tui/dist/terminal.js';
2
+ import { CURSOR_MARKER } from '@earendil-works/pi-tui/dist/tui.js';
3
+ import { TuiMainScreen } from '@earendil-works/pi-tui/dist/tui-main-screen.js';
4
+ import { Text } from '@earendil-works/pi-tui/dist/components/text.js';
5
+ import { AlternateScreenTerminal } from '../adapters/tui/alternate-screen-terminal.js';
6
+ import { boundVisibleText } from '../views/shared/sanitize.js';
7
+ import { composerBorderLine } from '../views/tui/composer-view.js';
8
+ import { installTerminalOutputPolicy } from '../views/tui/terminal-compatibility.js';
9
+ import { fitTerminalColumns, renderTerminalIdentity } from '../views/tui/terminal-identity.js';
10
+ import { createBraidTheme } from '../views/tui/theme.js';
11
+ import { createTerminalSignalLatch } from './terminal-signal-latch.js';
12
+ const MAX_PREVIEW_MESSAGES = 4;
13
+ const MAX_PREVIEW_MESSAGE_CHARS = 8_000;
14
+ const MAX_STARTUP_INPUT_BYTES = 1024 * 1024;
15
+ class StartupFrame {
16
+ #identity;
17
+ #transcript;
18
+ #theme;
19
+ #rows;
20
+ #status;
21
+ #input = [];
22
+ #inputBytes = 0;
23
+ #inputOverflowed = false;
24
+ focused = false;
25
+ constructor(state, workspace, rows, theme) {
26
+ const connection = state.connections.find((candidate) => candidate.id === state.selectedConnectionId);
27
+ const branchRuns = state.runs
28
+ .filter((run) => run.branchId === state.branchId)
29
+ .sort((left, right) => right.updatedAt.localeCompare(left.updatedAt));
30
+ const status = branchRuns[0]?.status ?? 'ready';
31
+ const runner = state.profile.harness ?? 'auto';
32
+ const model = state.profile.model?.default ?? 'profile default';
33
+ const connectionName = connection?.name ?? 'no connection';
34
+ const conversation = state.conversations?.find((candidate) => candidate.id === state.conversationId);
35
+ this.#identity = {
36
+ workspace: state.workspace ?? workspace,
37
+ conversationTitle: conversation?.title ?? 'New conversation',
38
+ branch: state.branchId,
39
+ profileName: state.profile.name ?? 'AgentProfile',
40
+ runner,
41
+ model,
42
+ connection: connectionName,
43
+ ...(state.profile.model?.reasoningEffort === undefined
44
+ ? {}
45
+ : { effort: state.profile.model.reasoningEffort }),
46
+ ...(state.profile.model?.maxOutputTokens === undefined
47
+ ? {}
48
+ : { maxOutputTokens: state.profile.model.maxOutputTokens }),
49
+ };
50
+ this.#theme = theme;
51
+ this.#rows = rows;
52
+ this.#status = status === 'ready' ? 'ready for a message' : status;
53
+ const messages = state.messages
54
+ .filter((message) => message.branchId === state.branchId && message.status !== 'redacted')
55
+ .slice(-MAX_PREVIEW_MESSAGES)
56
+ .map((message) => `${message.role === 'user' ? 'you' : 'braid'}\n${previewText(message.text)}`)
57
+ .join('\n\n');
58
+ this.#transcript = new Text(messages ||
59
+ `Send a task to ${state.profile.name ?? 'this AgentProfile'}, or press Ctrl+P for commands.`, 1, 1);
60
+ }
61
+ handleInput(data) {
62
+ if (this.#inputOverflowed)
63
+ return;
64
+ const bytes = Buffer.byteLength(data, 'utf8');
65
+ if (this.#inputBytes + bytes > MAX_STARTUP_INPUT_BYTES) {
66
+ this.#input.length = 0;
67
+ this.#inputBytes = 0;
68
+ this.#inputOverflowed = true;
69
+ return;
70
+ }
71
+ this.#input.push(data);
72
+ this.#inputBytes += bytes;
73
+ }
74
+ drainInput() {
75
+ const input = this.#inputOverflowed ? [] : [...this.#input];
76
+ this.#input.length = 0;
77
+ this.#inputBytes = 0;
78
+ return Object.freeze(input);
79
+ }
80
+ invalidate() {
81
+ this.#transcript.invalidate();
82
+ }
83
+ render(width) {
84
+ const rows = Math.max(1, Math.floor(this.#rows()));
85
+ const top = renderTerminalIdentity(this.#theme, this.#identity, width);
86
+ const footer = fitTerminalColumns([this.#theme.success(this.#status)], [this.#theme.text('Ctrl+P commands')], width);
87
+ const composer = [
88
+ composerBorderLine(width, '› send', this.#theme),
89
+ `${this.#theme.accent('›')}${CURSOR_MARKER}`,
90
+ '',
91
+ '',
92
+ composerBorderLine(width, 'alt+enter newline · paste', this.#theme),
93
+ ];
94
+ const contentRows = Math.max(0, rows - top.length - composer.length - 1);
95
+ const transcript = contentRows === 0 ? [] : this.#transcript.render(width).slice(-contentRows);
96
+ const content = [
97
+ ...transcript,
98
+ ...Array.from({ length: Math.max(0, contentRows - transcript.length) }, () => ''),
99
+ ];
100
+ return [...top, ...content, ...composer, footer].slice(-rows);
101
+ }
102
+ }
103
+ function previewText(input) {
104
+ const safe = boundVisibleText(input);
105
+ if (safe.length <= MAX_PREVIEW_MESSAGE_CHARS)
106
+ return safe;
107
+ return `…\n${Array.from(safe).slice(-MAX_PREVIEW_MESSAGE_CHARS).join('')}`;
108
+ }
109
+ export function createStartupPreview(input) {
110
+ const terminal = input.terminal ?? (input.inline ? new ProcessTerminal() : new AlternateScreenTerminal());
111
+ const restoreOutputPolicy = installTerminalOutputPolicy(terminal, input.suppressMetadata === true);
112
+ let outputPolicyRestored = false;
113
+ const outputPolicyCleanup = () => {
114
+ if (outputPolicyRestored)
115
+ return;
116
+ outputPolicyRestored = true;
117
+ restoreOutputPolicy();
118
+ };
119
+ const tui = new TuiMainScreen(terminal);
120
+ const frame = new StartupFrame(input.state, input.workspace, () => terminal.rows, createBraidTheme({
121
+ ...(input.colors === undefined ? {} : { colors: input.colors }),
122
+ ...(input.highContrast === undefined ? {} : { highContrast: input.highContrast }),
123
+ ...(input.reducedMotion === undefined ? {} : { reducedMotion: input.reducedMotion }),
124
+ }));
125
+ let removed = false;
126
+ let adopted = false;
127
+ let handoff;
128
+ let signalCleanup;
129
+ const remove = () => {
130
+ if (removed)
131
+ return;
132
+ removed = true;
133
+ tui.setFocus(null);
134
+ tui.removeChild(frame);
135
+ };
136
+ const stopPreview = () => {
137
+ remove();
138
+ if (!adopted)
139
+ tui.stop();
140
+ outputPolicyCleanup();
141
+ };
142
+ const signals = createTerminalSignalLatch(stopPreview);
143
+ tui.addChild(frame);
144
+ tui.setFocus(frame);
145
+ tui.start();
146
+ tui.renderNow(true);
147
+ return {
148
+ tui,
149
+ ...(input.suppressMetadata === true ? { outputPolicyCleanup } : {}),
150
+ adopt: () => {
151
+ if (handoff !== undefined)
152
+ return handoff;
153
+ remove();
154
+ adopted = true;
155
+ handoff = Object.freeze({ tui, input: frame.drainInput() });
156
+ return handoff;
157
+ },
158
+ takeSignalOwnership: (handler) => {
159
+ signalCleanup ??= signals.takeOver(handler);
160
+ return signalCleanup;
161
+ },
162
+ close: () => {
163
+ stopPreview();
164
+ if (signalCleanup === undefined)
165
+ signals.dispose();
166
+ },
167
+ };
168
+ }
169
+ export { ProcessTerminal, TuiMainScreen };
170
+ //# sourceMappingURL=preview-runtime.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/adapters/tui/alternate-screen-terminal.ts", "../../src/startup/terminal-signal-latch.ts", "../../src/startup/preview-runtime.ts"],
4
- "mappings": "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",
5
- "names": ["ENTER_ALTERNATE_SCREEN", "LEAVE_ALTERNATE_SCREEN", "AlternateScreenTerminal", "ProcessTerminal", "#started", "#stopped", "onInput", "onResize", "TERMINAL_EXIT_CODES", "createTerminalSignalLatch", "initialHandler", "handler", "latched", "disposed", "listeners", "signal", "exitCode", "dispose", "nextHandler", "MAX_PREVIEW_MESSAGES", "MAX_PREVIEW_MESSAGE_CHARS", "MAX_STARTUP_INPUT_BYTES", "StartupFrame", "#identity", "#transcript", "#theme", "#rows", "#status", "#input", "#inputBytes", "#inputOverflowed", "state", "workspace", "rows", "theme", "connection", "candidate", "status", "run", "left", "right", "runner", "model", "connectionName", "conversation", "messages", "message", "previewText", "Text", "data", "bytes", "input", "width", "top", "renderTerminalIdentity", "footer", "fitTerminalColumns", "composer", "composerBorderLine", "CURSOR_MARKER", "contentRows", "transcript", "content", "safe", "boundVisibleText", "createStartupPreview", "terminal", "ProcessTerminal", "AlternateScreenTerminal", "restoreOutputPolicy", "installTerminalOutputPolicy", "outputPolicyRestored", "outputPolicyCleanup", "tui", "TuiMainScreen", "frame", "createBraidTheme", "removed", "adopted", "handoff", "signalCleanup", "remove", "stopPreview", "signals", "createTerminalSignalLatch", "handler"]
6
- }
1
+ {"version":3,"file":"preview-runtime.js","sourceRoot":"","sources":["../../src/startup/preview-runtime.ts"],"names":[],"mappings":"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"}