@f5-sales-demo/xcsh 19.51.2 → 19.51.5
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 +17 -0
- package/examples/custom-tools/hello/index.ts +1 -1
- package/examples/custom-tools/todo/index.ts +1 -1
- package/examples/extensions/api-demo.ts +1 -1
- package/examples/extensions/chalk-logger.ts +1 -1
- package/examples/extensions/hello.ts +1 -1
- package/examples/extensions/pirate.ts +1 -1
- package/examples/extensions/plan-mode.ts +2 -2
- package/examples/extensions/todo.ts +3 -3
- package/examples/extensions/tools.ts +3 -3
- package/examples/extensions/with-deps/index.ts +1 -1
- package/examples/hooks/auto-commit-on-exit.ts +1 -1
- package/examples/hooks/confirm-destructive.ts +1 -1
- package/examples/hooks/custom-compaction.ts +3 -3
- package/examples/hooks/dirty-repo-guard.ts +1 -1
- package/examples/hooks/file-trigger.ts +1 -1
- package/examples/hooks/git-checkpoint.ts +1 -1
- package/examples/hooks/handoff.ts +3 -3
- package/examples/hooks/permission-gate.ts +1 -1
- package/examples/hooks/protected-paths.ts +1 -1
- package/examples/hooks/qna.ts +3 -3
- package/examples/hooks/status-line.ts +1 -1
- package/examples/sdk/01-minimal.ts +1 -1
- package/examples/sdk/02-custom-model.ts +3 -3
- package/examples/sdk/03-custom-prompt.ts +1 -1
- package/examples/sdk/04-skills.ts +1 -1
- package/examples/sdk/06-extensions.ts +2 -2
- package/examples/sdk/06-hooks.ts +1 -1
- package/examples/sdk/07-context-files.ts +1 -1
- package/examples/sdk/08-prompt-templates.ts +1 -6
- package/examples/sdk/08-slash-commands.ts +1 -6
- package/examples/sdk/09-api-keys-and-oauth.ts +1 -1
- package/examples/sdk/11-sessions.ts +1 -1
- package/package.json +8 -8
- package/scripts/extension-uat-harness.ts +2 -2
- package/scripts/format-prompts.ts +1 -1
- package/scripts/generate-api-spec-index.ts +1 -1
- package/scripts/generate-branding-index.ts +1 -1
- package/scripts/generate-build-info.ts +1 -1
- package/scripts/generate-terraform-index.ts +1 -1
- package/scripts/mermaid-gallery.ts +2 -2
- package/src/async/job-manager.ts +1 -1
- package/src/autoresearch/dashboard.ts +1 -1
- package/src/autoresearch/helpers.ts +1 -1
- package/src/autoresearch/index.ts +2 -2
- package/src/autoresearch/tools/init-experiment.ts +2 -2
- package/src/autoresearch/tools/log-experiment.ts +3 -3
- package/src/autoresearch/tools/run-experiment.ts +2 -2
- package/src/autoresearch/types.ts +1 -1
- package/src/browser/provider.ts +18 -3
- package/src/capability/index.ts +1 -1
- package/src/cli/agents-cli.ts +1 -1
- package/src/cli/args.ts +2 -2
- package/src/cli/chrome-cli.ts +112 -5
- package/src/cli/config-cli.ts +1 -1
- package/src/cli/file-processor.ts +2 -2
- package/src/cli/grep-cli.ts +2 -2
- package/src/cli/initial-message.ts +1 -1
- package/src/cli/jupyter-cli.ts +1 -1
- package/src/cli/list-models.ts +2 -2
- package/src/cli/plugin-cli.ts +3 -3
- package/src/cli/read-cli.ts +1 -1
- package/src/cli/session-picker.ts +1 -1
- package/src/cli/setup-cli.ts +2 -2
- package/src/cli/shell-cli.ts +2 -2
- package/src/cli/ssh-cli.ts +1 -1
- package/src/cli/stats-cli.ts +3 -3
- package/src/cli/update-cli.ts +3 -3
- package/src/cli/web-search-cli.ts +2 -2
- package/src/cli.ts +4 -4
- package/src/commands/agents.ts +1 -1
- package/src/commands/chrome-host.ts +28 -2
- package/src/commands/chrome.ts +1 -1
- package/src/commands/commit.ts +1 -1
- package/src/commands/config.ts +1 -1
- package/src/commands/grep.ts +2 -2
- package/src/commands/grievances.ts +1 -1
- package/src/commands/jupyter.ts +1 -1
- package/src/commands/launch.ts +3 -3
- package/src/commands/plugin.ts +1 -1
- package/src/commands/read.ts +1 -1
- package/src/commands/setup.ts +1 -1
- package/src/commands/shell.ts +1 -1
- package/src/commands/ssh.ts +1 -1
- package/src/commands/stats.ts +1 -1
- package/src/commands/update.ts +1 -1
- package/src/commands/web-search.ts +1 -1
- package/src/commit/agentic/agent.ts +4 -4
- package/src/commit/agentic/index.ts +1 -1
- package/src/commit/agentic/tools/analyze-file.ts +1 -1
- package/src/commit/analysis/conventional.ts +4 -4
- package/src/commit/analysis/summary.ts +4 -4
- package/src/commit/changelog/generate.ts +4 -4
- package/src/commit/changelog/index.ts +3 -3
- package/src/commit/map-reduce/index.ts +3 -3
- package/src/commit/map-reduce/map-phase.ts +4 -4
- package/src/commit/map-reduce/reduce-phase.ts +4 -4
- package/src/commit/model-selection.ts +2 -2
- package/src/commit/pipeline.ts +3 -3
- package/src/commit/utils.ts +1 -1
- package/src/config/auto-config.ts +1 -1
- package/src/config/file-lock.ts +1 -1
- package/src/config/keybindings.ts +3 -3
- package/src/config/model-equivalence.ts +1 -1
- package/src/config/model-registry.ts +2 -2
- package/src/config/model-resolver.ts +2 -2
- package/src/config/prompt-templates.ts +2 -2
- package/src/config/resolve-config-value.ts +1 -1
- package/src/config/settings-schema.ts +1 -1
- package/src/config/settings.ts +1 -1
- package/src/config.ts +1 -1
- package/src/cursor.ts +2 -2
- package/src/dap/client.ts +1 -1
- package/src/dap/config.ts +1 -1
- package/src/dap/session.ts +1 -1
- package/src/dap/types.ts +1 -1
- package/src/debug/index.ts +3 -3
- package/src/debug/log-formatting.ts +1 -1
- package/src/debug/log-viewer.ts +2 -2
- package/src/debug/report-bundle.ts +2 -2
- package/src/debug/system-info.ts +1 -1
- package/src/discovery/builtin.ts +1 -1
- package/src/discovery/claude-plugins.ts +1 -1
- package/src/discovery/claude.ts +1 -1
- package/src/discovery/codex.ts +1 -1
- package/src/discovery/cursor.ts +1 -1
- package/src/discovery/gemini.ts +1 -1
- package/src/discovery/github.ts +1 -1
- package/src/discovery/helpers.ts +3 -3
- package/src/discovery/language.ts +1 -1
- package/src/discovery/mcp-json.ts +1 -1
- package/src/discovery/opencode.ts +1 -1
- package/src/discovery/ssh.ts +1 -1
- package/src/discovery/vscode.ts +1 -1
- package/src/discovery/windsurf.ts +1 -1
- package/src/edit/diff.ts +1 -1
- package/src/edit/index.ts +2 -2
- package/src/edit/modes/chunk.ts +4 -4
- package/src/edit/modes/hashline.ts +2 -2
- package/src/edit/modes/patch.ts +3 -3
- package/src/edit/modes/replace.ts +2 -2
- package/src/edit/normalize.ts +1 -1
- package/src/edit/renderer.ts +3 -3
- package/src/exa/mcp-client.ts +1 -1
- package/src/exa/render.ts +3 -3
- package/src/exa/search.ts +1 -1
- package/src/exec/bash-executor.ts +1 -1
- package/src/exec/exec.ts +1 -1
- package/src/export/custom-share.ts +1 -1
- package/src/export/html/index.ts +2 -2
- package/src/export/ttsr.ts +1 -1
- package/src/extensibility/custom-commands/bundled/ci-green/index.ts +1 -1
- package/src/extensibility/custom-commands/bundled/review/index.ts +1 -1
- package/src/extensibility/custom-commands/loader.ts +2 -2
- package/src/extensibility/custom-tools/loader.ts +4 -4
- package/src/extensibility/custom-tools/types.ts +4 -4
- package/src/extensibility/custom-tools/wrapper.ts +1 -1
- package/src/extensibility/extensions/loader.ts +7 -7
- package/src/extensibility/extensions/runner.ts +4 -4
- package/src/extensibility/extensions/types.ts +5 -5
- package/src/extensibility/extensions/wrapper.ts +2 -2
- package/src/extensibility/hooks/loader.ts +2 -2
- package/src/extensibility/hooks/runner.ts +3 -3
- package/src/extensibility/hooks/tool-wrapper.ts +1 -1
- package/src/extensibility/hooks/types.ts +4 -4
- package/src/extensibility/plugins/doctor.ts +1 -1
- package/src/extensibility/plugins/installer.ts +1 -1
- package/src/extensibility/plugins/loader.ts +1 -1
- package/src/extensibility/plugins/manager.ts +1 -1
- package/src/extensibility/plugins/marketplace/cache.ts +1 -1
- package/src/extensibility/plugins/marketplace/fetcher.ts +1 -1
- package/src/extensibility/plugins/marketplace/manager.ts +1 -1
- package/src/extensibility/plugins/marketplace/prerequisites.ts +1 -1
- package/src/extensibility/plugins/marketplace/registry.ts +1 -1
- package/src/extensibility/plugins/marketplace/source-resolver.ts +1 -1
- package/src/extensibility/skills.ts +1 -1
- package/src/extensibility/slash-commands.ts +2 -2
- package/src/index.ts +3 -3
- package/src/internal-urls/agent-protocol.ts +1 -1
- package/src/internal-urls/artifact-protocol.ts +1 -1
- package/src/internal-urls/branding-index.generated.ts +7 -7
- package/src/internal-urls/build-info-runtime.ts +5 -5
- package/src/internal-urls/build-info.generated.ts +11 -11
- package/src/internal-urls/computer-profile.ts +1 -1
- package/src/internal-urls/console-catalog.generated.ts +1036 -524
- package/src/internal-urls/console-field-metadata.generated.ts +4651 -4834
- package/src/internal-urls/docs-index.generated.ts +229 -232
- package/src/internal-urls/local-protocol.ts +1 -1
- package/src/internal-urls/memory-protocol.ts +1 -1
- package/src/internal-urls/profile-collectors.ts +1 -1
- package/src/internal-urls/terraform-index.generated.ts +3 -3
- package/src/internal-urls/user-profile.ts +1 -1
- package/src/internal-urls/xcsh-protocol.ts +2 -2
- package/src/ipy/executor.ts +1 -1
- package/src/ipy/gateway-coordinator.ts +1 -1
- package/src/ipy/kernel.ts +1 -1
- package/src/ipy/modules.ts +1 -1
- package/src/ipy/runtime.ts +1 -1
- package/src/lsp/client.ts +1 -1
- package/src/lsp/config.ts +1 -1
- package/src/lsp/index.ts +2 -2
- package/src/lsp/lspmux.ts +1 -1
- package/src/lsp/render.ts +3 -3
- package/src/lsp/types.ts +2 -2
- package/src/lsp/utils.ts +2 -2
- package/src/main.ts +4 -4
- package/src/mcp/client.ts +1 -1
- package/src/mcp/config-writer.ts +1 -1
- package/src/mcp/config.ts +1 -1
- package/src/mcp/discoverable-tool-metadata.ts +1 -1
- package/src/mcp/json-rpc.ts +1 -1
- package/src/mcp/loader.ts +1 -1
- package/src/mcp/manager.ts +1 -1
- package/src/mcp/oauth-flow.ts +3 -3
- package/src/mcp/render.ts +1 -1
- package/src/mcp/smithery-auth.ts +2 -2
- package/src/mcp/smithery-registry.ts +1 -1
- package/src/mcp/tool-bridge.ts +3 -3
- package/src/mcp/tool-cache.ts +1 -1
- package/src/mcp/transports/http.ts +1 -1
- package/src/mcp/transports/stdio.ts +1 -1
- package/src/mcp/types.ts +1 -1
- package/src/memories/index.ts +3 -3
- package/src/modes/acp/acp-agent.ts +2 -2
- package/src/modes/components/agent-dashboard.ts +3 -3
- package/src/modes/components/assistant-message.ts +3 -3
- package/src/modes/components/bash-execution.ts +2 -2
- package/src/modes/components/bordered-loader.ts +1 -1
- package/src/modes/components/branch-summary-message.ts +1 -1
- package/src/modes/components/btw-panel.ts +1 -1
- package/src/modes/components/compaction-summary-message.ts +1 -1
- package/src/modes/components/context-add-wizard.ts +112 -13
- package/src/modes/components/countdown-timer.ts +1 -1
- package/src/modes/components/custom-editor.ts +1 -1
- package/src/modes/components/custom-message.ts +3 -3
- package/src/modes/components/diff.ts +1 -1
- package/src/modes/components/dynamic-border.ts +1 -1
- package/src/modes/components/extensions/extension-dashboard.ts +1 -1
- package/src/modes/components/extensions/extension-list.ts +1 -1
- package/src/modes/components/extensions/inspector-panel.ts +1 -1
- package/src/modes/components/extensions/state-manager.ts +1 -1
- package/src/modes/components/footer.ts +3 -3
- package/src/modes/components/gutter-block.ts +1 -1
- package/src/modes/components/history-search.ts +1 -1
- package/src/modes/components/hook-editor.ts +1 -1
- package/src/modes/components/hook-input.ts +1 -1
- package/src/modes/components/hook-message.ts +3 -3
- package/src/modes/components/hook-selector.ts +1 -1
- package/src/modes/components/keybinding-hints.ts +1 -1
- package/src/modes/components/login-dialog.ts +2 -2
- package/src/modes/components/mcp-add-wizard.ts +2 -2
- package/src/modes/components/model-selector.ts +3 -3
- package/src/modes/components/oauth-selector.ts +2 -2
- package/src/modes/components/plugin-selector.ts +1 -1
- package/src/modes/components/plugin-settings.ts +1 -1
- package/src/modes/components/plugins/plugin-dashboard.ts +3 -3
- package/src/modes/components/plugins/plugin-inspector-pane.ts +2 -2
- package/src/modes/components/plugins/plugin-list-pane.ts +3 -3
- package/src/modes/components/plugins/state-manager.ts +1 -1
- package/src/modes/components/python-execution.ts +2 -2
- package/src/modes/components/queue-mode-selector.ts +1 -1
- package/src/modes/components/read-tool-group.ts +2 -2
- package/src/modes/components/session-observer-overlay.ts +3 -3
- package/src/modes/components/session-selector.ts +1 -1
- package/src/modes/components/settings-defs.ts +2 -2
- package/src/modes/components/settings-selector.ts +3 -3
- package/src/modes/components/show-images-selector.ts +1 -1
- package/src/modes/components/skill-message.ts +3 -3
- package/src/modes/components/status-line/segments.ts +3 -3
- package/src/modes/components/status-line-segment-editor.ts +1 -1
- package/src/modes/components/status-line.ts +3 -3
- package/src/modes/components/theme-selector.ts +1 -1
- package/src/modes/components/thinking-selector.ts +2 -2
- package/src/modes/components/todo-reminder.ts +1 -1
- package/src/modes/components/tool-execution.ts +4 -4
- package/src/modes/components/tree-selector.ts +2 -2
- package/src/modes/components/ttsr-notification.ts +1 -1
- package/src/modes/components/user-message-selector.ts +1 -1
- package/src/modes/components/user-message.ts +1 -1
- package/src/modes/components/visual-truncate.ts +1 -1
- package/src/modes/components/welcome-checks.ts +3 -3
- package/src/modes/components/welcome.ts +2 -2
- package/src/modes/controllers/btw-controller.ts +3 -3
- package/src/modes/controllers/chord-routing.ts +1 -1
- package/src/modes/controllers/command-controller.ts +3 -3
- package/src/modes/controllers/event-controller.ts +3 -3
- package/src/modes/controllers/extension-ui-controller.ts +3 -3
- package/src/modes/controllers/input-controller.ts +4 -4
- package/src/modes/controllers/mcp-command-controller.ts +2 -2
- package/src/modes/controllers/selector-controller.ts +5 -5
- package/src/modes/controllers/ssh-command-controller.ts +2 -2
- package/src/modes/index.ts +2 -2
- package/src/modes/interactive-mode.ts +5 -5
- package/src/modes/print-mode.ts +1 -1
- package/src/modes/prompt-action-autocomplete.ts +1 -1
- package/src/modes/rpc/host-tools.ts +2 -2
- package/src/modes/rpc/rpc-client.ts +3 -3
- package/src/modes/rpc/rpc-mode.ts +1 -1
- package/src/modes/rpc/rpc-types.ts +2 -2
- package/src/modes/shared.ts +1 -1
- package/src/modes/theme/mermaid-cache.ts +1 -1
- package/src/modes/theme/mermaid-palette.ts +1 -1
- package/src/modes/theme/theme.ts +6 -6
- package/src/modes/types.ts +3 -3
- package/src/modes/utils/hotkeys-markdown.ts +1 -1
- package/src/modes/utils/keybinding-matchers.ts +1 -1
- package/src/modes/utils/read-group-outcome-aggregator.ts +1 -1
- package/src/modes/utils/sanitize-error-message.ts +1 -1
- package/src/modes/utils/tools-markdown.ts +1 -1
- package/src/modes/utils/ui-helpers.ts +3 -3
- package/src/plan-mode/approved-plan.ts +1 -1
- package/src/prompts/system/system-prompt.md +1 -1
- package/src/prompts/tools/browser.md +1 -0
- package/src/resource-management/index.ts +3 -3
- package/src/sdk.ts +7 -7
- package/src/secrets/index.ts +1 -1
- package/src/secrets/obfuscator.ts +1 -1
- package/src/services/xcsh-api-client.ts +1 -1
- package/src/services/xcsh-context-command.ts +1 -1
- package/src/services/xcsh-context.ts +2 -2
- package/src/services/xcsh-env.ts +2 -2
- package/src/services/xcsh-knowledge.ts +2 -2
- package/src/services/xcsh-table.ts +1 -1
- package/src/session/agent-session.ts +5 -5
- package/src/session/agent-storage.ts +3 -3
- package/src/session/auth-storage.ts +3 -3
- package/src/session/blob-store.ts +1 -1
- package/src/session/compaction/branch-summarization.ts +4 -4
- package/src/session/compaction/compaction.ts +7 -7
- package/src/session/compaction/pruning.ts +2 -2
- package/src/session/compaction/utils.ts +3 -3
- package/src/session/history-storage.ts +1 -1
- package/src/session/messages.ts +4 -4
- package/src/session/session-dump-format.ts +3 -3
- package/src/session/session-manager.ts +4 -4
- package/src/session/session-storage.ts +1 -1
- package/src/session/streaming-output.ts +1 -1
- package/src/session/tool-choice-queue.ts +1 -1
- package/src/slash-commands/builtin-registry.ts +3 -3
- package/src/slash-commands/export-command.ts +2 -2
- package/src/slash-commands/resource-commands.ts +2 -2
- package/src/ssh/config-writer.ts +1 -1
- package/src/ssh/connection-manager.ts +1 -1
- package/src/ssh/ssh-executor.ts +1 -1
- package/src/ssh/sshfs-mount.ts +1 -1
- package/src/stt/downloader.ts +1 -1
- package/src/stt/recorder.ts +1 -1
- package/src/stt/stt-controller.ts +1 -1
- package/src/stt/transcriber.ts +1 -1
- package/src/system-prompt.ts +2 -2
- package/src/task/agents.ts +2 -2
- package/src/task/commands.ts +1 -1
- package/src/task/discovery.ts +1 -1
- package/src/task/executor.ts +2 -2
- package/src/task/index.ts +3 -3
- package/src/task/isolation-backend.ts +2 -2
- package/src/task/render.ts +3 -3
- package/src/task/subprocess-tool-registry.ts +1 -1
- package/src/task/template.ts +1 -1
- package/src/task/types.ts +3 -3
- package/src/task/worktree.ts +2 -2
- package/src/task/xcsh-command.ts +1 -1
- package/src/thinking.ts +2 -2
- package/src/tools/action-renderer.ts +2 -2
- package/src/tools/ask.ts +3 -3
- package/src/tools/ast-edit.ts +5 -5
- package/src/tools/ast-grep.ts +5 -5
- package/src/tools/auto-generated-guard.ts +1 -1
- package/src/tools/bash-interactive.ts +3 -3
- package/src/tools/bash.ts +4 -4
- package/src/tools/browser-renderer.ts +2 -2
- package/src/tools/browser.ts +3 -3
- package/src/tools/calculator.ts +3 -3
- package/src/tools/cancel-job.ts +2 -2
- package/src/tools/catalog-workflow-runner.ts +2 -2
- package/src/tools/checkpoint.ts +2 -2
- package/src/tools/context.ts +2 -2
- package/src/tools/debug.ts +4 -4
- package/src/tools/display-image-renderer.ts +2 -2
- package/src/tools/display-image.ts +4 -4
- package/src/tools/exit-plan-mode.ts +2 -2
- package/src/tools/fetch.ts +5 -5
- package/src/tools/find.ts +5 -5
- package/src/tools/fs-cache-invalidation.ts +1 -1
- package/src/tools/gemini-image.ts +2 -2
- package/src/tools/grep.ts +5 -5
- package/src/tools/index.ts +3 -3
- package/src/tools/inspect-image-renderer.ts +2 -2
- package/src/tools/inspect-image.ts +3 -3
- package/src/tools/json-tree.ts +1 -1
- package/src/tools/mermaid-renderer.ts +3 -3
- package/src/tools/notebook.ts +5 -5
- package/src/tools/output-meta.ts +2 -2
- package/src/tools/poll-tool.ts +2 -2
- package/src/tools/python.ts +5 -5
- package/src/tools/read.ts +6 -6
- package/src/tools/render-mermaid.ts +2 -2
- package/src/tools/render-utils.ts +6 -6
- package/src/tools/renderers.ts +1 -1
- package/src/tools/report-tool-issue.ts +2 -2
- package/src/tools/resolve.ts +3 -3
- package/src/tools/review.ts +5 -5
- package/src/tools/search-tool-bm25.ts +3 -3
- package/src/tools/ssh.ts +4 -4
- package/src/tools/submit-result.ts +2 -2
- package/src/tools/todo-write.ts +5 -5
- package/src/tools/tool-result.ts +2 -2
- package/src/tools/vim.ts +4 -4
- package/src/tools/write.ts +3 -3
- package/src/tools/xcsh-api-renderer.ts +2 -2
- package/src/tools/xcsh-api.ts +2 -2
- package/src/tui/output-block.ts +1 -1
- package/src/tui/tree-list.ts +1 -1
- package/src/tui/utils.ts +2 -2
- package/src/utils/changelog.ts +1 -1
- package/src/utils/clipboard.ts +2 -2
- package/src/utils/commit-message-generator.ts +4 -4
- package/src/utils/edit-mode.ts +1 -1
- package/src/utils/event-bus.ts +1 -1
- package/src/utils/external-editor.ts +1 -1
- package/src/utils/file-mentions.ts +4 -4
- package/src/utils/git.ts +1 -1
- package/src/utils/gitstatus.ts +1 -1
- package/src/utils/image-convert.ts +1 -1
- package/src/utils/image-loading.ts +2 -2
- package/src/utils/image-passthrough.ts +1 -1
- package/src/utils/image-resize.ts +2 -2
- package/src/utils/markit.ts +1 -1
- package/src/utils/shell-snapshot.ts +1 -1
- package/src/utils/title-generator.ts +4 -4
- package/src/utils/tool-choice.ts +1 -1
- package/src/utils/tools-manager.ts +1 -1
- package/src/vim/render.ts +1 -1
- package/src/web/kagi.ts +1 -1
- package/src/web/parallel.ts +1 -1
- package/src/web/scrapers/artifacthub.ts +1 -1
- package/src/web/scrapers/aur.ts +1 -1
- package/src/web/scrapers/biorxiv.ts +1 -1
- package/src/web/scrapers/bluesky.ts +1 -1
- package/src/web/scrapers/chocolatey.ts +1 -1
- package/src/web/scrapers/choosealicense.ts +1 -1
- package/src/web/scrapers/cisa-kev.ts +1 -1
- package/src/web/scrapers/clojars.ts +1 -1
- package/src/web/scrapers/coingecko.ts +1 -1
- package/src/web/scrapers/crates-io.ts +1 -1
- package/src/web/scrapers/crossref.ts +1 -1
- package/src/web/scrapers/discogs.ts +2 -2
- package/src/web/scrapers/discourse.ts +1 -1
- package/src/web/scrapers/dockerhub.ts +1 -1
- package/src/web/scrapers/docs-rs.ts +1 -1
- package/src/web/scrapers/fdroid.ts +1 -1
- package/src/web/scrapers/firefox-addons.ts +1 -1
- package/src/web/scrapers/flathub.ts +1 -1
- package/src/web/scrapers/github.ts +1 -1
- package/src/web/scrapers/gitlab.ts +1 -1
- package/src/web/scrapers/go-pkg.ts +1 -1
- package/src/web/scrapers/hackage.ts +1 -1
- package/src/web/scrapers/hackernews.ts +1 -1
- package/src/web/scrapers/hex.ts +1 -1
- package/src/web/scrapers/huggingface.ts +1 -1
- package/src/web/scrapers/jetbrains-marketplace.ts +1 -1
- package/src/web/scrapers/lemmy.ts +1 -1
- package/src/web/scrapers/lobsters.ts +1 -1
- package/src/web/scrapers/mastodon.ts +1 -1
- package/src/web/scrapers/maven.ts +1 -1
- package/src/web/scrapers/mdn.ts +1 -1
- package/src/web/scrapers/metacpan.ts +1 -1
- package/src/web/scrapers/musicbrainz.ts +1 -1
- package/src/web/scrapers/npm.ts +1 -1
- package/src/web/scrapers/nuget.ts +1 -1
- package/src/web/scrapers/nvd.ts +1 -1
- package/src/web/scrapers/ollama.ts +1 -1
- package/src/web/scrapers/open-vsx.ts +1 -1
- package/src/web/scrapers/opencorporates.ts +1 -1
- package/src/web/scrapers/openlibrary.ts +1 -1
- package/src/web/scrapers/orcid.ts +1 -1
- package/src/web/scrapers/osv.ts +1 -1
- package/src/web/scrapers/packagist.ts +1 -1
- package/src/web/scrapers/pub-dev.ts +1 -1
- package/src/web/scrapers/pubmed.ts +1 -1
- package/src/web/scrapers/pypi.ts +1 -1
- package/src/web/scrapers/rawg.ts +1 -1
- package/src/web/scrapers/reddit.ts +1 -1
- package/src/web/scrapers/repology.ts +1 -1
- package/src/web/scrapers/rfc.ts +1 -1
- package/src/web/scrapers/rubygems.ts +1 -1
- package/src/web/scrapers/searchcode.ts +1 -1
- package/src/web/scrapers/sec-edgar.ts +1 -1
- package/src/web/scrapers/semantic-scholar.ts +1 -1
- package/src/web/scrapers/snapcraft.ts +1 -1
- package/src/web/scrapers/sourcegraph.ts +1 -1
- package/src/web/scrapers/spdx.ts +1 -1
- package/src/web/scrapers/stackoverflow.ts +1 -1
- package/src/web/scrapers/terraform.ts +1 -1
- package/src/web/scrapers/types.ts +2 -2
- package/src/web/scrapers/utils.ts +1 -1
- package/src/web/scrapers/vimeo.ts +1 -1
- package/src/web/scrapers/vscode-marketplace.ts +1 -1
- package/src/web/scrapers/w3c.ts +1 -1
- package/src/web/scrapers/wikidata.ts +1 -1
- package/src/web/scrapers/youtube.ts +1 -1
- package/src/web/search/index.ts +3 -3
- package/src/web/search/providers/anthropic.ts +2 -2
- package/src/web/search/providers/brave.ts +1 -1
- package/src/web/search/providers/codex.ts +1 -1
- package/src/web/search/providers/exa.ts +1 -1
- package/src/web/search/providers/gemini.ts +2 -2
- package/src/web/search/providers/jina.ts +1 -1
- package/src/web/search/providers/kimi.ts +2 -2
- package/src/web/search/providers/perplexity.ts +2 -2
- package/src/web/search/providers/synthetic.ts +1 -1
- package/src/web/search/providers/tavily.ts +1 -1
- package/src/web/search/providers/utils.ts +1 -1
- package/src/web/search/providers/zai.ts +1 -1
- package/src/web/search/render.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [19.51.5] - 2026-06-26
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- Sign + notarize the embedded native addon (`pi_natives.*.node`) in `build-sign-macos` **before** it is embedded into the compiled binary. xcsh extracts the embedded `.node` to `~/.xcsh/natives/<ver>/` at runtime; previously that extracted copy was ad-hoc-signed, so managed/MDM Macs blocked the `dlopen` ("could not verify it is free of malware"). The addon is now Developer-ID-signed with hardened runtime and notarized, so Gatekeeper's online check passes it without manual approval.
|
|
9
|
+
|
|
10
|
+
## [19.51.4] - 2026-06-26
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- Deterministic NL→XC console automation: the system prompt mandates the purpose-built `catalog_workflow_runner` console skill (extension-driven) and forbids the generic Puppeteer browser tool for F5 XC console pages; visible Chrome is framed as the flagship showcase, headless as the exception.
|
|
14
|
+
- Native-messaging host auto-install on console-automation init (idempotent), with a baked-in Web Store URL and fail-fast guidance when the extension is not connected.
|
|
15
|
+
- Gated, security-clean relay tracing in `chrome-host` for diagnosing the bridge-connect step.
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- Native host now uses the compiled `xcsh` binary (not `bun + cli.ts`), which survives Chrome's stripped-env launch.
|
|
19
|
+
- Re-embedded console catalog/field-metadata with the `urn:xcsh:console:workflow:v1` schema and the tcp-load-balancer / network-interface defect fixes plus label corrections.
|
|
20
|
+
- Pre-existing biome lint/format issues that were blocking CI.
|
|
21
|
+
|
|
5
22
|
## [18.91.0] - 2026-06-01
|
|
6
23
|
|
|
7
24
|
### Changed
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* The onSession callback reconstructs state by scanning past tool results.
|
|
9
9
|
*/
|
|
10
|
-
import type { CustomTool, CustomToolContext, CustomToolFactory, CustomToolSessionEvent } from "@
|
|
10
|
+
import type { CustomTool, CustomToolContext, CustomToolFactory, CustomToolSessionEvent } from "@f5-sales-demo/xcsh";
|
|
11
11
|
|
|
12
12
|
interface Todo {
|
|
13
13
|
id: number;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* These features are now exposed directly on the ExtensionAPI, matching
|
|
6
6
|
* the CustomToolAPI interface.
|
|
7
7
|
*/
|
|
8
|
-
import type { ExtensionAPI } from "@
|
|
8
|
+
import type { ExtensionAPI } from "@f5-sales-demo/xcsh";
|
|
9
9
|
|
|
10
10
|
export default function (pi: ExtensionAPI) {
|
|
11
11
|
// 1. Access TypeBox directly from pi.typebox (no separate import needed)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Example extension that uses a 3rd party dependency (chalk).
|
|
3
3
|
* Tests that jiti can resolve npm modules correctly.
|
|
4
4
|
*/
|
|
5
|
-
import type { ExtensionAPI } from "@
|
|
5
|
+
import type { ExtensionAPI } from "@f5-sales-demo/xcsh";
|
|
6
6
|
import chalk from "chalk";
|
|
7
7
|
|
|
8
8
|
export default function (pi: ExtensionAPI) {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Demonstrates using ExtensionAPI's logger, typebox, and pi module access.
|
|
5
5
|
*/
|
|
6
|
-
import type { ExtensionAPI } from "@
|
|
6
|
+
import type { ExtensionAPI } from "@f5-sales-demo/xcsh";
|
|
7
7
|
|
|
8
8
|
export default function (pi: ExtensionAPI) {
|
|
9
9
|
// Access TypeBox via pi.typebox (no need to import separately)
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* 2. Use /pirate to toggle pirate mode
|
|
10
10
|
* 3. When enabled, the agent will respond like a pirate
|
|
11
11
|
*/
|
|
12
|
-
import type { ExtensionAPI } from "@
|
|
12
|
+
import type { ExtensionAPI } from "@f5-sales-demo/xcsh";
|
|
13
13
|
|
|
14
14
|
export default function pirateExtension(pi: ExtensionAPI) {
|
|
15
15
|
let pirateMode = false;
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
* 3. Or start in plan mode with --plan flag
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
import { Key } from "@
|
|
23
|
-
import type { ExtensionAPI, ExtensionContext } from "@
|
|
22
|
+
import { Key } from "@f5-sales-demo/pi-tui";
|
|
23
|
+
import type { ExtensionAPI, ExtensionContext } from "@f5-sales-demo/xcsh";
|
|
24
24
|
|
|
25
25
|
// Read-only tools for plan mode
|
|
26
26
|
const PLAN_MODE_TOOLS = ["read", "bash", "grep", "find", "ls"];
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
* correct for that point in history.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import { StringEnum } from "@
|
|
14
|
-
import { matchesKey, Text, truncateToWidth } from "@
|
|
15
|
-
import type { ExtensionAPI, ExtensionContext, Theme } from "@
|
|
13
|
+
import { StringEnum } from "@f5-sales-demo/pi-ai";
|
|
14
|
+
import { matchesKey, Text, truncateToWidth } from "@f5-sales-demo/pi-tui";
|
|
15
|
+
import type { ExtensionAPI, ExtensionContext, Theme } from "@f5-sales-demo/xcsh";
|
|
16
16
|
import { Type } from "@sinclair/typebox";
|
|
17
17
|
|
|
18
18
|
interface Todo {
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* 2. Use /tools to open the tool selector
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import { Container, type SettingItem, SettingsList } from "@
|
|
13
|
-
import type { ExtensionAPI, ExtensionContext } from "@
|
|
14
|
-
import { getSettingsListTheme } from "@
|
|
12
|
+
import { Container, type SettingItem, SettingsList } from "@f5-sales-demo/pi-tui";
|
|
13
|
+
import type { ExtensionAPI, ExtensionContext } from "@f5-sales-demo/xcsh";
|
|
14
|
+
import { getSettingsListTheme } from "@f5-sales-demo/xcsh";
|
|
15
15
|
|
|
16
16
|
// State persisted to session
|
|
17
17
|
interface ToolsState {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Automatically commits changes when the agent exits.
|
|
5
5
|
* Uses the last assistant message to generate a commit message.
|
|
6
6
|
*/
|
|
7
|
-
import type { HookAPI } from "@
|
|
7
|
+
import type { HookAPI } from "@f5-sales-demo/xcsh";
|
|
8
8
|
|
|
9
9
|
export default function (pi: HookAPI) {
|
|
10
10
|
pi.on("session_shutdown", async (_event, ctx) => {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Prompts for confirmation before destructive session actions (clear, switch, branch).
|
|
5
5
|
* Demonstrates how to cancel session events using the before_* events.
|
|
6
6
|
*/
|
|
7
|
-
import type { HookAPI, SessionBeforeSwitchEvent, SessionMessageEntry } from "@
|
|
7
|
+
import type { HookAPI, SessionBeforeSwitchEvent, SessionMessageEntry } from "@f5-sales-demo/xcsh";
|
|
8
8
|
|
|
9
9
|
export default function (pi: HookAPI) {
|
|
10
10
|
pi.on("session_before_switch", async (event: SessionBeforeSwitchEvent, ctx) => {
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
* Usage:
|
|
13
13
|
* xcsh --hook examples/hooks/custom-compaction.ts
|
|
14
14
|
*/
|
|
15
|
-
import { complete, getModel } from "@
|
|
16
|
-
import type { HookAPI } from "@
|
|
17
|
-
import { convertToLlm, serializeConversation } from "@
|
|
15
|
+
import { complete, getModel } from "@f5-sales-demo/pi-ai";
|
|
16
|
+
import type { HookAPI } from "@f5-sales-demo/xcsh";
|
|
17
|
+
import { convertToLlm, serializeConversation } from "@f5-sales-demo/xcsh";
|
|
18
18
|
|
|
19
19
|
export default function (pi: HookAPI) {
|
|
20
20
|
pi.on("session_before_compact", async (event, ctx) => {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Prevents session changes when there are uncommitted git changes.
|
|
5
5
|
* Useful to ensure work is committed before switching context.
|
|
6
6
|
*/
|
|
7
|
-
import type { HookAPI, HookContext } from "@
|
|
7
|
+
import type { HookAPI, HookContext } from "@f5-sales-demo/xcsh";
|
|
8
8
|
|
|
9
9
|
async function checkDirtyRepo(pi: HookAPI, ctx: HookContext, action: string): Promise<{ cancel: boolean } | undefined> {
|
|
10
10
|
// Check for uncommitted changes
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* echo "Run the tests" > /tmp/agent-trigger.txt
|
|
9
9
|
*/
|
|
10
10
|
import * as fs from "node:fs";
|
|
11
|
-
import type { HookAPI } from "@
|
|
11
|
+
import type { HookAPI } from "@f5-sales-demo/xcsh";
|
|
12
12
|
|
|
13
13
|
export default function (pi: HookAPI) {
|
|
14
14
|
pi.on("session_start", async (_event, ctx) => {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Creates git stash checkpoints at each turn so /branch can restore code state.
|
|
5
5
|
* When branching, offers to restore code to that point in history.
|
|
6
6
|
*/
|
|
7
|
-
import type { HookAPI } from "@
|
|
7
|
+
import type { HookAPI } from "@f5-sales-demo/xcsh";
|
|
8
8
|
|
|
9
9
|
export default function (pi: HookAPI) {
|
|
10
10
|
const checkpoints = new Map<string, string>();
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
*
|
|
12
12
|
* The generated prompt appears as a draft in the editor for review/editing.
|
|
13
13
|
*/
|
|
14
|
-
import { complete, type Message } from "@
|
|
15
|
-
import type { HookAPI, SessionEntry } from "@
|
|
16
|
-
import { BorderedLoader, convertToLlm, serializeConversation } from "@
|
|
14
|
+
import { complete, type Message } from "@f5-sales-demo/pi-ai";
|
|
15
|
+
import type { HookAPI, SessionEntry } from "@f5-sales-demo/xcsh";
|
|
16
|
+
import { BorderedLoader, convertToLlm, serializeConversation } from "@f5-sales-demo/xcsh";
|
|
17
17
|
|
|
18
18
|
const SYSTEM_PROMPT = `You are a context transfer assistant. Given a conversation history and the user's goal for a new thread, generate a focused prompt that:
|
|
19
19
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Prompts for confirmation before running potentially dangerous bash commands.
|
|
5
5
|
* Patterns checked: rm -rf, sudo, chmod/chown 777
|
|
6
6
|
*/
|
|
7
|
-
import type { HookAPI } from "@
|
|
7
|
+
import type { HookAPI } from "@f5-sales-demo/xcsh";
|
|
8
8
|
|
|
9
9
|
export default function (pi: HookAPI) {
|
|
10
10
|
const dangerousPatterns = [/\brm\s+(-rf?|--recursive)/i, /\bsudo\b/i, /\b(chmod|chown)\b.*777/i];
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Blocks write and edit operations to protected paths.
|
|
5
5
|
* Useful for preventing accidental modifications to sensitive files.
|
|
6
6
|
*/
|
|
7
|
-
import type { HookAPI } from "@
|
|
7
|
+
import type { HookAPI } from "@f5-sales-demo/xcsh";
|
|
8
8
|
|
|
9
9
|
export default function (pi: HookAPI) {
|
|
10
10
|
const protectedPaths = [".env", ".git/", "node_modules/"];
|
package/examples/hooks/qna.ts
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* 2. Shows a spinner while extracting (hides editor)
|
|
7
7
|
* 3. Loads the result into the editor for user to fill in answers
|
|
8
8
|
*/
|
|
9
|
-
import { complete, type UserMessage } from "@
|
|
10
|
-
import type { HookAPI } from "@
|
|
11
|
-
import { BorderedLoader } from "@
|
|
9
|
+
import { complete, type UserMessage } from "@f5-sales-demo/pi-ai";
|
|
10
|
+
import type { HookAPI } from "@f5-sales-demo/xcsh";
|
|
11
|
+
import { BorderedLoader } from "@f5-sales-demo/xcsh";
|
|
12
12
|
|
|
13
13
|
const SYSTEM_PROMPT = `You are a question extractor. Given text from a conversation, extract any questions that need answering and format them for the user to fill in.
|
|
14
14
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Demonstrates ctx.ui.setStatus() for displaying persistent status text in the footer.
|
|
5
5
|
* Shows turn progress with themed colors.
|
|
6
6
|
*/
|
|
7
|
-
import type { HookAPI } from "@
|
|
7
|
+
import type { HookAPI } from "@f5-sales-demo/xcsh";
|
|
8
8
|
|
|
9
9
|
export default function (pi: HookAPI) {
|
|
10
10
|
let turnCount = 0;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Uses all defaults: discovers skills, hooks, tools, context files
|
|
5
5
|
* from cwd and ~/.xcsh/agent. Model chosen from settings or first available.
|
|
6
6
|
*/
|
|
7
|
-
import { createAgentSession } from "@
|
|
7
|
+
import { createAgentSession } from "@f5-sales-demo/xcsh";
|
|
8
8
|
|
|
9
9
|
const { session } = await createAgentSession();
|
|
10
10
|
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Shows how to select a specific model and thinking level.
|
|
5
5
|
*/
|
|
6
|
-
import { ThinkingLevel } from "@
|
|
7
|
-
import { getModel } from "@
|
|
8
|
-
import { createAgentSession, discoverAuthStorage, discoverModels } from "@
|
|
6
|
+
import { ThinkingLevel } from "@f5-sales-demo/pi-agent-core";
|
|
7
|
+
import { getModel } from "@f5-sales-demo/pi-ai";
|
|
8
|
+
import { createAgentSession, discoverAuthStorage, discoverModels } from "@f5-sales-demo/xcsh";
|
|
9
9
|
|
|
10
10
|
// Set up auth storage and model registry
|
|
11
11
|
const authStorage = await discoverAuthStorage();
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Shows how to replace or modify the default system prompt.
|
|
5
5
|
*/
|
|
6
|
-
import { createAgentSession, SessionManager } from "@
|
|
6
|
+
import { createAgentSession, SessionManager } from "@f5-sales-demo/xcsh";
|
|
7
7
|
|
|
8
8
|
// Option 1: Replace prompt entirely
|
|
9
9
|
const { session: session1 } = await createAgentSession({
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Skills provide specialized instructions loaded into the system prompt.
|
|
5
5
|
* Discover, filter, merge, or replace them.
|
|
6
6
|
*/
|
|
7
|
-
import { createAgentSession, discoverSkills, SessionManager, type Skill } from "@
|
|
7
|
+
import { createAgentSession, discoverSkills, SessionManager, type Skill } from "@f5-sales-demo/xcsh";
|
|
8
8
|
|
|
9
9
|
// Discover all skills from cwd/.xcsh/skills, ~/.xcsh/agent/skills, etc.
|
|
10
10
|
const { skills: allSkills } = await discoverSkills();
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* An extension is a TypeScript file that exports a default function:
|
|
14
14
|
* export default function (pi: ExtensionAPI) { ... }
|
|
15
15
|
*/
|
|
16
|
-
import { createAgentSession, SessionManager } from "@
|
|
16
|
+
import { createAgentSession, SessionManager } from "@f5-sales-demo/xcsh";
|
|
17
17
|
|
|
18
18
|
// Extensions are loaded from disk, not passed inline to createAgentSession.
|
|
19
19
|
// Use the discovery mechanism:
|
|
@@ -38,7 +38,7 @@ console.log();
|
|
|
38
38
|
|
|
39
39
|
// Example extension file (./my-logging-extension.ts):
|
|
40
40
|
/*
|
|
41
|
-
import type { ExtensionAPI } from "@
|
|
41
|
+
import type { ExtensionAPI } from "@f5-sales-demo/xcsh";
|
|
42
42
|
|
|
43
43
|
export default function (pi: ExtensionAPI) {
|
|
44
44
|
pi.on("agent_start", async () => {
|
package/examples/sdk/06-hooks.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Hooks intercept agent events for logging, blocking, or modification.
|
|
5
5
|
* Note: "hooks" is now called "extensions" in the API.
|
|
6
6
|
*/
|
|
7
|
-
import { createAgentSession, type ExtensionFactory, SessionManager } from "@
|
|
7
|
+
import { createAgentSession, type ExtensionFactory, SessionManager } from "@f5-sales-demo/xcsh";
|
|
8
8
|
|
|
9
9
|
// Logging hook (now called extension)
|
|
10
10
|
const loggingHook: ExtensionFactory = api => {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Context files provide project-specific instructions loaded into the system prompt.
|
|
5
5
|
*/
|
|
6
|
-
import { createAgentSession, discoverContextFiles, SessionManager } from "@
|
|
6
|
+
import { createAgentSession, discoverContextFiles, SessionManager } from "@f5-sales-demo/xcsh";
|
|
7
7
|
|
|
8
8
|
// Discover AGENTS.md files walking up from cwd
|
|
9
9
|
const discovered = discoverContextFiles();
|
|
@@ -3,12 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* File-based templates that inject content when invoked with /templatename.
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
createAgentSession,
|
|
8
|
-
discoverPromptTemplates,
|
|
9
|
-
type PromptTemplate,
|
|
10
|
-
SessionManager,
|
|
11
|
-
} from "@f5xc-salesdemos/xcsh";
|
|
6
|
+
import { createAgentSession, discoverPromptTemplates, type PromptTemplate, SessionManager } from "@f5-sales-demo/xcsh";
|
|
12
7
|
|
|
13
8
|
// Discover templates from cwd/.pi/prompts/ and ~/.pi/agent/prompts/
|
|
14
9
|
const discovered = await discoverPromptTemplates();
|
|
@@ -4,12 +4,7 @@
|
|
|
4
4
|
* File-based commands that inject content when invoked with /commandname.
|
|
5
5
|
* Note: File-based slash commands are now called "prompt templates".
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
8
|
-
createAgentSession,
|
|
9
|
-
discoverPromptTemplates,
|
|
10
|
-
type PromptTemplate,
|
|
11
|
-
SessionManager,
|
|
12
|
-
} from "@f5xc-salesdemos/xcsh";
|
|
7
|
+
import { createAgentSession, discoverPromptTemplates, type PromptTemplate, SessionManager } from "@f5-sales-demo/xcsh";
|
|
13
8
|
|
|
14
9
|
// Discover prompt templates from cwd/.pi/prompts/ and ~/.pi/agent/prompts/
|
|
15
10
|
const discovered = await discoverPromptTemplates();
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
discoverModels,
|
|
11
11
|
ModelRegistry,
|
|
12
12
|
SessionManager,
|
|
13
|
-
} from "@
|
|
13
|
+
} from "@f5-sales-demo/xcsh";
|
|
14
14
|
|
|
15
15
|
// Default: discoverAuthStorage() uses ~/.xcsh/agent/agent.db
|
|
16
16
|
// discoverModels() loads built-in + custom models from ~/.xcsh/agent/models.json
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Control session persistence: in-memory, new file, continue, or open specific.
|
|
5
5
|
*/
|
|
6
|
-
import { createAgentSession, SessionManager } from "@
|
|
6
|
+
import { createAgentSession, SessionManager } from "@f5-sales-demo/xcsh";
|
|
7
7
|
|
|
8
8
|
// In-memory (no persistence)
|
|
9
9
|
const { session: inMemory } = await createAgentSession({
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@f5-sales-demo/xcsh",
|
|
4
|
-
"version": "19.51.
|
|
4
|
+
"version": "19.51.5",
|
|
5
5
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
6
6
|
"homepage": "https://github.com/f5-sales-demo/xcsh",
|
|
7
7
|
"author": "Can Boluk",
|
|
@@ -54,13 +54,13 @@
|
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"@agentclientprotocol/sdk": "0.16.1",
|
|
56
56
|
"@mozilla/readability": "^0.6",
|
|
57
|
-
"@f5-sales-demo/xcsh-stats": "
|
|
58
|
-
"@f5-sales-demo/pi-agent-core": "
|
|
59
|
-
"@f5-sales-demo/pi-ai": "
|
|
60
|
-
"@f5-sales-demo/pi-natives": "
|
|
61
|
-
"@f5-sales-demo/pi-resource-management": "
|
|
62
|
-
"@f5-sales-demo/pi-tui": "
|
|
63
|
-
"@f5-sales-demo/pi-utils": "
|
|
57
|
+
"@f5-sales-demo/xcsh-stats": "19.51.4",
|
|
58
|
+
"@f5-sales-demo/pi-agent-core": "19.51.4",
|
|
59
|
+
"@f5-sales-demo/pi-ai": "19.51.4",
|
|
60
|
+
"@f5-sales-demo/pi-natives": "19.51.4",
|
|
61
|
+
"@f5-sales-demo/pi-resource-management": "19.51.4",
|
|
62
|
+
"@f5-sales-demo/pi-tui": "19.51.4",
|
|
63
|
+
"@f5-sales-demo/pi-utils": "19.51.4",
|
|
64
64
|
"@sinclair/typebox": "^0.34",
|
|
65
65
|
"@xterm/headless": "^6.0",
|
|
66
66
|
"ajv": "^8.20",
|
|
@@ -205,7 +205,7 @@ async function run() {
|
|
|
205
205
|
if (!ref) {
|
|
206
206
|
fail("form_input", "Name field not found");
|
|
207
207
|
} else {
|
|
208
|
-
await tool("form_input", { ref, value:
|
|
208
|
+
await tool("form_input", { ref, value: `uat-test-${Date.now()}` });
|
|
209
209
|
pass("form_input", `filled ref ${ref} with commitInputValue`);
|
|
210
210
|
}
|
|
211
211
|
} catch (e) {
|
|
@@ -314,7 +314,7 @@ async function run() {
|
|
|
314
314
|
);
|
|
315
315
|
|
|
316
316
|
// --- SUMMARY ---
|
|
317
|
-
console.log(
|
|
317
|
+
console.log(`\n${"=".repeat(60)}`);
|
|
318
318
|
console.log("UAT SUMMARY");
|
|
319
319
|
console.log("=".repeat(60));
|
|
320
320
|
const passed = results.filter(r => r.status === "PASS").length;
|
|
@@ -92,7 +92,7 @@ interface RawIndex {
|
|
|
92
92
|
"x-f5xc-acronyms"?: Record<string, unknown>;
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
const REPO = "
|
|
95
|
+
const REPO = "f5-sales-demo/api-specs-enriched";
|
|
96
96
|
const outputPath = path.resolve(import.meta.dir, "../src/internal-urls/api-spec-index.generated.ts");
|
|
97
97
|
const catalogOutputPath = path.resolve(import.meta.dir, "../src/internal-urls/api-catalog-index.generated.ts");
|
|
98
98
|
|
|
@@ -15,7 +15,7 @@ const LOCAL_BRANDING_PATH = path.resolve(
|
|
|
15
15
|
"branding.yaml",
|
|
16
16
|
);
|
|
17
17
|
|
|
18
|
-
const GITHUB_RAW_URL = "https://raw.githubusercontent.com/
|
|
18
|
+
const GITHUB_RAW_URL = "https://raw.githubusercontent.com/f5-sales-demo/api-specs-enriched/main/config/branding.yaml";
|
|
19
19
|
|
|
20
20
|
interface BrandingCanonical {
|
|
21
21
|
long_form: string;
|
|
@@ -15,7 +15,7 @@ const repoRoot = path.resolve(import.meta.dir, "../../..");
|
|
|
15
15
|
const outputPath = path.resolve(import.meta.dir, "../src/internal-urls/build-info.generated.ts");
|
|
16
16
|
const utilsPackageJsonPath = path.resolve(repoRoot, "packages/utils/package.json");
|
|
17
17
|
|
|
18
|
-
const REPO_SLUG = "
|
|
18
|
+
const REPO_SLUG = "f5-sales-demo/xcsh";
|
|
19
19
|
const REPO_URL = `https://github.com/${REPO_SLUG}`;
|
|
20
20
|
|
|
21
21
|
async function git(args: string[]): Promise<string> {
|
|
@@ -15,7 +15,7 @@ const LOCAL_JSON_PATH = path.resolve(
|
|
|
15
15
|
);
|
|
16
16
|
|
|
17
17
|
const GITHUB_RAW_URL =
|
|
18
|
-
"https://raw.githubusercontent.com/
|
|
18
|
+
"https://raw.githubusercontent.com/f5-sales-demo/terraform-provider-xcsh/main/docs/terraform-llms-index.json";
|
|
19
19
|
|
|
20
20
|
async function loadTerraformIndex(): Promise<unknown> {
|
|
21
21
|
const localFile = Bun.file(LOCAL_JSON_PATH);
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
*
|
|
18
18
|
* Tip: pipe through `less -R` to page while keeping color.
|
|
19
19
|
*/
|
|
20
|
-
import type { MermaidColorMode } from "@
|
|
20
|
+
import type { MermaidColorMode } from "@f5-sales-demo/pi-utils";
|
|
21
21
|
import { renderMermaidThemed } from "../src/modes/theme/mermaid-cache";
|
|
22
22
|
import { getThemeByName } from "../src/modes/theme/theme";
|
|
23
23
|
import { XC_MERMAID_SAMPLES, type XcMermaidSample } from "../test/fixtures/xc-mermaid-samples";
|
|
@@ -126,7 +126,7 @@ async function main(): Promise<void> {
|
|
|
126
126
|
theme.fg("muted", ` Rendered ${samples.length} sample(s). Inspect the colors above and note anything to tune `) +
|
|
127
127
|
theme.fg("dim", "(borders, labels, edges, arrows, per-node tints, contrast)."),
|
|
128
128
|
);
|
|
129
|
-
console.log(rule("━")
|
|
129
|
+
console.log(`${rule("━")}\n`);
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
await main();
|
package/src/async/job-manager.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { matchesKey, replaceTabs, Text, truncateToWidth, visibleWidth } from "@
|
|
1
|
+
import { matchesKey, replaceTabs, Text, truncateToWidth, visibleWidth } from "@f5-sales-demo/pi-tui";
|
|
2
2
|
import type { Theme } from "../modes/theme/theme";
|
|
3
3
|
import { formatElapsed, formatNum } from "./helpers";
|
|
4
4
|
import {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
2
|
import * as path from "node:path";
|
|
3
|
-
import { isEnoent } from "@
|
|
3
|
+
import { isEnoent } from "@f5-sales-demo/pi-utils";
|
|
4
4
|
import { parseCommandArgs } from "../utils/command-args";
|
|
5
5
|
import type { ASIData, ASIValue, MetricDirection, NumericMetricMap, PendingRunSummary } from "./types";
|
|
6
6
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
2
|
import * as path from "node:path";
|
|
3
|
-
import type { AutocompleteItem } from "@
|
|
4
|
-
import { prompt } from "@
|
|
3
|
+
import type { AutocompleteItem } from "@f5-sales-demo/pi-tui";
|
|
4
|
+
import { prompt } from "@f5-sales-demo/pi-utils";
|
|
5
5
|
import type { ExtensionContext, ExtensionFactory } from "../extensibility/extensions";
|
|
6
6
|
import commandResumeTemplate from "./command-resume.md" with { type: "text" };
|
|
7
7
|
import { pathMatchesContractPath } from "./contract";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
2
|
import * as path from "node:path";
|
|
3
|
-
import { StringEnum } from "@
|
|
4
|
-
import { type Component, Text } from "@
|
|
3
|
+
import { StringEnum } from "@f5-sales-demo/pi-ai";
|
|
4
|
+
import { type Component, Text } from "@f5-sales-demo/pi-tui";
|
|
5
5
|
import { Type } from "@sinclair/typebox";
|
|
6
6
|
import type { ToolDefinition } from "../../extensibility/extensions";
|
|
7
7
|
import type { Theme } from "../../modes/theme/theme";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
2
|
import * as path from "node:path";
|
|
3
|
-
import { StringEnum } from "@
|
|
4
|
-
import { type Component, Text } from "@
|
|
5
|
-
import { logger } from "@
|
|
3
|
+
import { StringEnum } from "@f5-sales-demo/pi-ai";
|
|
4
|
+
import { type Component, Text } from "@f5-sales-demo/pi-tui";
|
|
5
|
+
import { logger } from "@f5-sales-demo/pi-utils";
|
|
6
6
|
import { Type } from "@sinclair/typebox";
|
|
7
7
|
import type { ToolDefinition } from "../../extensibility/extensions";
|
|
8
8
|
import type { Theme } from "../../modes/theme/theme";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as childProcess from "node:child_process";
|
|
2
2
|
import * as fs from "node:fs";
|
|
3
3
|
import * as path from "node:path";
|
|
4
|
-
import { type Component, Text } from "@
|
|
5
|
-
import { formatBytes } from "@
|
|
4
|
+
import { type Component, Text } from "@f5-sales-demo/pi-tui";
|
|
5
|
+
import { formatBytes } from "@f5-sales-demo/pi-utils";
|
|
6
6
|
import { Type } from "@sinclair/typebox";
|
|
7
7
|
import type { ToolDefinition } from "../../extensibility/extensions";
|
|
8
8
|
import type { Theme } from "../../modes/theme/theme";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentToolResult } from "@
|
|
1
|
+
import type { AgentToolResult } from "@f5-sales-demo/pi-agent-core";
|
|
2
2
|
import type { ExtensionAPI, ExtensionContext } from "../extensibility/extensions";
|
|
3
3
|
import type { TruncationResult } from "../session/streaming-output";
|
|
4
4
|
|