inferoa 0.1.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.
- package/LICENSE +176 -0
- package/README.md +154 -0
- package/dist/src/app.d.ts +16 -0
- package/dist/src/app.js +17 -0
- package/dist/src/app.js.map +1 -0
- package/dist/src/autoresearch/state.d.ts +106 -0
- package/dist/src/autoresearch/state.js +469 -0
- package/dist/src/autoresearch/state.js.map +1 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +415 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/code-intelligence/codegraph-engine.d.ts +55 -0
- package/dist/src/code-intelligence/codegraph-engine.js +593 -0
- package/dist/src/code-intelligence/codegraph-engine.js.map +1 -0
- package/dist/src/code-intelligence/hub.d.ts +37 -0
- package/dist/src/code-intelligence/hub.js +65 -0
- package/dist/src/code-intelligence/hub.js.map +1 -0
- package/dist/src/config/config.d.ts +12 -0
- package/dist/src/config/config.js +229 -0
- package/dist/src/config/config.js.map +1 -0
- package/dist/src/config/defaults.d.ts +2 -0
- package/dist/src/config/defaults.js +44 -0
- package/dist/src/config/defaults.js.map +1 -0
- package/dist/src/config/secret-vault.d.ts +3 -0
- package/dist/src/config/secret-vault.js +106 -0
- package/dist/src/config/secret-vault.js.map +1 -0
- package/dist/src/context/compressor.d.ts +33 -0
- package/dist/src/context/compressor.js +501 -0
- package/dist/src/context/compressor.js.map +1 -0
- package/dist/src/context/prompt.d.ts +26 -0
- package/dist/src/context/prompt.js +572 -0
- package/dist/src/context/prompt.js.map +1 -0
- package/dist/src/daemon/serve.d.ts +2 -0
- package/dist/src/daemon/serve.js +11 -0
- package/dist/src/daemon/serve.js.map +1 -0
- package/dist/src/daemon/supervisor.d.ts +33 -0
- package/dist/src/daemon/supervisor.js +252 -0
- package/dist/src/daemon/supervisor.js.map +1 -0
- package/dist/src/goals/state.d.ts +105 -0
- package/dist/src/goals/state.js +736 -0
- package/dist/src/goals/state.js.map +1 -0
- package/dist/src/model/endpoint-signals.d.ts +15 -0
- package/dist/src/model/endpoint-signals.js +186 -0
- package/dist/src/model/endpoint-signals.js.map +1 -0
- package/dist/src/model/gateway.d.ts +11 -0
- package/dist/src/model/gateway.js +455 -0
- package/dist/src/model/gateway.js.map +1 -0
- package/dist/src/plans/state.d.ts +28 -0
- package/dist/src/plans/state.js +123 -0
- package/dist/src/plans/state.js.map +1 -0
- package/dist/src/runtime.d.ts +92 -0
- package/dist/src/runtime.js +757 -0
- package/dist/src/runtime.js.map +1 -0
- package/dist/src/session/store.d.ts +84 -0
- package/dist/src/session/store.js +593 -0
- package/dist/src/session/store.js.map +1 -0
- package/dist/src/session/workspace.d.ts +2 -0
- package/dist/src/session/workspace.js +14 -0
- package/dist/src/session/workspace.js.map +1 -0
- package/dist/src/skills/registry.d.ts +24 -0
- package/dist/src/skills/registry.js +203 -0
- package/dist/src/skills/registry.js.map +1 -0
- package/dist/src/tools/autoresearch-tools.d.ts +6 -0
- package/dist/src/tools/autoresearch-tools.js +412 -0
- package/dist/src/tools/autoresearch-tools.js.map +1 -0
- package/dist/src/tools/clarify-tool.d.ts +3 -0
- package/dist/src/tools/clarify-tool.js +107 -0
- package/dist/src/tools/clarify-tool.js.map +1 -0
- package/dist/src/tools/code-intelligence.d.ts +15 -0
- package/dist/src/tools/code-intelligence.js +391 -0
- package/dist/src/tools/code-intelligence.js.map +1 -0
- package/dist/src/tools/context.d.ts +11 -0
- package/dist/src/tools/context.js +2 -0
- package/dist/src/tools/context.js.map +1 -0
- package/dist/src/tools/goal-tools.d.ts +3 -0
- package/dist/src/tools/goal-tools.js +279 -0
- package/dist/src/tools/goal-tools.js.map +1 -0
- package/dist/src/tools/omni-tools.d.ts +8 -0
- package/dist/src/tools/omni-tools.js +349 -0
- package/dist/src/tools/omni-tools.js.map +1 -0
- package/dist/src/tools/permissions.d.ts +11 -0
- package/dist/src/tools/permissions.js +74 -0
- package/dist/src/tools/permissions.js.map +1 -0
- package/dist/src/tools/plan-tools.d.ts +3 -0
- package/dist/src/tools/plan-tools.js +314 -0
- package/dist/src/tools/plan-tools.js.map +1 -0
- package/dist/src/tools/process-tools.d.ts +6 -0
- package/dist/src/tools/process-tools.js +199 -0
- package/dist/src/tools/process-tools.js.map +1 -0
- package/dist/src/tools/registry.d.ts +20 -0
- package/dist/src/tools/registry.js +187 -0
- package/dist/src/tools/registry.js.map +1 -0
- package/dist/src/tools/schemas.d.ts +3 -0
- package/dist/src/tools/schemas.js +500 -0
- package/dist/src/tools/schemas.js.map +1 -0
- package/dist/src/tools/skill-tools.d.ts +6 -0
- package/dist/src/tools/skill-tools.js +124 -0
- package/dist/src/tools/skill-tools.js.map +1 -0
- package/dist/src/tools/text-args.d.ts +5 -0
- package/dist/src/tools/text-args.js +22 -0
- package/dist/src/tools/text-args.js.map +1 -0
- package/dist/src/tools/web-search.d.ts +5 -0
- package/dist/src/tools/web-search.js +602 -0
- package/dist/src/tools/web-search.js.map +1 -0
- package/dist/src/tools/workspace-tools.d.ts +17 -0
- package/dist/src/tools/workspace-tools.js +561 -0
- package/dist/src/tools/workspace-tools.js.map +1 -0
- package/dist/src/tui/activity.d.ts +11 -0
- package/dist/src/tui/activity.js +75 -0
- package/dist/src/tui/activity.js.map +1 -0
- package/dist/src/tui/ansi.d.ts +24 -0
- package/dist/src/tui/ansi.js +131 -0
- package/dist/src/tui/ansi.js.map +1 -0
- package/dist/src/tui/app.d.ts +163 -0
- package/dist/src/tui/app.js +4204 -0
- package/dist/src/tui/app.js.map +1 -0
- package/dist/src/tui/cache-footer.d.ts +21 -0
- package/dist/src/tui/cache-footer.js +75 -0
- package/dist/src/tui/cache-footer.js.map +1 -0
- package/dist/src/tui/clarify.d.ts +14 -0
- package/dist/src/tui/clarify.js +187 -0
- package/dist/src/tui/clarify.js.map +1 -0
- package/dist/src/tui/composer.d.ts +79 -0
- package/dist/src/tui/composer.js +592 -0
- package/dist/src/tui/composer.js.map +1 -0
- package/dist/src/tui/event-view.d.ts +5 -0
- package/dist/src/tui/event-view.js +392 -0
- package/dist/src/tui/event-view.js.map +1 -0
- package/dist/src/tui/home.d.ts +7 -0
- package/dist/src/tui/home.js +92 -0
- package/dist/src/tui/home.js.map +1 -0
- package/dist/src/tui/markdown.d.ts +18 -0
- package/dist/src/tui/markdown.js +271 -0
- package/dist/src/tui/markdown.js.map +1 -0
- package/dist/src/tui/mode-footer.d.ts +9 -0
- package/dist/src/tui/mode-footer.js +62 -0
- package/dist/src/tui/mode-footer.js.map +1 -0
- package/dist/src/tui/plan-view.d.ts +8 -0
- package/dist/src/tui/plan-view.js +45 -0
- package/dist/src/tui/plan-view.js.map +1 -0
- package/dist/src/tui/prompt-queue.d.ts +18 -0
- package/dist/src/tui/prompt-queue.js +27 -0
- package/dist/src/tui/prompt-queue.js.map +1 -0
- package/dist/src/tui/resize.d.ts +7 -0
- package/dist/src/tui/resize.js +15 -0
- package/dist/src/tui/resize.js.map +1 -0
- package/dist/src/tui/session-picker.d.ts +10 -0
- package/dist/src/tui/session-picker.js +17 -0
- package/dist/src/tui/session-picker.js.map +1 -0
- package/dist/src/tui/session-transcript.d.ts +2 -0
- package/dist/src/tui/session-transcript.js +44 -0
- package/dist/src/tui/session-transcript.js.map +1 -0
- package/dist/src/tui/slash-notice.d.ts +2 -0
- package/dist/src/tui/slash-notice.js +9 -0
- package/dist/src/tui/slash-notice.js.map +1 -0
- package/dist/src/tui/slash.d.ts +21 -0
- package/dist/src/tui/slash.js +103 -0
- package/dist/src/tui/slash.js.map +1 -0
- package/dist/src/tui/splash.d.ts +4 -0
- package/dist/src/tui/splash.js +64 -0
- package/dist/src/tui/splash.js.map +1 -0
- package/dist/src/tui/tool-renderer.d.ts +6 -0
- package/dist/src/tui/tool-renderer.js +1024 -0
- package/dist/src/tui/tool-renderer.js.map +1 -0
- package/dist/src/tui/transcript-spacing.d.ts +1 -0
- package/dist/src/tui/transcript-spacing.js +4 -0
- package/dist/src/tui/transcript-spacing.js.map +1 -0
- package/dist/src/types.d.ts +220 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/util/abort.d.ts +3 -0
- package/dist/src/util/abort.js +19 -0
- package/dist/src/util/abort.js.map +1 -0
- package/dist/src/util/clock.d.ts +2 -0
- package/dist/src/util/clock.js +7 -0
- package/dist/src/util/clock.js.map +1 -0
- package/dist/src/util/fs.d.ts +13 -0
- package/dist/src/util/fs.js +75 -0
- package/dist/src/util/fs.js.map +1 -0
- package/dist/src/util/hash.d.ts +6 -0
- package/dist/src/util/hash.js +50 -0
- package/dist/src/util/hash.js.map +1 -0
- package/dist/src/util/limit.d.ts +11 -0
- package/dist/src/util/limit.js +29 -0
- package/dist/src/util/limit.js.map +1 -0
- package/dist/src/util/types.d.ts +22 -0
- package/dist/src/util/types.js +33 -0
- package/dist/src/util/types.js.map +1 -0
- package/dist/src/validation/acceptance.d.ts +12 -0
- package/dist/src/validation/acceptance.js +251 -0
- package/dist/src/validation/acceptance.js.map +1 -0
- package/dist/src/validation/milestone.d.ts +2 -0
- package/dist/src/validation/milestone.js +141 -0
- package/dist/src/validation/milestone.js.map +1 -0
- package/docs/final-acceptance-task.md +193 -0
- package/docs/public-source-hygiene.md +21 -0
- package/docs/roadmap.md +265 -0
- package/docs/tui-product-design.md +270 -0
- package/package.json +67 -0
- package/skills/coding-workflow/SKILL.md +16 -0
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
# TUI Product Design
|
|
2
|
+
|
|
3
|
+
Inferoa should feel like a purpose-built inference-native terminal product,
|
|
4
|
+
not a generic chat prompt.
|
|
5
|
+
|
|
6
|
+
## Brand Direction
|
|
7
|
+
|
|
8
|
+
The terminal UI should express:
|
|
9
|
+
|
|
10
|
+
- vLLM-native inference awareness;
|
|
11
|
+
- fast local/remote endpoint control;
|
|
12
|
+
- long-running coding focus;
|
|
13
|
+
- visible cache/context discipline;
|
|
14
|
+
- precise tool execution.
|
|
15
|
+
|
|
16
|
+
Visual language:
|
|
17
|
+
|
|
18
|
+
- dark, high-contrast base;
|
|
19
|
+
- cyan, blue, white, and graphite as the primary palette;
|
|
20
|
+
- sparing amber/red for warnings and destructive states;
|
|
21
|
+
- thin borders, compact panels, and dense but readable information;
|
|
22
|
+
- animated status accents for streaming, endpoint probing, tool execution, and
|
|
23
|
+
compression;
|
|
24
|
+
- no decorative gradients or unrelated illustrations.
|
|
25
|
+
|
|
26
|
+
## Default Screen
|
|
27
|
+
|
|
28
|
+
`inferoa` opens the TUI home/chat surface.
|
|
29
|
+
|
|
30
|
+
First viewport:
|
|
31
|
+
|
|
32
|
+
- product wordmark;
|
|
33
|
+
- short workspace path;
|
|
34
|
+
- short session id/title;
|
|
35
|
+
- selected provider and model;
|
|
36
|
+
- compact Omni capability status;
|
|
37
|
+
- git branch and dirty state;
|
|
38
|
+
- context usage and compression status;
|
|
39
|
+
- recent sessions;
|
|
40
|
+
- full-width composer with `/` command discovery and `$` skill
|
|
41
|
+
discovery.
|
|
42
|
+
|
|
43
|
+
The default chat banner should not expose base URLs, workspace ids, run ids,
|
|
44
|
+
client ids, cache salts, prompt epoch ids, or other internal routing values.
|
|
45
|
+
Those belong in explicit diagnostic views such as `/endpoints` and
|
|
46
|
+
`/activity`.
|
|
47
|
+
|
|
48
|
+
The UI should make the product identity obvious without forcing the user through
|
|
49
|
+
a marketing page.
|
|
50
|
+
|
|
51
|
+
Branding animation:
|
|
52
|
+
|
|
53
|
+
- the first launch should use a short full-screen intro that establishes the
|
|
54
|
+
Inferoa mark, then dissolves into the working UI;
|
|
55
|
+
- the animation should use a terminal-native gradient/shine treatment with a
|
|
56
|
+
fallback for 256-color and narrow terminals;
|
|
57
|
+
- the intro must be skippable with Enter, Space, Escape, or Ctrl-C;
|
|
58
|
+
- the working welcome screen should keep a lighter animated accent, not a
|
|
59
|
+
constantly distracting full-screen animation.
|
|
60
|
+
|
|
61
|
+
## Input Model
|
|
62
|
+
|
|
63
|
+
Supported entrypoints:
|
|
64
|
+
|
|
65
|
+
- plain text submits a chat turn;
|
|
66
|
+
- `/` opens command palette;
|
|
67
|
+
- `$` opens skill catalog and skill filter;
|
|
68
|
+
- `!` opens shell command helper;
|
|
69
|
+
- file/path mentions trigger local path autocomplete;
|
|
70
|
+
- model/provider selectors are opened from setup or status views;
|
|
71
|
+
- image/video artifacts can be attached or referenced when Omni endpoints are
|
|
72
|
+
configured.
|
|
73
|
+
|
|
74
|
+
`inferoa "prompt"` opens the same UI and sends the prompt as the first user
|
|
75
|
+
turn after initialization.
|
|
76
|
+
|
|
77
|
+
## Setup UX
|
|
78
|
+
|
|
79
|
+
Setup is scene-based and interactive.
|
|
80
|
+
|
|
81
|
+
Setup shell:
|
|
82
|
+
|
|
83
|
+
- full-screen splash;
|
|
84
|
+
- cross-dissolve transition into setup scenes;
|
|
85
|
+
- scene header with Inferoa mark, step count, title, and subtitle;
|
|
86
|
+
- tabbed panels where one setup step contains multiple related choices;
|
|
87
|
+
- modal input for secrets, callback URLs, endpoint probing, and confirmation;
|
|
88
|
+
- footer with keyboard hints;
|
|
89
|
+
- outro transition back to chat.
|
|
90
|
+
|
|
91
|
+
Provider setup flow:
|
|
92
|
+
|
|
93
|
+
1. Choose direct vLLM, auto Semantic Router, or external provider.
|
|
94
|
+
2. Enter endpoint URL.
|
|
95
|
+
3. Enter API key in a masked field; setup stores it in the local vault and
|
|
96
|
+
writes only `api_key_ref`.
|
|
97
|
+
4. Probe `/v1/models`.
|
|
98
|
+
5. Select a model from a TUI list.
|
|
99
|
+
6. Run a minimal capability probe.
|
|
100
|
+
7. Review and save config.
|
|
101
|
+
|
|
102
|
+
Omni setup flow:
|
|
103
|
+
|
|
104
|
+
1. Add capability endpoint cards for vision, image generation, video
|
|
105
|
+
understanding, video generation, audio understanding, and audio generation.
|
|
106
|
+
2. Probe each enabled endpoint independently.
|
|
107
|
+
3. Select model per capability.
|
|
108
|
+
4. Show unavailable capabilities as disabled, not failed.
|
|
109
|
+
|
|
110
|
+
## Chat Transcript
|
|
111
|
+
|
|
112
|
+
The transcript should render structured cards:
|
|
113
|
+
|
|
114
|
+
- user turns;
|
|
115
|
+
- assistant streaming output;
|
|
116
|
+
- tool call pending/running/complete/failed states;
|
|
117
|
+
- file diff preview;
|
|
118
|
+
- shell process output;
|
|
119
|
+
- git summary;
|
|
120
|
+
- todo/activity updates;
|
|
121
|
+
- code-intelligence references;
|
|
122
|
+
- context compression summaries;
|
|
123
|
+
- endpoint evidence;
|
|
124
|
+
- image/video artifacts.
|
|
125
|
+
|
|
126
|
+
Cards should be compact by default and expandable for large output or managed
|
|
127
|
+
resources.
|
|
128
|
+
|
|
129
|
+
Tool cards:
|
|
130
|
+
|
|
131
|
+
- pending/running cards use animated borders or spinner accents with bounded
|
|
132
|
+
frame rates;
|
|
133
|
+
- completed cards switch to success/error styling without leaving active
|
|
134
|
+
timers;
|
|
135
|
+
- arguments render inline when collapsed and as a JSON tree when expanded;
|
|
136
|
+
- results use tool-specific renderers instead of generic JSON whenever
|
|
137
|
+
possible;
|
|
138
|
+
- image results render inline when the terminal supports images and fall back
|
|
139
|
+
to dimensions/type markers when it does not.
|
|
140
|
+
|
|
141
|
+
File diff cards:
|
|
142
|
+
|
|
143
|
+
- show a streaming preview before the edit is applied;
|
|
144
|
+
- avoid jitter from partial streamed JSON by trimming trailing unbalanced
|
|
145
|
+
removal/hunk lines until the matching additions arrive;
|
|
146
|
+
- show line numbers in a stable gutter;
|
|
147
|
+
- color removed and added lines distinctly;
|
|
148
|
+
- highlight changed tokens inside replaced lines;
|
|
149
|
+
- visualize leading tabs/spaces subtly so indentation edits are visible;
|
|
150
|
+
- syntax-highlight unchanged context lines when a language can be inferred.
|
|
151
|
+
|
|
152
|
+
## Session UX
|
|
153
|
+
|
|
154
|
+
`/sessions` is a chat-local overlay, not a separate command screen. It should
|
|
155
|
+
support:
|
|
156
|
+
|
|
157
|
+
- Resume: attach to an existing non-archived session;
|
|
158
|
+
- New session: create a fresh session in the current workspace;
|
|
159
|
+
- Rename: update the human-readable session title;
|
|
160
|
+
- Archive: hide a completed or stale session from the default list;
|
|
161
|
+
- Show all: include archived sessions and lock state.
|
|
162
|
+
|
|
163
|
+
Session rows show short session id, title, status, updated time, and a lock
|
|
164
|
+
summary such as `unlocked` or `locked daemon 2m`. They must not show
|
|
165
|
+
`workspace_id`, `run_id`, `client_id`, prompt epoch ids, or cache salts.
|
|
166
|
+
|
|
167
|
+
Shell/process cards:
|
|
168
|
+
|
|
169
|
+
- show command header, live output, and cancel hint;
|
|
170
|
+
- throttle high-throughput output updates so rendering cannot starve the event
|
|
171
|
+
loop;
|
|
172
|
+
- keep full output in resources while the visible panel shows a bounded live
|
|
173
|
+
preview;
|
|
174
|
+
- support expand/collapse after completion;
|
|
175
|
+
- show exit code, cancellation, hidden-line count, and truncation notices.
|
|
176
|
+
|
|
177
|
+
Turn footer:
|
|
178
|
+
|
|
179
|
+
- every assistant turn ends with a compact usage/cache footer;
|
|
180
|
+
- direct vLLM footer fields: prompt tokens, cached prompt tokens, cache hit
|
|
181
|
+
rate, output tokens, request id, model, endpoint mode, and latency;
|
|
182
|
+
- external provider footer fields: prompt/output tokens and provider usage
|
|
183
|
+
metadata when available;
|
|
184
|
+
- unsupported cache evidence is displayed as unavailable, not as zero.
|
|
185
|
+
|
|
186
|
+
## Animation Rules
|
|
187
|
+
|
|
188
|
+
Animations should communicate state, not decorate.
|
|
189
|
+
|
|
190
|
+
- streaming assistant text uses a subtle cursor or shimmer;
|
|
191
|
+
- endpoint probing shows a short pulse/spinner and resolves to success,
|
|
192
|
+
warning, or error;
|
|
193
|
+
- tool execution shows elapsed time and changing status;
|
|
194
|
+
- shell/process output scrolls in a bounded panel;
|
|
195
|
+
- context compression shows a short transition from "archiving" to
|
|
196
|
+
"summarized";
|
|
197
|
+
- image/video generation shows queued, generating, storing, and ready states.
|
|
198
|
+
|
|
199
|
+
Animations must stop when the underlying operation stops and must not flood the
|
|
200
|
+
event loop or corrupt terminal resize behavior.
|
|
201
|
+
|
|
202
|
+
Animation timing:
|
|
203
|
+
|
|
204
|
+
- setup splash can update around 30 FPS;
|
|
205
|
+
- pending tool borders can redraw up to the renderer's normal frame cadence
|
|
206
|
+
while advancing spinner glyphs more slowly;
|
|
207
|
+
- high-throughput process output should be throttled and coalesced;
|
|
208
|
+
- todo/activity completion can use a short reveal animation, then settle.
|
|
209
|
+
|
|
210
|
+
## Status Line
|
|
211
|
+
|
|
212
|
+
The status line should prioritize:
|
|
213
|
+
|
|
214
|
+
- provider/model;
|
|
215
|
+
- endpoint mode: direct, auto, external;
|
|
216
|
+
- Omni capability status;
|
|
217
|
+
- workspace short path;
|
|
218
|
+
- session short id/title;
|
|
219
|
+
- git branch;
|
|
220
|
+
- context usage;
|
|
221
|
+
- daemon/job state;
|
|
222
|
+
- permission mode.
|
|
223
|
+
|
|
224
|
+
Internal ids such as workspace id, run id, client id, prompt epoch id, and cache
|
|
225
|
+
salt do not appear in normal UI.
|
|
226
|
+
|
|
227
|
+
The status line is not the only evidence surface. Per-turn cache hit rate must
|
|
228
|
+
be visible in the transcript footer so users can see whether a specific request
|
|
229
|
+
hit the vLLM prefix cache.
|
|
230
|
+
|
|
231
|
+
## Slash Commands
|
|
232
|
+
|
|
233
|
+
Slash commands are TUI-native commands, not legacy CLI aliases.
|
|
234
|
+
|
|
235
|
+
Initial command set:
|
|
236
|
+
|
|
237
|
+
- `/setup`: open setup wizard;
|
|
238
|
+
- `/model`: open model/provider selector;
|
|
239
|
+
- `/endpoints`: open endpoint capability and signal view;
|
|
240
|
+
- `/skills`: open discovered skill picker and enable/disable skills;
|
|
241
|
+
- `/cache`: show per-turn and aggregate cache evidence;
|
|
242
|
+
- `/context`: show context and compression breakdown;
|
|
243
|
+
- `/tools`: show active fixed tool schemas and tool renderer status;
|
|
244
|
+
- `/sessions`: open session picker;
|
|
245
|
+
- `/jobs`: open daemon/supervisor jobs;
|
|
246
|
+
- `/todo`: open task ledger;
|
|
247
|
+
- `/activity`: open the activity ledger and final report resources;
|
|
248
|
+
- `/acceptance`: open final acceptance workflow;
|
|
249
|
+
- `/help`: show keyboard shortcuts and command list;
|
|
250
|
+
- `/exit`: exit the TUI.
|
|
251
|
+
|
|
252
|
+
Commands that do not map to Inferoa product surfaces should be deleted from
|
|
253
|
+
the active registry rather than retained for compatibility.
|
|
254
|
+
|
|
255
|
+
## Acceptance UX
|
|
256
|
+
|
|
257
|
+
Final acceptance should be visible as a TUI workflow:
|
|
258
|
+
|
|
259
|
+
- preflight endpoint checklist;
|
|
260
|
+
- AMD deployment checklist;
|
|
261
|
+
- external provider checklist;
|
|
262
|
+
- coding task progress;
|
|
263
|
+
- tool coverage checklist;
|
|
264
|
+
- compression evidence;
|
|
265
|
+
- Omni artifact checklist;
|
|
266
|
+
- daemon attach/detach/status/cancel checklist;
|
|
267
|
+
- final evidence report.
|
|
268
|
+
|
|
269
|
+
The TUI may call automation underneath, but the user should be able to watch
|
|
270
|
+
and inspect the acceptance run from the terminal app.
|
package/package.json
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "inferoa",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Inference-optimized agent for long-horizon tasks in the vLLM ecosystem.",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"inferoa": "./dist/src/cli.js"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/agentic-in/inferoa.git"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://inferoa.agentic-in.ai/",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/agentic-in/inferoa/issues"
|
|
17
|
+
},
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"agent",
|
|
23
|
+
"vllm",
|
|
24
|
+
"inference",
|
|
25
|
+
"coding-agent",
|
|
26
|
+
"prefix-cache"
|
|
27
|
+
],
|
|
28
|
+
"files": [
|
|
29
|
+
"dist/src",
|
|
30
|
+
"skills",
|
|
31
|
+
"README.md",
|
|
32
|
+
"docs"
|
|
33
|
+
],
|
|
34
|
+
"scripts": {
|
|
35
|
+
"build": "tsc -p tsconfig.json",
|
|
36
|
+
"check": "tsc --noEmit -p tsconfig.json",
|
|
37
|
+
"test": "npm run build && node --test dist/test/*.test.js",
|
|
38
|
+
"prepack": "npm run build",
|
|
39
|
+
"site:start": "npm --prefix website run start",
|
|
40
|
+
"site:build": "npm --prefix website run build",
|
|
41
|
+
"site:serve": "npm --prefix website run serve",
|
|
42
|
+
"validate:t0": "npm run build && node dist/src/validation/milestone.js T0",
|
|
43
|
+
"validate:t1": "npm run build && node dist/src/validation/milestone.js T1",
|
|
44
|
+
"validate:t2": "npm run build && node dist/src/validation/milestone.js T2",
|
|
45
|
+
"validate:t3": "npm run build && node dist/src/validation/milestone.js T3",
|
|
46
|
+
"validate:t4": "npm run build && node dist/src/validation/milestone.js T4",
|
|
47
|
+
"validate:t5": "npm run build && node dist/src/validation/milestone.js T5",
|
|
48
|
+
"validate:t6": "npm run build && node dist/src/validation/milestone.js T6",
|
|
49
|
+
"validate:t7": "npm run build && node dist/src/validation/milestone.js T7",
|
|
50
|
+
"validate:t8": "npm run build && node dist/src/validation/milestone.js T8",
|
|
51
|
+
"validate:t9": "npm run build && node dist/src/validation/milestone.js T9",
|
|
52
|
+
"validate:t10": "npm run build && node dist/src/validation/milestone.js T10",
|
|
53
|
+
"validate:all": "npm run build && for milestone in T0 T1 T2 T3 T4 T5 T6 T7 T8 T9 T10; do node dist/src/validation/milestone.js $milestone || exit 1; done"
|
|
54
|
+
},
|
|
55
|
+
"engines": {
|
|
56
|
+
"node": ">=24"
|
|
57
|
+
},
|
|
58
|
+
"dependencies": {
|
|
59
|
+
"@colbymchenry/codegraph": "0.9.9",
|
|
60
|
+
"commander": "^14.0.2",
|
|
61
|
+
"typescript": "^5.9.3",
|
|
62
|
+
"yaml": "^2.8.1"
|
|
63
|
+
},
|
|
64
|
+
"devDependencies": {
|
|
65
|
+
"@types/node": "^24.10.1"
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "coding-workflow"
|
|
3
|
+
description: "Default Inferoa coding workflow: inspect, plan, edit, test, record evidence, and preserve context."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Coding Workflow
|
|
7
|
+
|
|
8
|
+
Use repository files and docs as the source of truth. For non-trivial work:
|
|
9
|
+
|
|
10
|
+
1. Inspect the relevant files before editing.
|
|
11
|
+
2. Use `file_search`, `read_file`, and code-intelligence tools where supported.
|
|
12
|
+
3. Keep a task ledger with `todo_write` and evidence with `complete_step`.
|
|
13
|
+
4. Prefer `apply_patch` or structured edits for source changes.
|
|
14
|
+
5. Run targeted validation through `run_command`.
|
|
15
|
+
6. Store bulky outputs as resources and read only bounded pages.
|
|
16
|
+
7. Continue after context compression using the summary plus recent tail.
|