u-foo 3.0.10 → 3.0.12

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 (70) hide show
  1. package/README.md +25 -9
  2. package/README.zh-CN.md +22 -9
  3. package/SKILLS/ubus/SKILL.md +15 -9
  4. package/SKILLS/ufoo/SKILL.md +20 -6
  5. package/dist/tui/darwin-arm64/ufoo-tui +0 -0
  6. package/dist/tui/darwin-x64/ufoo-tui +0 -0
  7. package/dist/tui/linux-arm64/ufoo-tui +0 -0
  8. package/dist/tui/linux-x64/ufoo-tui +0 -0
  9. package/package.json +11 -3
  10. package/scripts/pack-tui.js +112 -0
  11. package/scripts/postinstall.js +11 -0
  12. package/src/agents/activity/activityReconcile.js +106 -0
  13. package/src/agents/activity/activityStatePublisher.js +31 -2
  14. package/src/agents/activity/index.js +1 -0
  15. package/src/agents/launch/launcher.js +19 -0
  16. package/src/agents/launch/ptyRunner.js +20 -1
  17. package/src/agents/prompts/groupBootstrap.js +4 -0
  18. package/src/agents/prompts/native/ufoo.js +2 -0
  19. package/src/app/chat/ChatController.js +433 -0
  20. package/src/app/chat/agentDirectory.js +63 -0
  21. package/src/app/chat/agentEnter.js +70 -0
  22. package/src/app/chat/agentIdentity.js +50 -0
  23. package/src/app/chat/bootstrap.js +66 -0
  24. package/src/app/chat/commandExecutor.js +108 -0
  25. package/src/app/chat/commands.js +31 -0
  26. package/src/app/chat/dashboardView.js +6 -2
  27. package/src/app/chat/historyStore.js +181 -0
  28. package/src/app/chat/index.js +14 -2
  29. package/src/app/chat/inputSubmitHandler.js +21 -7
  30. package/src/app/chat/ipcBuilders.js +52 -0
  31. package/src/app/chat/multiWindow/paneManager.js +10 -1
  32. package/src/app/chat/multiWindow/renderer.js +1 -1
  33. package/src/app/chat/multiWindow/vtFrame.js +93 -0
  34. package/src/app/chat/streamState.js +182 -0
  35. package/src/app/cli/features/doctor.js +22 -0
  36. package/src/code/UCODE_PROMPT.md +2 -0
  37. package/src/code/UcodeController.js +156 -0
  38. package/src/code/context/planGraphService.js +4 -0
  39. package/src/code/repl.js +4 -3
  40. package/src/code/runtime/taskLoop.js +46 -50
  41. package/src/code/tui.js +13 -2
  42. package/src/code/ucodeSlashDispatch.js +241 -0
  43. package/src/coordination/bus/activate.js +3 -0
  44. package/src/runtime/contracts/schemas/ufoo-ui-v1/envelope.json +28 -0
  45. package/src/runtime/contracts/uiProtocol.js +190 -0
  46. package/src/ui/{ink/chatLogModel.js → chatLogModel.js} +2 -2
  47. package/src/ui/dashboardBridge.js +81 -0
  48. package/src/ui/format/index.js +2 -2
  49. package/src/ui/index.js +8 -4
  50. package/src/ui/multiPaneBusMirror.js +137 -0
  51. package/src/ui/multiWindowHandoff.js +232 -0
  52. package/src/ui/ptyHandoff.js +23 -0
  53. package/src/ui/rustChatHost.js +1520 -0
  54. package/src/ui/rustMultiSession.js +497 -0
  55. package/src/ui/rustUcodeHost.js +999 -0
  56. package/src/ui/scrollbackReplay.js +82 -0
  57. package/src/ui/settingsBridge.js +49 -0
  58. package/src/ui/toolMergeBridge.js +66 -0
  59. package/src/ui/tuiLauncher.js +105 -0
  60. package/src/ui/ucodeStatusLine.js +74 -0
  61. package/src/ui/uiHostServer.js +339 -0
  62. package/src/ui/MIGRATION.md +0 -334
  63. package/src/ui/ink/ChatApp.js +0 -4163
  64. package/src/ui/ink/DashboardBar.js +0 -691
  65. package/src/ui/ink/InkDemo.js +0 -96
  66. package/src/ui/ink/MultilineInput.js +0 -662
  67. package/src/ui/ink/UcodeApp.js +0 -1675
  68. package/src/ui/ink/agentMirror.js +0 -730
  69. package/src/ui/ink/chatReducer.js +0 -473
  70. package/src/ui/runInk.js +0 -66
@@ -1,96 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * Minimal Ink smoke-test app for ufoo.
5
- *
6
- * Renders a banner, a scrolling log, a status line and a single-line input.
7
- * Used to verify that ink runs under our Node + CJS environment, that
8
- * keypress/resize/Ctrl+C all behave, and that we can drive it from a CJS
9
- * entry point.
10
- */
11
-
12
- function createInkDemo({ React, ink, onExit, interactive = true }) {
13
- const { useEffect, useState, useCallback } = React;
14
- const { Box, Text, useInput, useApp, useStdout } = ink;
15
- const h = React.createElement;
16
-
17
- return function InkDemo(_props) {
18
- const [logs, setLogs] = useState([
19
- "ufoo ink demo · type something and press Enter",
20
- "press q or Ctrl+C to quit",
21
- ]);
22
- const [draft, setDraft] = useState("");
23
- const [size, setSize] = useState({ cols: 0, rows: 0 });
24
- const { exit } = useApp();
25
- const { stdout } = useStdout();
26
-
27
- useEffect(() => {
28
- if (!stdout) return undefined;
29
- const update = () => setSize({ cols: stdout.columns || 0, rows: stdout.rows || 0 });
30
- update();
31
- stdout.on("resize", update);
32
- return () => stdout.off("resize", update);
33
- }, [stdout]);
34
-
35
- const submit = useCallback(() => {
36
- const value = draft.trim();
37
- if (!value) return;
38
- setLogs((prev) => prev.concat([`> ${value}`]).slice(-200));
39
- setDraft("");
40
- }, [draft]);
41
-
42
- useInput((input, key) => {
43
- if (key.return) {
44
- submit();
45
- return;
46
- }
47
- if (key.escape) {
48
- setDraft("");
49
- return;
50
- }
51
- if (key.backspace || key.delete) {
52
- setDraft((prev) => prev.slice(0, -1));
53
- return;
54
- }
55
- if (input === "q" && !key.ctrl && !key.meta) {
56
- if (typeof onExit === "function") onExit();
57
- exit();
58
- return;
59
- }
60
- if (input && !key.ctrl && !key.meta) {
61
- setDraft((prev) => prev + input);
62
- }
63
- }, { isActive: interactive });
64
-
65
- return h(Box, { flexDirection: "column" },
66
- h(Box, { borderStyle: "round", borderColor: "cyan", paddingX: 1 },
67
- h(Text, { color: "cyan", bold: true }, "ufoo · ink demo"),
68
- h(Text, { color: "gray" }, ` ${size.cols}x${size.rows}`),
69
- ),
70
- h(Box, { flexDirection: "column", marginTop: 1, height: 12 },
71
- ...logs.slice(-12).map((line, idx) =>
72
- h(Text, { key: `${idx}-${line}` }, line)
73
- ),
74
- ),
75
- h(Box, {
76
- marginTop: 1,
77
- borderStyle: "single",
78
- borderTop: true,
79
- borderBottom: true,
80
- borderLeft: false,
81
- borderRight: false,
82
- borderColor: "gray",
83
- paddingY: 0,
84
- },
85
- h(Text, { color: "magenta" }, "› "),
86
- h(Text, null, draft),
87
- h(Text, { color: "gray" }, "▏"),
88
- ),
89
- h(Box, { marginTop: 1 },
90
- h(Text, { color: "gray" }, "Enter send · Esc clear · q quit"),
91
- ),
92
- );
93
- };
94
- }
95
-
96
- module.exports = { createInkDemo };