@xingular/harness 0.1.7 → 2.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/CHANGELOG.md +20 -0
- package/README.md +36 -13
- package/dist/cli.js +10728 -8033
- package/dist/terminal-pi.js +365 -24
- package/docs/README.md +3 -0
- package/docs/decisions/ADR-0002-native-subagent-lifecycle.md +49 -0
- package/docs/decisions/ADR-0003-shared-asynchronous-subagents.md +70 -0
- package/docs/decisions/ADR-0004-fullscreen-terminal-layout.md +49 -0
- package/docs/decisions/ADR-0005-app-provided-oauth-clients.md +54 -0
- package/docs/terminal-tui.md +109 -13
- package/package.json +5 -4
- package/src/accounts/accounts.test.ts +87 -1
- package/src/accounts/accounts.ts +120 -18
- package/src/core/bus.test.ts +22 -0
- package/src/core/bus.ts +17 -2
- package/src/harness.ts +12 -2
- package/src/hub/hub.test.ts +49 -1
- package/src/hub/hub.ts +122 -6
- package/src/hub/schema.ts +13 -1
- package/src/index.ts +7 -2
- package/src/mcp/connections.ts +39 -12
- package/src/mcp/service.test.ts +49 -3
- package/src/mcp/service.ts +14 -3
- package/src/mcp/types.ts +10 -0
- package/src/memory/curation.test.ts +44 -1
- package/src/memory/dispatch.ts +5 -0
- package/src/memory/maintenance.test.ts +17 -1
- package/src/memory/maintenance.ts +169 -8
- package/src/memory/recall.ts +2 -1
- package/src/memory/trajectory.test.ts +178 -0
- package/src/memory/trajectory.ts +220 -0
- package/src/memory/wiki.ts +2 -1
- package/src/memory/wikiIndex.ts +3 -2
- package/src/plugins/builtin.ts +4 -2
- package/src/plugins/catalogue.test.ts +1 -1
- package/src/server/methods.ts +8 -0
- package/src/server/server.test.ts +20 -1
- package/src/sessions/approvals.test.ts +49 -0
- package/src/sessions/approvals.ts +26 -4
- package/src/sessions/conversation.test.ts +56 -0
- package/src/sessions/lineageJoin.ts +1 -1
- package/src/sessions/planMode.test.ts +40 -0
- package/src/sessions/planMode.ts +57 -0
- package/src/sessions/registry.ts +38 -7
- package/src/sessions/runStore.ts +14 -0
- package/src/sessions/runner.ts +9 -3
- package/src/sessions/sessions.test.ts +69 -7
- package/src/sessions/sessions.ts +47 -39
- package/src/sessions/subagentService.test.ts +159 -0
- package/src/sessions/subagentService.ts +236 -0
- package/src/sessions/subagents.ts +97 -0
- package/src/terminal/controller.ts +73 -10
- package/src/terminal/piExtension.ts +42 -6
- package/src/terminal/socket.test.ts +23 -0
- package/src/terminal/socket.ts +42 -18
- package/src/terminal/standalone.ts +12 -0
- package/src/terminal/terminal.test.ts +150 -15
- package/src/terminal/terminals.ts +113 -5
- package/src/terminal/trajectory.test.ts +66 -0
- package/src/terminal/trajectory.ts +44 -0
- package/src/terminal/tui/application.test.ts +206 -9
- package/src/terminal/tui/application.ts +251 -81
- package/src/terminal/tui/commands.test.ts +70 -9
- package/src/terminal/tui/commands.ts +99 -7
- package/src/terminal/tui/editor.test.ts +56 -27
- package/src/terminal/tui/editor.ts +64 -19
- package/src/terminal/tui/keybindings.test.ts +7 -0
- package/src/terminal/tui/keybindings.ts +9 -1
- package/src/terminal/tui/planMode.test.ts +10 -0
- package/src/terminal/tui/planMode.ts +2 -0
- package/src/terminal/tui/runtime.socket.test.ts +77 -3
- package/src/terminal/tui/runtime.test.ts +10 -0
- package/src/terminal/tui/runtime.ts +24 -9
- package/src/terminal/tui/screen.test.ts +143 -0
- package/src/terminal/tui/screen.ts +121 -0
- package/src/terminal/tui/skillInvocation.test.ts +71 -0
- package/src/terminal/tui/skillInvocation.ts +51 -0
- package/src/terminal/tui/status.test.ts +24 -46
- package/src/terminal/tui/status.ts +42 -69
- package/src/terminal/tui/theme.ts +18 -7
- package/src/terminal/tui/trajectoryPanel.test.ts +99 -0
- package/src/terminal/tui/trajectoryPanel.ts +226 -0
- package/src/terminal/tui/transcript.test.ts +14 -0
- package/src/terminal/tui/transcript.ts +11 -0
- package/src/terminal/tui/ui.ts +2 -2
- package/src/terminal/tui/welcome.ts +4 -4
- package/src/terminal/tui/workingStatus.test.ts +44 -0
- package/src/terminal/tui/workingStatus.ts +238 -0
- package/src/tools/definitions.ts +42 -1
- package/src/tools/maintenance.ts +6 -1
- package/src/tools/spawnSubagent.ts +40 -85
- package/src/tools/types.ts +4 -0
- package/docs/evidence/terminal-2026-10-17/120x40-completed-transcript.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17/40x20-settings-interaction.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17/40x20-settings-keyboard.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17/40x20-welcome.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17/80x24-approval-0.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17/80x24-question.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17/verification.json +0 -130
- package/docs/evidence/terminal-2026-10-17-followup/120x40-completed-transcript.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/40x20-settings-interaction.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/40x20-settings-keyboard.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/40x20-welcome.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/80x24-approval-0.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/80x24-plugin-light.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/80x24-question-batch.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/80x24-question.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/app-bundle/80x24-approval-0.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/app-bundle/80x24-plugin-light.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/app-bundle/80x24-question-batch.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/app-bundle/80x24-question.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/app-bundle/verification.json +0 -95
- package/docs/evidence/terminal-2026-10-17-followup/global-install/80x24-approval-0.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/global-install/80x24-plugin-light.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/global-install/80x24-question-batch.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/global-install/80x24-question.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/global-install/README.md +0 -27
- package/docs/evidence/terminal-2026-10-17-followup/global-install/shell-command-80x24.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/global-install/shell-command.json +0 -18
- package/docs/evidence/terminal-2026-10-17-followup/global-install/verification.json +0 -95
- package/docs/evidence/terminal-2026-10-17-followup/harness-reference-80x24.json.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/harness-reference-final-80x24.json.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/harness-reference-scenario.json +0 -60
- package/docs/evidence/terminal-2026-10-17-followup/live-codex/README.md +0 -24
- package/docs/evidence/terminal-2026-10-17-followup/live-codex/complete-80x24.ansi.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/live-codex/verification.json +0 -57
- package/docs/evidence/terminal-2026-10-17-followup/omp-reference-80x24-early.json.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/omp-reference-80x24.json.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/omp-reference-scenario.json +0 -58
- package/docs/evidence/terminal-2026-10-17-followup/omp-supplemental-static.json.gz +0 -0
- package/docs/evidence/terminal-2026-10-17-followup/rea-artifacts.json +0 -320
- package/docs/evidence/terminal-2026-10-17-followup/reference-comparison.json +0 -30
- package/docs/evidence/terminal-2026-10-17-followup/reference-comparison.md +0 -133
- package/docs/evidence/terminal-2026-10-17-followup/reference-source-observations.json +0 -20
- package/docs/evidence/terminal-2026-10-17-followup/verification.json +0 -207
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"passed": true,
|
|
3
|
-
"implementation": "production standalone CLI + real Pi SDK + loopback OpenAI SSE transport",
|
|
4
|
-
"cli": "/Users/tanny/Documents/Projects/Xingular/Xingular Agent/Harness/dist/cli.js",
|
|
5
|
-
"cliSha256": "2f5df943661a1e89440d0e81d59cd4a5bdb7aaf087a2a930e232b6743d5db093",
|
|
6
|
-
"verifierSha256": "6b7652f0093b12a37bd975fcffa7accc0f34d627022397b7e45923be270abc85",
|
|
7
|
-
"provider": "controlled loopback OpenAI-compatible streaming transport; no external model requests or user credentials",
|
|
8
|
-
"requestCount": 39,
|
|
9
|
-
"profiles": [
|
|
10
|
-
{
|
|
11
|
-
"size": "40x20",
|
|
12
|
-
"checks": [
|
|
13
|
-
"welcome and real configured model",
|
|
14
|
-
"actual settings tabs, section focus, keyboard search/control and Escape return",
|
|
15
|
-
"command autocomplete and real accounts selector",
|
|
16
|
-
"suspend/resume restores cooked/raw terminal modes and command input",
|
|
17
|
-
"Unicode, real streaming/thinking/read/bash/approval/question, expansion, resizing and scrolling",
|
|
18
|
-
"trusted plugin custom overlay, widget, status and disposal",
|
|
19
|
-
"grouped question progress and atomic choice/text answers through real registry",
|
|
20
|
-
"approval deny and Escape cancellation prevent actual tool execution",
|
|
21
|
-
"question Escape cancellation settles pending tools and interrupts run",
|
|
22
|
-
"new session, explicit scoped resume and session naming",
|
|
23
|
-
"actual stream cancellation and interrupted run record",
|
|
24
|
-
"explicit account switching, process restart and real run on newly pinned account",
|
|
25
|
-
"fatal asynchronous plugin failure exits 1 and restores terminal modes",
|
|
26
|
-
"plugin startup failure exits 1 and restores terminal modes"
|
|
27
|
-
],
|
|
28
|
-
"persistedRunCount": 7,
|
|
29
|
-
"exitCode": 0,
|
|
30
|
-
"termiosRestored": true,
|
|
31
|
-
"bracketedPasteDisabled": true,
|
|
32
|
-
"cursorShown": true,
|
|
33
|
-
"fatalCleanup": {
|
|
34
|
-
"exitCode": 1,
|
|
35
|
-
"termiosRestored": true,
|
|
36
|
-
"bracketedPasteDisabled": true,
|
|
37
|
-
"cursorShown": true
|
|
38
|
-
},
|
|
39
|
-
"startupCleanup": {
|
|
40
|
-
"exitCode": 1,
|
|
41
|
-
"termiosRestored": true,
|
|
42
|
-
"bracketedPasteDisabled": true,
|
|
43
|
-
"cursorShown": true
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
"size": "80x24",
|
|
48
|
-
"checks": [
|
|
49
|
-
"welcome and real configured model",
|
|
50
|
-
"actual settings tabs, section focus, keyboard search/control and Escape return",
|
|
51
|
-
"command autocomplete and real accounts selector",
|
|
52
|
-
"suspend/resume restores cooked/raw terminal modes and command input",
|
|
53
|
-
"Unicode, real streaming/thinking/read/bash/approval/question, expansion, resizing and scrolling",
|
|
54
|
-
"trusted plugin custom overlay, widget, status and disposal",
|
|
55
|
-
"grouped question progress and atomic choice/text answers through real registry",
|
|
56
|
-
"approval deny and Escape cancellation prevent actual tool execution",
|
|
57
|
-
"question Escape cancellation settles pending tools and interrupts run",
|
|
58
|
-
"new session, explicit scoped resume and session naming",
|
|
59
|
-
"actual stream cancellation and interrupted run record",
|
|
60
|
-
"explicit account switching, process restart and real run on newly pinned account",
|
|
61
|
-
"fatal asynchronous plugin failure exits 1 and restores terminal modes",
|
|
62
|
-
"plugin startup failure exits 1 and restores terminal modes"
|
|
63
|
-
],
|
|
64
|
-
"persistedRunCount": 7,
|
|
65
|
-
"exitCode": 0,
|
|
66
|
-
"termiosRestored": true,
|
|
67
|
-
"bracketedPasteDisabled": true,
|
|
68
|
-
"cursorShown": true,
|
|
69
|
-
"fatalCleanup": {
|
|
70
|
-
"exitCode": 1,
|
|
71
|
-
"termiosRestored": true,
|
|
72
|
-
"bracketedPasteDisabled": true,
|
|
73
|
-
"cursorShown": true
|
|
74
|
-
},
|
|
75
|
-
"startupCleanup": {
|
|
76
|
-
"exitCode": 1,
|
|
77
|
-
"termiosRestored": true,
|
|
78
|
-
"bracketedPasteDisabled": true,
|
|
79
|
-
"cursorShown": true
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
"size": "120x40",
|
|
84
|
-
"checks": [
|
|
85
|
-
"welcome and real configured model",
|
|
86
|
-
"actual settings tabs, section focus, keyboard search/control and Escape return",
|
|
87
|
-
"command autocomplete and real accounts selector",
|
|
88
|
-
"suspend/resume restores cooked/raw terminal modes and command input",
|
|
89
|
-
"Unicode, real streaming/thinking/read/bash/approval/question, expansion, resizing and scrolling",
|
|
90
|
-
"trusted plugin custom overlay, widget, status and disposal",
|
|
91
|
-
"grouped question progress and atomic choice/text answers through real registry",
|
|
92
|
-
"approval deny and Escape cancellation prevent actual tool execution",
|
|
93
|
-
"question Escape cancellation settles pending tools and interrupts run",
|
|
94
|
-
"new session, explicit scoped resume and session naming",
|
|
95
|
-
"actual stream cancellation and interrupted run record",
|
|
96
|
-
"explicit account switching, process restart and real run on newly pinned account",
|
|
97
|
-
"fatal asynchronous plugin failure exits 1 and restores terminal modes",
|
|
98
|
-
"plugin startup failure exits 1 and restores terminal modes"
|
|
99
|
-
],
|
|
100
|
-
"persistedRunCount": 7,
|
|
101
|
-
"exitCode": 0,
|
|
102
|
-
"termiosRestored": true,
|
|
103
|
-
"bracketedPasteDisabled": true,
|
|
104
|
-
"cursorShown": true,
|
|
105
|
-
"fatalCleanup": {
|
|
106
|
-
"exitCode": 1,
|
|
107
|
-
"termiosRestored": true,
|
|
108
|
-
"bracketedPasteDisabled": true,
|
|
109
|
-
"cursorShown": true
|
|
110
|
-
},
|
|
111
|
-
"startupCleanup": {
|
|
112
|
-
"exitCode": 1,
|
|
113
|
-
"termiosRestored": true,
|
|
114
|
-
"bracketedPasteDisabled": true,
|
|
115
|
-
"cursorShown": true
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
],
|
|
119
|
-
"captures": [
|
|
120
|
-
{
|
|
121
|
-
"file": "40x20-welcome.ansi.gz",
|
|
122
|
-
"kind": "actual PTY cumulative raw ANSI stream",
|
|
123
|
-
"columns": 40,
|
|
124
|
-
"rows": 20,
|
|
125
|
-
"rawBytes": 3085,
|
|
126
|
-
"rawSha256": "5ad9d6b7743730c00331865a713ade17a96d8a82254073eff8f7123f78ba0dfd",
|
|
127
|
-
"archiveBytes": 647,
|
|
128
|
-
"archiveSha256": "4e1d09e9e2b8ab6dd716c27342cb427e6d327b4517b2d5a1f9d6abe507ae6150"
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
"file": "40x20-settings-interaction.ansi.gz",
|
|
132
|
-
"kind": "actual PTY cumulative raw ANSI stream",
|
|
133
|
-
"columns": 40,
|
|
134
|
-
"rows": 20,
|
|
135
|
-
"rawBytes": 10579,
|
|
136
|
-
"rawSha256": "6e8cb197fd6444abd5b34500d14d36def96d945f6ffe75b70c107511a2fc6f92",
|
|
137
|
-
"archiveBytes": 1250,
|
|
138
|
-
"archiveSha256": "33227bf1354591624311e69f016862cea964aeb0d2cf6af0274bc8c49b6aa39c"
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
"file": "40x20-settings-keyboard.ansi.gz",
|
|
142
|
-
"kind": "actual PTY cumulative raw ANSI stream",
|
|
143
|
-
"columns": 40,
|
|
144
|
-
"rows": 20,
|
|
145
|
-
"rawBytes": 12779,
|
|
146
|
-
"rawSha256": "6071b778e316c86fdc6976ac024faffcf75221ba1043dfbd524e32cfcdff5e79",
|
|
147
|
-
"archiveBytes": 1387,
|
|
148
|
-
"archiveSha256": "722b555638b343520b7896527fb9287c71a2a9ba55e9a2f7c1ea573058db3a22"
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
"file": "80x24-approval-0.ansi.gz",
|
|
152
|
-
"kind": "actual PTY cumulative raw ANSI stream",
|
|
153
|
-
"columns": 80,
|
|
154
|
-
"rows": 24,
|
|
155
|
-
"rawBytes": 63082,
|
|
156
|
-
"rawSha256": "d182c53020bc8f9dae3b3f910ab78bbccae229b41fb927983b26b9352e13c7d1",
|
|
157
|
-
"archiveBytes": 5420,
|
|
158
|
-
"archiveSha256": "c00dd2d226ff8d0d8455311b903791dff1a4fc2b9fc4921ffc08837290570c99"
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
"file": "80x24-question.ansi.gz",
|
|
162
|
-
"kind": "actual PTY cumulative raw ANSI stream",
|
|
163
|
-
"columns": 80,
|
|
164
|
-
"rows": 24,
|
|
165
|
-
"rawBytes": 73627,
|
|
166
|
-
"rawSha256": "50c7fc4da8748ddcd2868007cf944e2294a9d55d035c60ad30cbe8820068682e",
|
|
167
|
-
"archiveBytes": 5834,
|
|
168
|
-
"archiveSha256": "d5371974389a6f99758d3d4e3bc820a69a48aa05fe344b3d0f4d3143cdd44298"
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
"file": "80x24-plugin-light.ansi.gz",
|
|
172
|
-
"kind": "actual PTY cumulative raw ANSI stream",
|
|
173
|
-
"columns": 120,
|
|
174
|
-
"rows": 30,
|
|
175
|
-
"rawBytes": 118891,
|
|
176
|
-
"rawSha256": "089d74da63cf763e1a06faf0264966d5b8d788518eda880ed91fb556fe844ab5",
|
|
177
|
-
"archiveBytes": 7618,
|
|
178
|
-
"archiveSha256": "55fe9f7742387b7e10692711daef697fe1f55af76486554c40290eb039c4a1fa"
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
"file": "80x24-question-batch.ansi.gz",
|
|
182
|
-
"kind": "actual PTY cumulative raw ANSI stream",
|
|
183
|
-
"columns": 120,
|
|
184
|
-
"rows": 30,
|
|
185
|
-
"rawBytes": 169983,
|
|
186
|
-
"rawSha256": "aee0560c4fb6bb878d187827ab8c40ceee81dda1022a98f663f8bb079e9bc2f6",
|
|
187
|
-
"archiveBytes": 8742,
|
|
188
|
-
"archiveSha256": "11ae7c4c7b3991014dbef17d126608104661c0776198e51e519ba35ad557dd35"
|
|
189
|
-
},
|
|
190
|
-
{
|
|
191
|
-
"file": "120x40-completed-transcript.ansi.gz",
|
|
192
|
-
"kind": "actual PTY cumulative raw ANSI stream",
|
|
193
|
-
"columns": 120,
|
|
194
|
-
"rows": 40,
|
|
195
|
-
"rawBytes": 140149,
|
|
196
|
-
"rawSha256": "abdbba2e7db4a94d25b82826539e1acbb9e59be7bb9d15167eeeee8f3838644d",
|
|
197
|
-
"archiveBytes": 7935,
|
|
198
|
-
"archiveSha256": "2f79e0637ed13a1fbf69d237eb2e644939fd4e3bb5cb257e5b6910fb19981012"
|
|
199
|
-
}
|
|
200
|
-
],
|
|
201
|
-
"limits": [
|
|
202
|
-
"The AgentSession, frontend, native tools, authorization and run writer are production code.",
|
|
203
|
-
"The controlled local transport supplies deterministic model responses and usage fixtures.",
|
|
204
|
-
"These functional checks do not establish external provider OAuth/service availability or visual equivalence to OMP.",
|
|
205
|
-
"Each compressed capture is a cumulative actual ANSI stream from PTY startup through the named interaction. Replay at its recorded dimensions."
|
|
206
|
-
]
|
|
207
|
-
}
|