@dotdrelle/wiki-manager 0.15.41 → 0.15.42
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/package.json +2 -2
- package/src/cli/wiki-manager.js +35 -2
- package/src/commands/slash.js +36 -8
- package/src/core/agentEvents.js +23 -0
- package/src/core/agentEvents.test.js +32 -0
- package/src/core/buildInfo.json +1 -1
- package/src/core/compose.js +32 -0
- package/src/core/dockerCompose.test.js +32 -0
- package/src/core/mcp.js +1 -1
- package/src/core/otherWorkspacesRunning.test.js +51 -0
- package/src/core/profileServiceStatus.test.js +26 -2
- package/src/core/toolLoop.js +32 -7
- package/src/core/toolLoop.test.js +95 -0
- package/src/core/wikiSetup.js +50 -7
- package/src/core/wikiWorkspace.test.js +30 -0
- package/src/core/wikirc.test.js +121 -2
- package/src/core/workspaceInherit.js +149 -0
- package/src/core/workspaceInherit.test.js +181 -0
- package/src/runtime/server.test.js +28 -0
- package/src/shell/repl.js +17 -6
- package/src/shell/setupWizardModality.test.js +55 -0
- package/src/shell/tui.tsx +29 -9
- package/wiki-workspace +10 -4
package/src/shell/tui.tsx
CHANGED
|
@@ -381,7 +381,11 @@ function App(props: {
|
|
|
381
381
|
input={state.input()}
|
|
382
382
|
busy={state.busy()}
|
|
383
383
|
chatMode={state.chatMode()}
|
|
384
|
-
|
|
384
|
+
// The composer must lose focus for EVERY modal, not just the file
|
|
385
|
+
// editor. While the setup wizard was open the input stayed focused
|
|
386
|
+
// underneath it, so answering a wizard question also typed into the
|
|
387
|
+
// chat box at the bottom of the window.
|
|
388
|
+
chatFocused={!state.activeEditor() && screen() === 'main'}
|
|
385
389
|
setInput={state.setInput}
|
|
386
390
|
submit={submit}
|
|
387
391
|
conversationRows={conversationRows()}
|
|
@@ -433,17 +437,33 @@ function App(props: {
|
|
|
433
437
|
onSave={state.saveEditor}
|
|
434
438
|
onCancel={state.closeEditor}
|
|
435
439
|
/>
|
|
440
|
+
{/*
|
|
441
|
+
Opaque backdrop, same treatment WizardApp gives the standalone
|
|
442
|
+
wizard. Without it the dialog floated over a live two-pane layout:
|
|
443
|
+
the panes showed through around its border and the whole thing read
|
|
444
|
+
as one garbled screen rather than as a modal.
|
|
445
|
+
*/}
|
|
436
446
|
{screen() === 'setup' ? (
|
|
437
|
-
<
|
|
438
|
-
|
|
439
|
-
|
|
447
|
+
<box
|
|
448
|
+
position="absolute"
|
|
449
|
+
left={0}
|
|
450
|
+
top={0}
|
|
440
451
|
width={dimensions().width}
|
|
441
452
|
height={dimensions().height}
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
453
|
+
zIndex={39}
|
|
454
|
+
backgroundColor="#0B0D12"
|
|
455
|
+
>
|
|
456
|
+
<SetupWizard
|
|
457
|
+
mode="setup"
|
|
458
|
+
session={state.session}
|
|
459
|
+
width={dimensions().width}
|
|
460
|
+
height={dimensions().height}
|
|
461
|
+
initialRoute="workspace-name"
|
|
462
|
+
closeOnDone
|
|
463
|
+
onComplete={closeSetup}
|
|
464
|
+
onClose={closeSetup}
|
|
465
|
+
/>
|
|
466
|
+
</box>
|
|
447
467
|
) : null}
|
|
448
468
|
</box>
|
|
449
469
|
}
|
package/wiki-workspace
CHANGED
|
@@ -70,13 +70,19 @@ parse_global_options() {
|
|
|
70
70
|
export REQUESTS_CA_BUNDLE="$CACERT_PATH"
|
|
71
71
|
export CURL_CA_BUNDLE="$CACERT_PATH"
|
|
72
72
|
fi
|
|
73
|
-
|
|
73
|
+
# `${arr[@]}` on an EMPTY array is an unbound-variable error under `set -u`
|
|
74
|
+
# in bash <= 4.3 — which includes the /bin/bash 3.2 macOS still ships. Every
|
|
75
|
+
# optional array in this script therefore goes through the `${arr[@]+…}`
|
|
76
|
+
# guard (see compose_env_args, override_args, only_services…); these two were
|
|
77
|
+
# missed, so any invocation without a global option died on this line before
|
|
78
|
+
# reaching its subcommand.
|
|
79
|
+
set -- ${parsed[@]+"${parsed[@]}"}
|
|
74
80
|
PARSED_ARGS=("$@")
|
|
75
81
|
}
|
|
76
82
|
|
|
77
83
|
PARSED_ARGS=()
|
|
78
84
|
parse_global_options "$@"
|
|
79
|
-
set -- "${PARSED_ARGS[@]}"
|
|
85
|
+
set -- ${PARSED_ARGS[@]+"${PARSED_ARGS[@]}"}
|
|
80
86
|
|
|
81
87
|
usage() {
|
|
82
88
|
cat <<'EOF'
|
|
@@ -338,7 +344,7 @@ agents_compose() {
|
|
|
338
344
|
logs)
|
|
339
345
|
local log_args=()
|
|
340
346
|
read_lines_into_array log_args logs_args "$@"
|
|
341
|
-
_agents_dc logs "${log_args[@]}"
|
|
347
|
+
_agents_dc logs ${log_args[@]+"${log_args[@]}"}
|
|
342
348
|
;;
|
|
343
349
|
pull)
|
|
344
350
|
[[ $# -eq 0 ]] || die "agents pull does not take arguments"
|
|
@@ -1452,7 +1458,7 @@ main() {
|
|
|
1452
1458
|
logs)
|
|
1453
1459
|
local log_args=()
|
|
1454
1460
|
read_lines_into_array log_args logs_args "$@"
|
|
1455
|
-
compose_for_workspace "$workspace" logs "${log_args[@]}" serve mcp-http production-mcp
|
|
1461
|
+
compose_for_workspace "$workspace" logs ${log_args[@]+"${log_args[@]}"} serve mcp-http production-mcp
|
|
1456
1462
|
;;
|
|
1457
1463
|
serve)
|
|
1458
1464
|
local open_browser=0
|