zcode-acp-server 0.11.8 → 0.14.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 (120) hide show
  1. package/README.md +144 -32
  2. package/dist/backend/client.d.ts.map +1 -1
  3. package/dist/backend/client.js +10 -0
  4. package/dist/backend/client.js.map +1 -1
  5. package/dist/backend/listener.d.ts.map +1 -1
  6. package/dist/backend/listener.js +6 -5
  7. package/dist/backend/listener.js.map +1 -1
  8. package/dist/backend/resolve.d.ts.map +1 -1
  9. package/dist/backend/resolve.js +35 -1
  10. package/dist/backend/resolve.js.map +1 -1
  11. package/dist/bin/hub.d.ts +3 -3
  12. package/dist/bin/hub.d.ts.map +1 -1
  13. package/dist/bin/hub.js +22 -12
  14. package/dist/bin/hub.js.map +1 -1
  15. package/dist/bin/quota.d.ts +14 -6
  16. package/dist/bin/quota.d.ts.map +1 -1
  17. package/dist/bin/quota.js +27 -19
  18. package/dist/bin/quota.js.map +1 -1
  19. package/dist/cli.d.ts +38 -0
  20. package/dist/cli.d.ts.map +1 -0
  21. package/dist/cli.js +129 -0
  22. package/dist/cli.js.map +1 -0
  23. package/dist/config/runtime-model.d.ts +10 -10
  24. package/dist/config/runtime-model.js +10 -10
  25. package/dist/handlers/account.d.ts +1 -1
  26. package/dist/handlers/account.js +1 -1
  27. package/dist/handlers/dispatch.d.ts.map +1 -1
  28. package/dist/handlers/dispatch.js +42 -36
  29. package/dist/handlers/dispatch.js.map +1 -1
  30. package/dist/handlers/io.d.ts.map +1 -1
  31. package/dist/handlers/io.js +19 -13
  32. package/dist/handlers/io.js.map +1 -1
  33. package/dist/handlers/session.d.ts +58 -4
  34. package/dist/handlers/session.d.ts.map +1 -1
  35. package/dist/handlers/session.js +317 -87
  36. package/dist/handlers/session.js.map +1 -1
  37. package/dist/index.d.ts +4 -1
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +27 -8
  40. package/dist/index.js.map +1 -1
  41. package/dist/interaction/adapter.d.ts +1 -0
  42. package/dist/interaction/adapter.d.ts.map +1 -1
  43. package/dist/interaction/adapter.js +5 -1
  44. package/dist/interaction/adapter.js.map +1 -1
  45. package/dist/quota/color.d.ts +4 -4
  46. package/dist/quota/color.d.ts.map +1 -1
  47. package/dist/quota/color.js +7 -5
  48. package/dist/quota/color.js.map +1 -1
  49. package/dist/quota/combined.d.ts +1 -1
  50. package/dist/quota/combined.js +4 -4
  51. package/dist/quota/combined.js.map +1 -1
  52. package/dist/quota/format.d.ts +1 -1
  53. package/dist/quota/opencode-go/format.d.ts.map +1 -1
  54. package/dist/quota/opencode-go/format.js +5 -1
  55. package/dist/quota/opencode-go/format.js.map +1 -1
  56. package/dist/quota/opencode-go/index.d.ts +1 -1
  57. package/dist/quota/opencode-go/index.js +1 -1
  58. package/dist/quota/opencode-go/types.d.ts +1 -1
  59. package/dist/quota/opencode-go/types.js +1 -1
  60. package/dist/quota/rounding.d.ts +8 -0
  61. package/dist/quota/rounding.d.ts.map +1 -0
  62. package/dist/quota/rounding.js +10 -0
  63. package/dist/quota/rounding.js.map +1 -0
  64. package/dist/remote/config.d.ts +1 -1
  65. package/dist/remote/config.d.ts.map +1 -1
  66. package/dist/remote/config.js +1 -1
  67. package/dist/remote/config.js.map +1 -1
  68. package/dist/remote/endpoint.d.ts +1 -1
  69. package/dist/remote/endpoint.d.ts.map +1 -1
  70. package/dist/remote/endpoint.js +6 -1
  71. package/dist/remote/endpoint.js.map +1 -1
  72. package/dist/remote/hub-server.d.ts +1 -1
  73. package/dist/remote/hub-server.d.ts.map +1 -1
  74. package/dist/remote/hub-server.js +13 -10
  75. package/dist/remote/hub-server.js.map +1 -1
  76. package/dist/remote/session-rename-endpoint.d.ts +20 -0
  77. package/dist/remote/session-rename-endpoint.d.ts.map +1 -0
  78. package/dist/remote/session-rename-endpoint.js +108 -0
  79. package/dist/remote/session-rename-endpoint.js.map +1 -0
  80. package/dist/repl/App.d.ts +108 -0
  81. package/dist/repl/App.d.ts.map +1 -0
  82. package/dist/repl/App.js +706 -0
  83. package/dist/repl/App.js.map +1 -0
  84. package/dist/repl/history.d.ts +25 -0
  85. package/dist/repl/history.d.ts.map +1 -0
  86. package/dist/repl/history.js +73 -0
  87. package/dist/repl/history.js.map +1 -0
  88. package/dist/repl/input-buffer.d.ts +77 -0
  89. package/dist/repl/input-buffer.d.ts.map +1 -0
  90. package/dist/repl/input-buffer.js +174 -0
  91. package/dist/repl/input-buffer.js.map +1 -0
  92. package/dist/repl/model.d.ts +275 -0
  93. package/dist/repl/model.d.ts.map +1 -0
  94. package/dist/repl/model.js +596 -0
  95. package/dist/repl/model.js.map +1 -0
  96. package/dist/repl/mouse.d.ts +49 -0
  97. package/dist/repl/mouse.d.ts.map +1 -0
  98. package/dist/repl/mouse.js +165 -0
  99. package/dist/repl/mouse.js.map +1 -0
  100. package/dist/repl/run.d.ts +12 -0
  101. package/dist/repl/run.d.ts.map +1 -0
  102. package/dist/repl/run.js +902 -0
  103. package/dist/repl/run.js.map +1 -0
  104. package/dist/server.d.ts +19 -1
  105. package/dist/server.d.ts.map +1 -1
  106. package/dist/server.js +32 -4
  107. package/dist/server.js.map +1 -1
  108. package/dist/tasks-index.d.ts +7 -0
  109. package/dist/tasks-index.d.ts.map +1 -1
  110. package/dist/tasks-index.js +50 -9
  111. package/dist/tasks-index.js.map +1 -1
  112. package/dist/translators/tool-helpers.d.ts.map +1 -1
  113. package/dist/translators/tool-helpers.js +3 -0
  114. package/dist/translators/tool-helpers.js.map +1 -1
  115. package/docs/ARCHITECTURE.md +1 -1
  116. package/docs/BACKLOG.md +40 -21
  117. package/docs/REMOTE-CLIENTS.md +37 -8
  118. package/docs/TROUBLESHOOTING.md +1 -1
  119. package/docs/adr/0007-unified-cli-entry-and-bin-pruning.md +40 -0
  120. package/package.json +9 -4
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Ink UI for the interactive REPL (bare `zcode-acp`).
3
+ *
4
+ * Rendering model: the whole app draws in a fixed-height frame managed by
5
+ * run.ts (full-screen mode) — the transcript is an in-app viewport, and the
6
+ * live turn (streaming text, thinking buffer, tool rows), prompt line, and
7
+ * pickers render inside it. A pending permission request takes over the
8
+ * input area with an arrow-key picker.
9
+ */
10
+ import { type ReactElement } from "react";
11
+ import { type ReplEntry, type ReplStatus, type SessionSummary, type TurnState } from "./model.js";
12
+ import { type LineEditor } from "./input-buffer.js";
13
+ /** A permission request awaiting the user's choice. */
14
+ export interface PermissionPrompt {
15
+ /** Box heading ("permission requested" / "plan approval"). */
16
+ heading: string;
17
+ title: string;
18
+ /** Long body shown under the title (e.g. the plan text for ExitPlanMode). */
19
+ detail?: string;
20
+ options: Array<{
21
+ id: string;
22
+ name: string;
23
+ }>;
24
+ }
25
+ /** A question awaiting the user's answer (AskUserQuestion via elicitation). */
26
+ export interface QuestionPrompt {
27
+ title: string;
28
+ multiSelect: boolean;
29
+ options: Array<{
30
+ value: string;
31
+ label: string;
32
+ }>;
33
+ }
34
+ /** The interactive `/sessions` picker: resumable project sessions. */
35
+ export interface SessionPick {
36
+ items: SessionSummary[];
37
+ }
38
+ /** A picked question answer: chosen option values plus an optional custom text. */
39
+ export interface QuestionAnswer {
40
+ picked: string[];
41
+ custom: string;
42
+ }
43
+ /** Display state of the question picker (selection, toggles, custom typing). */
44
+ export interface PickerState {
45
+ index: number;
46
+ /** null = option list active; string = custom-answer input in progress. */
47
+ custom: string | null;
48
+ toggled: string[];
49
+ }
50
+ export interface AppProps {
51
+ /** Completed transcript entries — printed once into native scrollback. */
52
+ entries: ReplEntry[];
53
+ /** Live turn in progress, null when idle. */
54
+ turn: TurnState | null;
55
+ /** Pending permission request, null when none. */
56
+ permission: PermissionPrompt | null;
57
+ /** Pending AskUserQuestion, null when none (renders instead of the input). */
58
+ question: QuestionPrompt | null;
59
+ /** Pending /sessions picker, null when closed. */
60
+ sessionPick: SessionPick | null;
61
+ /** Prompts accepted but waiting for the running turn to finish. */
62
+ queued: string[];
63
+ /** Session status: command menu + model/mode/thought selects. */
64
+ status: ReplStatus;
65
+ /** True while the bridge/session is starting up. */
66
+ busy: boolean;
67
+ /**
68
+ * True while a /sessions resume is replaying history. Replayed updates
69
+ * fold silently into run.ts's buffers — rendering per message made big
70
+ * sessions freeze the UI, so App just shows this one-line progress hint.
71
+ */
72
+ replaying: boolean;
73
+ /**
74
+ * The prompt line's editor state (text + caret), owned by run.ts's
75
+ * external store so submit paths can reset it and rerender snapshots
76
+ * stay pure functions of that state.
77
+ */
78
+ editor: LineEditor;
79
+ /** Apply one pure editor op to the prompt line and repaint. */
80
+ applyEdit: (op: (e: LineEditor) => LineEditor) => void;
81
+ /** Compact plan-quota suffix for the status row (null = not fetched yet). */
82
+ quotaLine: string | null;
83
+ /**
84
+ * Live completion-menu visibility. InputLine mirrors it out of its React
85
+ * state on every render (same external-store rationale as the editor), so
86
+ * the app-level key handler can give the menu first claim on esc.
87
+ */
88
+ isMenuOpen: () => boolean;
89
+ /** InputLine → external store: publish the current menu visibility. */
90
+ onMenuOpenChange: (open: boolean) => void;
91
+ onSubmit: (text: string) => void;
92
+ onCancelTurn: () => void;
93
+ onAnswerPermission: (optionId: string | null) => void;
94
+ onAnswerQuestion: (answer: QuestionAnswer | null) => void;
95
+ /** null = dismiss the picker without resuming. */
96
+ onPickSession: (sessionId: string | null) => void;
97
+ /** Prompt-history recall (ADR-0008); run.ts no-ops when nothing to walk. */
98
+ onHistoryUp: () => void;
99
+ onHistoryDown: () => void;
100
+ onExit: () => void;
101
+ }
102
+ /**
103
+ * Colorize markdown code fences: lines between ``` fences render cyan. Line
104
+ * level state machine — exported for unit tests.
105
+ */
106
+ export declare function colorizeCodeFences(text: string): string;
107
+ export declare function App(props: AppProps): ReactElement;
108
+ //# sourceMappingURL=App.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/repl/App.tsx"],"names":[],"mappings":"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"}