jonsoc 1.1.50 → 1.1.51
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/AGENTS.md +27 -0
- package/Dockerfile +18 -0
- package/PUBLISHING_GUIDE.md +151 -0
- package/README.md +58 -0
- package/bin/jonsoc +256 -256
- package/bunfig.toml +7 -0
- package/package.json +142 -8
- package/package.json.placeholder +11 -0
- package/parsers-config.ts +253 -0
- package/script/build.ts +115 -0
- package/script/publish-registries.ts +197 -0
- package/script/publish.ts +149 -0
- package/script/schema.ts +47 -0
- package/script/seed-e2e.ts +50 -0
- package/src/acp/README.md +164 -0
- package/src/acp/agent.ts +1437 -0
- package/src/acp/session.ts +105 -0
- package/src/acp/types.ts +22 -0
- package/src/agent/agent.ts +345 -0
- package/src/agent/generate.txt +75 -0
- package/src/agent/prompt/compaction.txt +12 -0
- package/src/agent/prompt/explore.txt +18 -0
- package/src/agent/prompt/summary.txt +11 -0
- package/src/agent/prompt/title.txt +44 -0
- package/src/auth/index.ts +73 -0
- package/src/brand/index.ts +89 -0
- package/src/bun/index.ts +139 -0
- package/src/bus/bus-event.ts +43 -0
- package/src/bus/global.ts +10 -0
- package/src/bus/index.ts +105 -0
- package/src/cli/bootstrap.ts +17 -0
- package/src/cli/cmd/acp.ts +69 -0
- package/src/cli/cmd/agent.ts +257 -0
- package/src/cli/cmd/auth.ts +405 -0
- package/src/cli/cmd/cmd.ts +7 -0
- package/src/cli/cmd/debug/agent.ts +166 -0
- package/src/cli/cmd/debug/config.ts +16 -0
- package/src/cli/cmd/debug/file.ts +97 -0
- package/src/cli/cmd/debug/index.ts +48 -0
- package/src/cli/cmd/debug/lsp.ts +52 -0
- package/src/cli/cmd/debug/ripgrep.ts +87 -0
- package/src/cli/cmd/debug/scrap.ts +16 -0
- package/src/cli/cmd/debug/skill.ts +16 -0
- package/src/cli/cmd/debug/snapshot.ts +52 -0
- package/src/cli/cmd/export.ts +88 -0
- package/src/cli/cmd/generate.ts +38 -0
- package/src/cli/cmd/github.ts +1547 -0
- package/src/cli/cmd/import.ts +99 -0
- package/src/cli/cmd/mcp.ts +765 -0
- package/src/cli/cmd/models.ts +77 -0
- package/src/cli/cmd/pr.ts +112 -0
- package/src/cli/cmd/run.ts +395 -0
- package/src/cli/cmd/serve.ts +20 -0
- package/src/cli/cmd/session.ts +135 -0
- package/src/cli/cmd/stats.ts +402 -0
- package/src/cli/cmd/tui/app.tsx +923 -0
- package/src/cli/cmd/tui/attach.ts +39 -0
- package/src/cli/cmd/tui/component/border.tsx +21 -0
- package/src/cli/cmd/tui/component/dialog-agent.tsx +31 -0
- package/src/cli/cmd/tui/component/dialog-command.tsx +162 -0
- package/src/cli/cmd/tui/component/dialog-error-log.tsx +155 -0
- package/src/cli/cmd/tui/component/dialog-mcp.tsx +86 -0
- package/src/cli/cmd/tui/component/dialog-model.tsx +234 -0
- package/src/cli/cmd/tui/component/dialog-provider.tsx +256 -0
- package/src/cli/cmd/tui/component/dialog-session-list.tsx +114 -0
- package/src/cli/cmd/tui/component/dialog-session-rename.tsx +31 -0
- package/src/cli/cmd/tui/component/dialog-stash.tsx +87 -0
- package/src/cli/cmd/tui/component/dialog-status.tsx +164 -0
- package/src/cli/cmd/tui/component/dialog-tag.tsx +44 -0
- package/src/cli/cmd/tui/component/dialog-theme-list.tsx +50 -0
- package/src/cli/cmd/tui/component/dynamic-layout.tsx +86 -0
- package/src/cli/cmd/tui/component/inspector-overlay.tsx +247 -0
- package/src/cli/cmd/tui/component/logo.tsx +88 -0
- package/src/cli/cmd/tui/component/prompt/autocomplete.tsx +653 -0
- package/src/cli/cmd/tui/component/prompt/frecency.tsx +89 -0
- package/src/cli/cmd/tui/component/prompt/history.tsx +108 -0
- package/src/cli/cmd/tui/component/prompt/index.tsx +1347 -0
- package/src/cli/cmd/tui/component/prompt/stash.tsx +101 -0
- package/src/cli/cmd/tui/component/textarea-keybindings.ts +73 -0
- package/src/cli/cmd/tui/component/tips.tsx +153 -0
- package/src/cli/cmd/tui/component/todo-item.tsx +32 -0
- package/src/cli/cmd/tui/context/args.tsx +14 -0
- package/src/cli/cmd/tui/context/directory.ts +13 -0
- package/src/cli/cmd/tui/context/error-log.tsx +56 -0
- package/src/cli/cmd/tui/context/exit.tsx +26 -0
- package/src/cli/cmd/tui/context/helper.tsx +25 -0
- package/src/cli/cmd/tui/context/inspector.tsx +57 -0
- package/src/cli/cmd/tui/context/keybind.tsx +108 -0
- package/src/cli/cmd/tui/context/kv.tsx +53 -0
- package/src/cli/cmd/tui/context/layout.tsx +240 -0
- package/src/cli/cmd/tui/context/local.tsx +402 -0
- package/src/cli/cmd/tui/context/prompt.tsx +18 -0
- package/src/cli/cmd/tui/context/route.tsx +51 -0
- package/src/cli/cmd/tui/context/sdk.tsx +94 -0
- package/src/cli/cmd/tui/context/sync.tsx +449 -0
- package/src/cli/cmd/tui/context/theme/aura.json +69 -0
- package/src/cli/cmd/tui/context/theme/ayu.json +80 -0
- package/src/cli/cmd/tui/context/theme/carbonfox.json +248 -0
- package/src/cli/cmd/tui/context/theme/catppuccin-frappe.json +233 -0
- package/src/cli/cmd/tui/context/theme/catppuccin-macchiato.json +233 -0
- package/src/cli/cmd/tui/context/theme/catppuccin.json +112 -0
- package/src/cli/cmd/tui/context/theme/cobalt2.json +228 -0
- package/src/cli/cmd/tui/context/theme/cursor.json +249 -0
- package/src/cli/cmd/tui/context/theme/dracula.json +219 -0
- package/src/cli/cmd/tui/context/theme/everforest.json +241 -0
- package/src/cli/cmd/tui/context/theme/flexoki.json +237 -0
- package/src/cli/cmd/tui/context/theme/github.json +233 -0
- package/src/cli/cmd/tui/context/theme/gruvbox.json +242 -0
- package/src/cli/cmd/tui/context/theme/jonsoc.json +245 -0
- package/src/cli/cmd/tui/context/theme/kanagawa.json +77 -0
- package/src/cli/cmd/tui/context/theme/lucent-orng.json +237 -0
- package/src/cli/cmd/tui/context/theme/material.json +235 -0
- package/src/cli/cmd/tui/context/theme/matrix.json +77 -0
- package/src/cli/cmd/tui/context/theme/mercury.json +252 -0
- package/src/cli/cmd/tui/context/theme/monokai.json +221 -0
- package/src/cli/cmd/tui/context/theme/nightowl.json +221 -0
- package/src/cli/cmd/tui/context/theme/nord.json +223 -0
- package/src/cli/cmd/tui/context/theme/one-dark.json +84 -0
- package/src/cli/cmd/tui/context/theme/orng.json +249 -0
- package/src/cli/cmd/tui/context/theme/osaka-jade.json +93 -0
- package/src/cli/cmd/tui/context/theme/palenight.json +222 -0
- package/src/cli/cmd/tui/context/theme/rosepine.json +234 -0
- package/src/cli/cmd/tui/context/theme/solarized.json +223 -0
- package/src/cli/cmd/tui/context/theme/synthwave84.json +226 -0
- package/src/cli/cmd/tui/context/theme/tokyonight.json +243 -0
- package/src/cli/cmd/tui/context/theme/vercel.json +245 -0
- package/src/cli/cmd/tui/context/theme/vesper.json +218 -0
- package/src/cli/cmd/tui/context/theme/zenburn.json +223 -0
- package/src/cli/cmd/tui/context/theme.tsx +1152 -0
- package/src/cli/cmd/tui/event.ts +48 -0
- package/src/cli/cmd/tui/hooks/use-command-registry.tsx +184 -0
- package/src/cli/cmd/tui/routes/home.tsx +198 -0
- package/src/cli/cmd/tui/routes/session/dialog-fork-from-timeline.tsx +64 -0
- package/src/cli/cmd/tui/routes/session/dialog-message.tsx +109 -0
- package/src/cli/cmd/tui/routes/session/dialog-subagent.tsx +26 -0
- package/src/cli/cmd/tui/routes/session/dialog-timeline.tsx +47 -0
- package/src/cli/cmd/tui/routes/session/footer.tsx +91 -0
- package/src/cli/cmd/tui/routes/session/git-commit.tsx +59 -0
- package/src/cli/cmd/tui/routes/session/git-history.tsx +122 -0
- package/src/cli/cmd/tui/routes/session/header.tsx +185 -0
- package/src/cli/cmd/tui/routes/session/index.tsx +2363 -0
- package/src/cli/cmd/tui/routes/session/navigator-ui.tsx +214 -0
- package/src/cli/cmd/tui/routes/session/navigator.tsx +1124 -0
- package/src/cli/cmd/tui/routes/session/panel-explorer.tsx +553 -0
- package/src/cli/cmd/tui/routes/session/panel-viewer.tsx +386 -0
- package/src/cli/cmd/tui/routes/session/permission.tsx +501 -0
- package/src/cli/cmd/tui/routes/session/question.tsx +507 -0
- package/src/cli/cmd/tui/routes/session/sidebar.tsx +365 -0
- package/src/cli/cmd/tui/routes/session/vcs-diff-viewer.tsx +37 -0
- package/src/cli/cmd/tui/routes/ui-settings.tsx +449 -0
- package/src/cli/cmd/tui/thread.ts +172 -0
- package/src/cli/cmd/tui/ui/dialog-alert.tsx +90 -0
- package/src/cli/cmd/tui/ui/dialog-confirm.tsx +83 -0
- package/src/cli/cmd/tui/ui/dialog-export-options.tsx +204 -0
- package/src/cli/cmd/tui/ui/dialog-help.tsx +38 -0
- package/src/cli/cmd/tui/ui/dialog-prompt.tsx +77 -0
- package/src/cli/cmd/tui/ui/dialog-select.tsx +384 -0
- package/src/cli/cmd/tui/ui/dialog.tsx +170 -0
- package/src/cli/cmd/tui/ui/link.tsx +28 -0
- package/src/cli/cmd/tui/ui/spinner.ts +375 -0
- package/src/cli/cmd/tui/ui/toast.tsx +100 -0
- package/src/cli/cmd/tui/util/clipboard.ts +255 -0
- package/src/cli/cmd/tui/util/editor.ts +32 -0
- package/src/cli/cmd/tui/util/signal.ts +7 -0
- package/src/cli/cmd/tui/util/terminal.ts +114 -0
- package/src/cli/cmd/tui/util/transcript.ts +98 -0
- package/src/cli/cmd/tui/worker.ts +152 -0
- package/src/cli/cmd/uninstall.ts +362 -0
- package/src/cli/cmd/upgrade.ts +73 -0
- package/src/cli/cmd/web.ts +81 -0
- package/src/cli/error.ts +57 -0
- package/src/cli/network.ts +53 -0
- package/src/cli/ui.ts +119 -0
- package/src/cli/upgrade.ts +25 -0
- package/src/command/index.ts +131 -0
- package/src/command/template/initialize.txt +10 -0
- package/src/command/template/review.txt +99 -0
- package/src/config/config.ts +1404 -0
- package/src/config/markdown.ts +93 -0
- package/src/env/index.ts +26 -0
- package/src/file/ignore.ts +83 -0
- package/src/file/index.ts +432 -0
- package/src/file/ripgrep.ts +407 -0
- package/src/file/time.ts +69 -0
- package/src/file/watcher.ts +127 -0
- package/src/flag/flag.ts +80 -0
- package/src/format/formatter.ts +357 -0
- package/src/format/index.ts +137 -0
- package/src/global/index.ts +58 -0
- package/src/id/id.ts +83 -0
- package/src/ide/index.ts +76 -0
- package/src/index.ts +208 -0
- package/src/installation/index.ts +258 -0
- package/src/lsp/client.ts +252 -0
- package/src/lsp/index.ts +485 -0
- package/src/lsp/language.ts +119 -0
- package/src/lsp/server.ts +2046 -0
- package/src/mcp/auth.ts +135 -0
- package/src/mcp/index.ts +934 -0
- package/src/mcp/oauth-callback.ts +200 -0
- package/src/mcp/oauth-provider.ts +155 -0
- package/src/patch/index.ts +680 -0
- package/src/permission/arity.ts +163 -0
- package/src/permission/index.ts +210 -0
- package/src/permission/next.ts +280 -0
- package/src/plugin/codex.ts +500 -0
- package/src/plugin/copilot.ts +283 -0
- package/src/plugin/index.ts +135 -0
- package/src/project/bootstrap.ts +35 -0
- package/src/project/instance.ts +91 -0
- package/src/project/project.ts +371 -0
- package/src/project/state.ts +66 -0
- package/src/project/vcs.ts +151 -0
- package/src/provider/auth.ts +147 -0
- package/src/provider/models-macro.ts +14 -0
- package/src/provider/models.ts +114 -0
- package/src/provider/provider.ts +1220 -0
- package/src/provider/sdk/openai-compatible/src/README.md +5 -0
- package/src/provider/sdk/openai-compatible/src/index.ts +2 -0
- package/src/provider/sdk/openai-compatible/src/openai-compatible-provider.ts +100 -0
- package/src/provider/sdk/openai-compatible/src/responses/convert-to-openai-responses-input.ts +303 -0
- package/src/provider/sdk/openai-compatible/src/responses/map-openai-responses-finish-reason.ts +22 -0
- package/src/provider/sdk/openai-compatible/src/responses/openai-config.ts +18 -0
- package/src/provider/sdk/openai-compatible/src/responses/openai-error.ts +22 -0
- package/src/provider/sdk/openai-compatible/src/responses/openai-responses-api-types.ts +207 -0
- package/src/provider/sdk/openai-compatible/src/responses/openai-responses-language-model.ts +1732 -0
- package/src/provider/sdk/openai-compatible/src/responses/openai-responses-prepare-tools.ts +177 -0
- package/src/provider/sdk/openai-compatible/src/responses/openai-responses-settings.ts +1 -0
- package/src/provider/sdk/openai-compatible/src/responses/tool/code-interpreter.ts +88 -0
- package/src/provider/sdk/openai-compatible/src/responses/tool/file-search.ts +128 -0
- package/src/provider/sdk/openai-compatible/src/responses/tool/image-generation.ts +115 -0
- package/src/provider/sdk/openai-compatible/src/responses/tool/local-shell.ts +65 -0
- package/src/provider/sdk/openai-compatible/src/responses/tool/web-search-preview.ts +104 -0
- package/src/provider/sdk/openai-compatible/src/responses/tool/web-search.ts +103 -0
- package/src/provider/transform.ts +742 -0
- package/src/pty/index.ts +241 -0
- package/src/question/index.ts +176 -0
- package/src/scheduler/index.ts +61 -0
- package/src/server/error.ts +36 -0
- package/src/server/event.ts +7 -0
- package/src/server/mdns.ts +59 -0
- package/src/server/routes/config.ts +92 -0
- package/src/server/routes/experimental.ts +208 -0
- package/src/server/routes/file.ts +227 -0
- package/src/server/routes/global.ts +135 -0
- package/src/server/routes/mcp.ts +225 -0
- package/src/server/routes/permission.ts +68 -0
- package/src/server/routes/project.ts +82 -0
- package/src/server/routes/provider.ts +165 -0
- package/src/server/routes/pty.ts +169 -0
- package/src/server/routes/question.ts +98 -0
- package/src/server/routes/session.ts +939 -0
- package/src/server/routes/tui.ts +379 -0
- package/src/server/server.ts +663 -0
- package/src/session/compaction.ts +225 -0
- package/src/session/index.ts +498 -0
- package/src/session/llm.ts +288 -0
- package/src/session/message-v2.ts +740 -0
- package/src/session/message.ts +189 -0
- package/src/session/processor.ts +406 -0
- package/src/session/prompt/anthropic-20250930.txt +168 -0
- package/src/session/prompt/anthropic.txt +172 -0
- package/src/session/prompt/anthropic_spoof.txt +1 -0
- package/src/session/prompt/beast.txt +149 -0
- package/src/session/prompt/build-switch.txt +5 -0
- package/src/session/prompt/codex_header.txt +81 -0
- package/src/session/prompt/copilot-gpt-5.txt +145 -0
- package/src/session/prompt/gemini.txt +157 -0
- package/src/session/prompt/max-steps.txt +16 -0
- package/src/session/prompt/plan-reminder-anthropic.txt +67 -0
- package/src/session/prompt/plan.txt +26 -0
- package/src/session/prompt/qwen.txt +111 -0
- package/src/session/prompt.ts +1815 -0
- package/src/session/retry.ts +90 -0
- package/src/session/revert.ts +121 -0
- package/src/session/status.ts +76 -0
- package/src/session/summary.ts +150 -0
- package/src/session/system.ts +156 -0
- package/src/session/todo.ts +37 -0
- package/src/share/share-next.ts +205 -0
- package/src/share/share.ts +95 -0
- package/src/shell/shell.ts +67 -0
- package/src/skill/index.ts +1 -0
- package/src/skill/skill.ts +135 -0
- package/src/snapshot/index.ts +236 -0
- package/src/storage/storage.ts +227 -0
- package/src/tool/apply_patch.ts +279 -0
- package/src/tool/apply_patch.txt +33 -0
- package/src/tool/bash.ts +258 -0
- package/src/tool/bash.txt +115 -0
- package/src/tool/batch.ts +175 -0
- package/src/tool/batch.txt +24 -0
- package/src/tool/codesearch.ts +132 -0
- package/src/tool/codesearch.txt +12 -0
- package/src/tool/edit.ts +645 -0
- package/src/tool/edit.txt +10 -0
- package/src/tool/external-directory.ts +32 -0
- package/src/tool/glob.ts +77 -0
- package/src/tool/glob.txt +6 -0
- package/src/tool/grep.ts +154 -0
- package/src/tool/grep.txt +8 -0
- package/src/tool/invalid.ts +17 -0
- package/src/tool/ls.ts +121 -0
- package/src/tool/ls.txt +1 -0
- package/src/tool/lsp.ts +96 -0
- package/src/tool/lsp.txt +19 -0
- package/src/tool/multiedit.ts +46 -0
- package/src/tool/multiedit.txt +41 -0
- package/src/tool/plan-enter.txt +14 -0
- package/src/tool/plan-exit.txt +13 -0
- package/src/tool/plan.ts +130 -0
- package/src/tool/question.ts +33 -0
- package/src/tool/question.txt +10 -0
- package/src/tool/read.ts +202 -0
- package/src/tool/read.txt +12 -0
- package/src/tool/registry.ts +162 -0
- package/src/tool/skill.ts +82 -0
- package/src/tool/task.ts +188 -0
- package/src/tool/task.txt +60 -0
- package/src/tool/todo.ts +53 -0
- package/src/tool/todoread.txt +14 -0
- package/src/tool/todowrite.txt +167 -0
- package/src/tool/tool.ts +88 -0
- package/src/tool/truncation.ts +106 -0
- package/src/tool/webfetch.ts +182 -0
- package/src/tool/webfetch.txt +13 -0
- package/src/tool/websearch.ts +150 -0
- package/src/tool/websearch.txt +14 -0
- package/src/tool/write.ts +80 -0
- package/src/tool/write.txt +8 -0
- package/src/util/archive.ts +16 -0
- package/src/util/color.ts +19 -0
- package/src/util/context.ts +25 -0
- package/src/util/defer.ts +12 -0
- package/src/util/eventloop.ts +20 -0
- package/src/util/filesystem.ts +93 -0
- package/src/util/fn.ts +11 -0
- package/src/util/format.ts +20 -0
- package/src/util/iife.ts +3 -0
- package/src/util/keybind.ts +103 -0
- package/src/util/lazy.ts +18 -0
- package/src/util/locale.ts +81 -0
- package/src/util/lock.ts +98 -0
- package/src/util/log.ts +180 -0
- package/src/util/queue.ts +32 -0
- package/src/util/rpc.ts +66 -0
- package/src/util/scrap.ts +10 -0
- package/src/util/signal.ts +12 -0
- package/src/util/timeout.ts +14 -0
- package/src/util/token.ts +7 -0
- package/src/util/wildcard.ts +56 -0
- package/src/worktree/index.ts +524 -0
- package/sst-env.d.ts +9 -0
- package/test/acp/agent-interface.test.ts +51 -0
- package/test/acp/event-subscription.test.ts +436 -0
- package/test/agent/agent.test.ts +638 -0
- package/test/bun.test.ts +53 -0
- package/test/cli/cmd/tui/fileref.test.ts +30 -0
- package/test/cli/github-action.test.ts +129 -0
- package/test/cli/github-remote.test.ts +80 -0
- package/test/cli/tui/navigator_logic.test.ts +99 -0
- package/test/cli/tui/transcript.test.ts +297 -0
- package/test/cli/ui.test.ts +80 -0
- package/test/config/agent-color.test.ts +66 -0
- package/test/config/config.test.ts +1613 -0
- package/test/config/fixtures/empty-frontmatter.md +4 -0
- package/test/config/fixtures/frontmatter.md +28 -0
- package/test/config/fixtures/no-frontmatter.md +1 -0
- package/test/config/markdown.test.ts +192 -0
- package/test/file/ignore.test.ts +10 -0
- package/test/file/path-traversal.test.ts +198 -0
- package/test/fixture/fixture.ts +45 -0
- package/test/fixture/lsp/fake-lsp-server.js +77 -0
- package/test/ide/ide.test.ts +82 -0
- package/test/keybind.test.ts +421 -0
- package/test/lsp/client.test.ts +95 -0
- package/test/mcp/headers.test.ts +153 -0
- package/test/mcp/oauth-browser.test.ts +261 -0
- package/test/patch/patch.test.ts +348 -0
- package/test/permission/arity.test.ts +33 -0
- package/test/permission/next.test.ts +690 -0
- package/test/permission-task.test.ts +319 -0
- package/test/plugin/codex.test.ts +123 -0
- package/test/preload.ts +67 -0
- package/test/project/project.test.ts +120 -0
- package/test/provider/amazon-bedrock.test.ts +268 -0
- package/test/provider/gitlab-duo.test.ts +286 -0
- package/test/provider/provider.test.ts +2149 -0
- package/test/provider/transform.test.ts +1631 -0
- package/test/question/question.test.ts +300 -0
- package/test/scheduler.test.ts +73 -0
- package/test/server/session-list.test.ts +39 -0
- package/test/server/session-select.test.ts +78 -0
- package/test/session/compaction.test.ts +293 -0
- package/test/session/llm.test.ts +90 -0
- package/test/session/message-v2.test.ts +786 -0
- package/test/session/retry.test.ts +131 -0
- package/test/session/revert-compact.test.ts +285 -0
- package/test/session/session.test.ts +71 -0
- package/test/skill/skill.test.ts +185 -0
- package/test/snapshot/snapshot.test.ts +939 -0
- package/test/tool/__snapshots__/tool.test.ts.snap +9 -0
- package/test/tool/apply_patch.test.ts +499 -0
- package/test/tool/bash.test.ts +320 -0
- package/test/tool/external-directory.test.ts +126 -0
- package/test/tool/fixtures/large-image.png +0 -0
- package/test/tool/fixtures/models-api.json +33453 -0
- package/test/tool/grep.test.ts +109 -0
- package/test/tool/question.test.ts +105 -0
- package/test/tool/read.test.ts +332 -0
- package/test/tool/registry.test.ts +76 -0
- package/test/tool/truncation.test.ts +159 -0
- package/test/util/filesystem.test.ts +39 -0
- package/test/util/format.test.ts +59 -0
- package/test/util/iife.test.ts +36 -0
- package/test/util/lazy.test.ts +50 -0
- package/test/util/lock.test.ts +72 -0
- package/test/util/timeout.test.ts +21 -0
- package/test/util/wildcard.test.ts +75 -0
- package/tsconfig.json +16 -0
package/AGENTS.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# jonsoc agent guidelines
|
|
2
|
+
|
|
3
|
+
## Build/Test Commands
|
|
4
|
+
|
|
5
|
+
- **Install**: `bun install`
|
|
6
|
+
- **Run**: `bun run --conditions=browser ./src/index.ts`
|
|
7
|
+
- **Typecheck**: `bun run typecheck` (npm run typecheck)
|
|
8
|
+
- **Test**: `bun test` (runs all tests)
|
|
9
|
+
- **Single test**: `bun test test/tool/tool.test.ts` (specific test file)
|
|
10
|
+
|
|
11
|
+
## Code Style
|
|
12
|
+
|
|
13
|
+
- **Runtime**: Bun with TypeScript ESM modules
|
|
14
|
+
- **Imports**: Use relative imports for local modules, named imports preferred
|
|
15
|
+
- **Types**: Zod schemas for validation, TypeScript interfaces for structure
|
|
16
|
+
- **Naming**: camelCase for variables/functions, PascalCase for classes/namespaces
|
|
17
|
+
- **Error handling**: Use Result patterns, avoid throwing exceptions in tools
|
|
18
|
+
- **File structure**: Namespace-based organization (e.g., `Tool.define()`, `Session.create()`)
|
|
19
|
+
|
|
20
|
+
## Architecture
|
|
21
|
+
|
|
22
|
+
- **Tools**: Implement `Tool.Info` interface with `execute()` method
|
|
23
|
+
- **Context**: Pass `sessionID` in tool context, use `App.provide()` for DI
|
|
24
|
+
- **Validation**: All inputs validated with Zod schemas
|
|
25
|
+
- **Logging**: Use `Log.create({ service: "name" })` pattern
|
|
26
|
+
- **Storage**: Use `Storage` namespace for persistence
|
|
27
|
+
- **API Client**: The TypeScript TUI (built with SolidJS + OpenTUI) communicates with the JonsOC server using `@jonsoc/sdk`. When adding/modifying server endpoints in `packages/jonsoc/src/server/server.ts`, run `./script/generate.ts` to regenerate the SDK and related files.
|
package/Dockerfile
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
FROM alpine AS base
|
|
2
|
+
|
|
3
|
+
# Disable the runtime transpiler cache by default inside Docker containers.
|
|
4
|
+
# On ephemeral containers, the cache is not useful
|
|
5
|
+
ARG BUN_RUNTIME_TRANSPILER_CACHE_PATH=0
|
|
6
|
+
ENV BUN_RUNTIME_TRANSPILER_CACHE_PATH=${BUN_RUNTIME_TRANSPILER_CACHE_PATH}
|
|
7
|
+
RUN apk add libgcc libstdc++ ripgrep
|
|
8
|
+
|
|
9
|
+
FROM base AS build-amd64
|
|
10
|
+
COPY dist/opencode-linux-x64-baseline-musl/bin/opencode /usr/local/bin/opencode
|
|
11
|
+
|
|
12
|
+
FROM base AS build-arm64
|
|
13
|
+
COPY dist/opencode-linux-arm64-musl/bin/opencode /usr/local/bin/opencode
|
|
14
|
+
|
|
15
|
+
ARG TARGETARCH
|
|
16
|
+
FROM build-${TARGETARCH}
|
|
17
|
+
RUN opencode --version
|
|
18
|
+
ENTRYPOINT ["opencode"]
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# Publishing jonsOC to npm
|
|
2
|
+
|
|
3
|
+
This guide explains how to publish jonsOC as a global npm package that users can install with `bun add -g jonsoc` or `npm install -g jonsoc`.
|
|
4
|
+
|
|
5
|
+
## Changes Made
|
|
6
|
+
|
|
7
|
+
1. **Removed `"private": true`** from `package.json` to allow publishing
|
|
8
|
+
2. **Updated package name** in publish script from "jonsoc" to "jonsoc"
|
|
9
|
+
3. **Added npm metadata** (description, keywords, repository, etc.) for better discoverability
|
|
10
|
+
4. **Updated README** with installation and usage instructions
|
|
11
|
+
|
|
12
|
+
## How It Works
|
|
13
|
+
|
|
14
|
+
jonsOC uses a multi-package distribution strategy (similar to esbuild, Parcel, etc.):
|
|
15
|
+
|
|
16
|
+
1. **Main package (`jonsoc`)**: Contains the wrapper script that users install
|
|
17
|
+
2. **Platform-specific packages**: Compiled binaries for each platform:
|
|
18
|
+
- `jonsoc-linux-x64`
|
|
19
|
+
- `jonsoc-darwin-arm64`
|
|
20
|
+
- `jonsoc-windows-x64`
|
|
21
|
+
|
|
22
|
+
When users install `jonsoc`, npm automatically installs the correct platform-specific binary as an optional dependency.
|
|
23
|
+
|
|
24
|
+
## Prerequisites
|
|
25
|
+
|
|
26
|
+
Before publishing, make sure you:
|
|
27
|
+
|
|
28
|
+
1. **Have an npm account**: Sign up at https://www.npmjs.com
|
|
29
|
+
2. **Are logged in to npm**:
|
|
30
|
+
```bash
|
|
31
|
+
npm login
|
|
32
|
+
```
|
|
33
|
+
3. **Check package name availability**:
|
|
34
|
+
```bash
|
|
35
|
+
npm view jonsoc
|
|
36
|
+
```
|
|
37
|
+
If the package exists and isn't yours, you'll need to choose a different name.
|
|
38
|
+
|
|
39
|
+
## Publishing Steps
|
|
40
|
+
|
|
41
|
+
### 1. Build all platform binaries
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
cd packages/jonsoc
|
|
45
|
+
bun run build
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
This creates compiled binaries for all supported platforms in the `dist/` directory.
|
|
49
|
+
|
|
50
|
+
### 2. Test locally (optional but recommended)
|
|
51
|
+
|
|
52
|
+
Build for your current platform only:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
bun run build -- --single
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Test the binary:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
./dist/jonsoc-<your-platform>-<your-arch>/bin/jonsoc --version
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 3. Publish to npm
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
bun run script/publish.ts
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
This will:
|
|
71
|
+
|
|
72
|
+
- Publish all platform-specific packages
|
|
73
|
+
- Publish the main `jonsoc` package
|
|
74
|
+
- Create GitHub release archives (if configured)
|
|
75
|
+
|
|
76
|
+
### 4. Test the published package
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# In a different directory
|
|
80
|
+
bun add -g jonsoc
|
|
81
|
+
|
|
82
|
+
# Verify installation
|
|
83
|
+
jonsoc --version
|
|
84
|
+
jonsoc --help
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Version Management
|
|
88
|
+
|
|
89
|
+
The version is managed in `@jonsoc/script` package. To publish a new version:
|
|
90
|
+
|
|
91
|
+
1. Update the version in the script package
|
|
92
|
+
2. Run the build and publish commands
|
|
93
|
+
|
|
94
|
+
## Troubleshooting
|
|
95
|
+
|
|
96
|
+
### Package name already taken
|
|
97
|
+
|
|
98
|
+
If `jonsoc` is already taken on npm, you have a few options:
|
|
99
|
+
|
|
100
|
+
1. **Use a scoped package**: Change to `@your-username/jonsoc`
|
|
101
|
+
2. **Choose a different name**: e.g., `jonsoc-cli`, `jonsoc-dev`, etc.
|
|
102
|
+
3. **Contact the current owner** if the package is abandoned
|
|
103
|
+
|
|
104
|
+
To use a scoped package, update the `name` field in `package.json`:
|
|
105
|
+
|
|
106
|
+
```json
|
|
107
|
+
{
|
|
108
|
+
"name": "@your-username/jonsoc"
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Authentication errors
|
|
113
|
+
|
|
114
|
+
If you get authentication errors:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
npm whoami # Check if logged in
|
|
118
|
+
npm login # Login if needed
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Platform binary issues
|
|
122
|
+
|
|
123
|
+
If a specific platform binary fails to build:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# Build only current platform for testing
|
|
127
|
+
bun run build -- --single
|
|
128
|
+
|
|
129
|
+
# Skip npm install during build
|
|
130
|
+
bun run build -- --skip-install
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Publishing Updates
|
|
134
|
+
|
|
135
|
+
When publishing updates:
|
|
136
|
+
|
|
137
|
+
1. Update version in script package
|
|
138
|
+
2. Run `bun run build`
|
|
139
|
+
3. Run `bun run script/publish.ts`
|
|
140
|
+
|
|
141
|
+
The publish script automatically:
|
|
142
|
+
|
|
143
|
+
- Tags releases based on the channel (stable, preview, etc.)
|
|
144
|
+
- Creates platform-specific packages
|
|
145
|
+
- Updates the main package
|
|
146
|
+
|
|
147
|
+
## Notes
|
|
148
|
+
|
|
149
|
+
- The publish script uses `--access public` to ensure packages are publicly available
|
|
150
|
+
- Platform-specific binaries are automatically selected during installation based on OS and architecture
|
|
151
|
+
- The bin wrapper (`bin/jonsoc`) handles finding and executing the correct binary
|
package/README.md
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# jonsOC
|
|
2
|
+
|
|
3
|
+
AI-powered development tool for modern coding workflows.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Install globally using bun:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
bun add -g jonsoc
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Or with npm:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install -g jonsoc
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
Once installed, you can use jonsOC from anywhere:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
jonsoc --help
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Development
|
|
28
|
+
|
|
29
|
+
To install dependencies:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
bun install
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
To run locally:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
bun run dev
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
To build for all platforms:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
bun run build
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Publishing
|
|
48
|
+
|
|
49
|
+
To build and publish to npm:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
bun run build
|
|
53
|
+
bun run script/publish.ts
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## License
|
|
57
|
+
|
|
58
|
+
MIT
|