@sleepy-ai/cli 0.1.6 → 0.1.7
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/{src/skill/compose/LICENSE-superpowers → LICENSE} +3 -6
- package/README.md +139 -6
- package/package.json +35 -199
- package/postinstall.mjs +102 -0
- package/.sleepycode-test-fixtures-50158/sleepycode-test-eqsxv84ythu/.watcher-b67v64k2mnv +0 -1
- package/Dockerfile +0 -18
- package/drizzle.config.ts +0 -10
- package/git +0 -0
- package/migration/20260127222353_familiar_lady_ursula/migration.sql +0 -90
- package/migration/20260127222353_familiar_lady_ursula/snapshot.json +0 -796
- package/migration/20260211171708_add_project_commands/migration.sql +0 -1
- package/migration/20260211171708_add_project_commands/snapshot.json +0 -806
- package/migration/20260213144116_wakeful_the_professor/migration.sql +0 -11
- package/migration/20260213144116_wakeful_the_professor/snapshot.json +0 -897
- package/migration/20260225215848_workspace/migration.sql +0 -7
- package/migration/20260225215848_workspace/snapshot.json +0 -959
- package/migration/20260227213759_add_session_workspace_id/migration.sql +0 -2
- package/migration/20260227213759_add_session_workspace_id/snapshot.json +0 -983
- package/migration/20260228203230_blue_harpoon/migration.sql +0 -17
- package/migration/20260228203230_blue_harpoon/snapshot.json +0 -1102
- package/migration/20260303231226_add_workspace_fields/migration.sql +0 -5
- package/migration/20260303231226_add_workspace_fields/snapshot.json +0 -1013
- package/migration/20260309230000_move_org_to_state/migration.sql +0 -3
- package/migration/20260309230000_move_org_to_state/snapshot.json +0 -1156
- package/migration/20260312043431_session_message_cursor/migration.sql +0 -4
- package/migration/20260312043431_session_message_cursor/snapshot.json +0 -1168
- package/migration/20260323234822_events/migration.sql +0 -13
- package/migration/20260323234822_events/snapshot.json +0 -1271
- package/migration/20260410174513_workspace-name/migration.sql +0 -16
- package/migration/20260410174513_workspace-name/snapshot.json +0 -1271
- package/migration/20260413175956_chief_energizer/migration.sql +0 -13
- package/migration/20260413175956_chief_energizer/snapshot.json +0 -1399
- package/migration/20260422160000_context_inheritance/migration.sql +0 -3
- package/migration/20260422170000_task_registry/migration.sql +0 -18
- package/migration/20260423145421_remove_session_entry/migration.sql +0 -4
- package/migration/20260515000000_actor_rename/migration.sql +0 -7
- package/migration/20260515010000_memory_fts/migration.sql +0 -33
- package/migration/20260515020000_user_task/migration.sql +0 -29
- package/migration/20260519000000_last_checkpoint_message_id/migration.sql +0 -1
- package/migration/20260521000000_message_agent_id/migration.sql +0 -2
- package/migration/20260521000100_actor_registry_v6/migration.sql +0 -25
- package/migration/20260521010000_memory_fts_v6/migration.sql +0 -33
- package/migration/20260521020000_memory_fts_triggers/migration.sql +0 -17
- package/migration/20260526000000_agent_id_main/migration.sql +0 -14
- package/migration/20260527000000_actor_lifecycle/migration.sql +0 -8
- package/migration/20260527000100_inbox/migration.sql +0 -12
- package/migration/20260529000000_task_todo_redesign/migration.sql +0 -16
- package/migration/20260603000000_task_in_progress_owner/migration.sql +0 -1
- package/migration/20260603000000_workflow_run/migration.sql +0 -17
- package/migration/20260604000000_workflow_script_sha/migration.sql +0 -1
- package/migration/20260608000000_claude_import/migration.sql +0 -7
- package/migration/20260608010000_claude_import_message_ids/migration.sql +0 -1
- package/migration/20260609000000_history_fts/migration.sql +0 -29
- package/migration/20260609230000_workflow_agent_timeout/migration.sql +0 -1
- package/migration/20260612000000_external_import/migration.sql +0 -16
- package/parsers-config.ts +0 -290
- package/src/account/account.sql.ts +0 -39
- package/src/account/account.ts +0 -456
- package/src/account/repo.ts +0 -166
- package/src/account/schema.ts +0 -99
- package/src/account/url.ts +0 -8
- package/src/acp/README.md +0 -174
- package/src/acp/agent.ts +0 -1787
- package/src/acp/session.ts +0 -116
- package/src/acp/types.ts +0 -24
- package/src/actor/actor.sql.ts +0 -38
- package/src/actor/events.ts +0 -67
- package/src/actor/index.ts +0 -2
- package/src/actor/registry.ts +0 -412
- package/src/actor/return-header.ts +0 -24
- package/src/actor/schema.ts +0 -47
- package/src/actor/spawn-ref.ts +0 -16
- package/src/actor/spawn.ts +0 -756
- package/src/actor/turn.ts +0 -49
- package/src/actor/waiter.ts +0 -166
- package/src/agent/agent.ts +0 -574
- package/src/agent/config.ts +0 -5
- package/src/agent/generate.txt +0 -75
- package/src/agent/prompt/checkpoint-writer.txt +0 -167
- package/src/agent/prompt/compaction.txt +0 -9
- package/src/agent/prompt/distill.txt +0 -199
- package/src/agent/prompt/dream.txt +0 -155
- package/src/agent/prompt/explore.txt +0 -18
- package/src/agent/prompt/summary.txt +0 -11
- package/src/agent/prompt/title.txt +0 -44
- package/src/audio.d.ts +0 -9
- package/src/auth/index.ts +0 -97
- package/src/bus/bus-event.ts +0 -33
- package/src/bus/global.ts +0 -12
- package/src/bus/index.ts +0 -193
- package/src/cli/bootstrap.ts +0 -33
- package/src/cli/cmd/account.ts +0 -258
- package/src/cli/cmd/acp.ts +0 -70
- package/src/cli/cmd/agent.ts +0 -248
- package/src/cli/cmd/cmd.ts +0 -7
- package/src/cli/cmd/db.ts +0 -120
- package/src/cli/cmd/debug/agent.ts +0 -192
- package/src/cli/cmd/debug/config.ts +0 -17
- package/src/cli/cmd/debug/file.ts +0 -100
- package/src/cli/cmd/debug/index.ts +0 -48
- package/src/cli/cmd/debug/lsp.ts +0 -61
- package/src/cli/cmd/debug/ripgrep.ts +0 -105
- package/src/cli/cmd/debug/scrap.ts +0 -16
- package/src/cli/cmd/debug/skill.ts +0 -23
- package/src/cli/cmd/debug/snapshot.ts +0 -53
- package/src/cli/cmd/doctor.ts +0 -116
- package/src/cli/cmd/export.ts +0 -306
- package/src/cli/cmd/generate.ts +0 -50
- package/src/cli/cmd/github.ts +0 -1647
- package/src/cli/cmd/import.ts +0 -208
- package/src/cli/cmd/init.ts +0 -97
- package/src/cli/cmd/login.ts +0 -402
- package/src/cli/cmd/mcp.ts +0 -812
- package/src/cli/cmd/models.ts +0 -88
- package/src/cli/cmd/plug.ts +0 -233
- package/src/cli/cmd/pr.ts +0 -138
- package/src/cli/cmd/providers.ts +0 -713
- package/src/cli/cmd/run-completion.ts +0 -77
- package/src/cli/cmd/run.ts +0 -694
- package/src/cli/cmd/serve.ts +0 -30
- package/src/cli/cmd/session.ts +0 -181
- package/src/cli/cmd/stats.ts +0 -413
- package/src/cli/cmd/tui/app.tsx +0 -1181
- package/src/cli/cmd/tui/asset/TEN_VAD_LICENSE +0 -12
- package/src/cli/cmd/tui/asset/charge.wav +0 -0
- package/src/cli/cmd/tui/asset/pulse-a.wav +0 -0
- package/src/cli/cmd/tui/asset/pulse-b.wav +0 -0
- package/src/cli/cmd/tui/asset/pulse-c.wav +0 -0
- package/src/cli/cmd/tui/asset/ten_vad.wasm +0 -0
- package/src/cli/cmd/tui/asset/ten_vad_loader.js +0 -30
- package/src/cli/cmd/tui/attach.ts +0 -84
- package/src/cli/cmd/tui/component/background-image.tsx +0 -150
- package/src/cli/cmd/tui/component/banner-session-expired.tsx +0 -48
- package/src/cli/cmd/tui/component/bg-pulse.tsx +0 -130
- package/src/cli/cmd/tui/component/border.tsx +0 -21
- package/src/cli/cmd/tui/component/dialog-agent.tsx +0 -31
- package/src/cli/cmd/tui/component/dialog-agreement.tsx +0 -111
- package/src/cli/cmd/tui/component/dialog-command.tsx +0 -219
- package/src/cli/cmd/tui/component/dialog-console-org.tsx +0 -103
- package/src/cli/cmd/tui/component/dialog-go-upsell.tsx +0 -157
- package/src/cli/cmd/tui/component/dialog-image-list.tsx +0 -111
- package/src/cli/cmd/tui/component/dialog-logo-design.tsx +0 -37
- package/src/cli/cmd/tui/component/dialog-mcp.tsx +0 -86
- package/src/cli/cmd/tui/component/dialog-model.tsx +0 -299
- package/src/cli/cmd/tui/component/dialog-provider.tsx +0 -449
- package/src/cli/cmd/tui/component/dialog-session-delete-failed.tsx +0 -101
- package/src/cli/cmd/tui/component/dialog-session-list.tsx +0 -269
- package/src/cli/cmd/tui/component/dialog-session-rename.tsx +0 -31
- package/src/cli/cmd/tui/component/dialog-skill.tsx +0 -42
- package/src/cli/cmd/tui/component/dialog-sleepy-login.tsx +0 -288
- package/src/cli/cmd/tui/component/dialog-stash.tsx +0 -87
- package/src/cli/cmd/tui/component/dialog-status.tsx +0 -170
- package/src/cli/cmd/tui/component/dialog-tag.tsx +0 -44
- package/src/cli/cmd/tui/component/dialog-theme-list.tsx +0 -50
- package/src/cli/cmd/tui/component/dialog-token-plan.tsx +0 -77
- package/src/cli/cmd/tui/component/dialog-variant.tsx +0 -39
- package/src/cli/cmd/tui/component/dialog-workflows.tsx +0 -51
- package/src/cli/cmd/tui/component/dialog-workspace-create.tsx +0 -289
- package/src/cli/cmd/tui/component/dialog-workspace-unavailable.tsx +0 -81
- package/src/cli/cmd/tui/component/dialog-worktree.tsx +0 -90
- package/src/cli/cmd/tui/component/error-component.tsx +0 -92
- package/src/cli/cmd/tui/component/logo.tsx +0 -961
- package/src/cli/cmd/tui/component/plugin-route-missing.tsx +0 -14
- package/src/cli/cmd/tui/component/prompt/autocomplete-detect.ts +0 -34
- package/src/cli/cmd/tui/component/prompt/autocomplete.tsx +0 -668
- package/src/cli/cmd/tui/component/prompt/cwd.ts +0 -0
- package/src/cli/cmd/tui/component/prompt/frecency.tsx +0 -90
- package/src/cli/cmd/tui/component/prompt/history.tsx +0 -108
- package/src/cli/cmd/tui/component/prompt/index.tsx +0 -1869
- package/src/cli/cmd/tui/component/prompt/offset.ts +0 -45
- package/src/cli/cmd/tui/component/prompt/part.ts +0 -36
- package/src/cli/cmd/tui/component/prompt/stash.tsx +0 -101
- package/src/cli/cmd/tui/component/spinner.tsx +0 -24
- package/src/cli/cmd/tui/component/starry-background.tsx +0 -305
- package/src/cli/cmd/tui/component/startup-loading.tsx +0 -67
- package/src/cli/cmd/tui/component/task-item.tsx +0 -63
- package/src/cli/cmd/tui/component/textarea-keybindings.ts +0 -73
- package/src/cli/cmd/tui/component/todo-item.tsx +0 -32
- package/src/cli/cmd/tui/component/workflow-tree.tsx +0 -177
- package/src/cli/cmd/tui/config/cwd.ts +0 -5
- package/src/cli/cmd/tui/config/tui-migrate.ts +0 -151
- package/src/cli/cmd/tui/config/tui-schema.ts +0 -38
- package/src/cli/cmd/tui/config/tui.ts +0 -219
- package/src/cli/cmd/tui/context/args.tsx +0 -16
- package/src/cli/cmd/tui/context/directory.ts +0 -15
- package/src/cli/cmd/tui/context/event.ts +0 -45
- package/src/cli/cmd/tui/context/exit.tsx +0 -65
- package/src/cli/cmd/tui/context/helper.tsx +0 -25
- package/src/cli/cmd/tui/context/keybind.tsx +0 -105
- package/src/cli/cmd/tui/context/kv.tsx +0 -86
- package/src/cli/cmd/tui/context/language.tsx +0 -91
- package/src/cli/cmd/tui/context/local.tsx +0 -469
- package/src/cli/cmd/tui/context/plugin-keybinds.ts +0 -41
- package/src/cli/cmd/tui/context/project.tsx +0 -109
- package/src/cli/cmd/tui/context/prompt.tsx +0 -18
- package/src/cli/cmd/tui/context/route.tsx +0 -68
- package/src/cli/cmd/tui/context/sdk.tsx +0 -150
- package/src/cli/cmd/tui/context/sync.tsx +0 -884
- package/src/cli/cmd/tui/context/theme/aura.json +0 -69
- package/src/cli/cmd/tui/context/theme/ayu.json +0 -80
- package/src/cli/cmd/tui/context/theme/carbonfox.json +0 -248
- package/src/cli/cmd/tui/context/theme/catppuccin-frappe.json +0 -230
- package/src/cli/cmd/tui/context/theme/catppuccin-macchiato.json +0 -230
- package/src/cli/cmd/tui/context/theme/catppuccin.json +0 -112
- package/src/cli/cmd/tui/context/theme/cobalt2.json +0 -225
- package/src/cli/cmd/tui/context/theme/cursor.json +0 -249
- package/src/cli/cmd/tui/context/theme/dracula.json +0 -219
- package/src/cli/cmd/tui/context/theme/everforest.json +0 -241
- package/src/cli/cmd/tui/context/theme/flexoki.json +0 -237
- package/src/cli/cmd/tui/context/theme/github.json +0 -233
- package/src/cli/cmd/tui/context/theme/gruvbox.json +0 -242
- package/src/cli/cmd/tui/context/theme/kanagawa.json +0 -77
- package/src/cli/cmd/tui/context/theme/lucent-orng.json +0 -234
- package/src/cli/cmd/tui/context/theme/material.json +0 -235
- package/src/cli/cmd/tui/context/theme/matrix.json +0 -77
- package/src/cli/cmd/tui/context/theme/mercury.json +0 -252
- package/src/cli/cmd/tui/context/theme/monokai.json +0 -221
- package/src/cli/cmd/tui/context/theme/nightowl.json +0 -221
- package/src/cli/cmd/tui/context/theme/nord.json +0 -223
- package/src/cli/cmd/tui/context/theme/one-dark.json +0 -84
- package/src/cli/cmd/tui/context/theme/orng.json +0 -249
- package/src/cli/cmd/tui/context/theme/osaka-jade.json +0 -93
- package/src/cli/cmd/tui/context/theme/palenight.json +0 -222
- package/src/cli/cmd/tui/context/theme/rosepine.json +0 -234
- package/src/cli/cmd/tui/context/theme/sleepycode.json +0 -245
- package/src/cli/cmd/tui/context/theme/solarized.json +0 -223
- package/src/cli/cmd/tui/context/theme/synthwave84.json +0 -226
- package/src/cli/cmd/tui/context/theme/tokyonight.json +0 -243
- package/src/cli/cmd/tui/context/theme/vercel.json +0 -245
- package/src/cli/cmd/tui/context/theme/vesper.json +0 -218
- package/src/cli/cmd/tui/context/theme/zenburn.json +0 -223
- package/src/cli/cmd/tui/context/theme.tsx +0 -1298
- package/src/cli/cmd/tui/context/thinking.ts +0 -48
- package/src/cli/cmd/tui/context/tui-config.tsx +0 -9
- package/src/cli/cmd/tui/event.ts +0 -62
- package/src/cli/cmd/tui/feature-plugins/home/footer.tsx +0 -93
- package/src/cli/cmd/tui/feature-plugins/home/tips-view.tsx +0 -193
- package/src/cli/cmd/tui/feature-plugins/home/tips.tsx +0 -54
- package/src/cli/cmd/tui/feature-plugins/sidebar/context.tsx +0 -267
- package/src/cli/cmd/tui/feature-plugins/sidebar/cwd.tsx +0 -45
- package/src/cli/cmd/tui/feature-plugins/sidebar/files.tsx +0 -62
- package/src/cli/cmd/tui/feature-plugins/sidebar/footer.tsx +0 -93
- package/src/cli/cmd/tui/feature-plugins/sidebar/goal.tsx +0 -84
- package/src/cli/cmd/tui/feature-plugins/sidebar/instructions.tsx +0 -54
- package/src/cli/cmd/tui/feature-plugins/sidebar/lsp.tsx +0 -66
- package/src/cli/cmd/tui/feature-plugins/sidebar/mascot.tsx +0 -69
- package/src/cli/cmd/tui/feature-plugins/sidebar/mcp.tsx +0 -98
- package/src/cli/cmd/tui/feature-plugins/sidebar/task.tsx +0 -95
- package/src/cli/cmd/tui/feature-plugins/sidebar/todo.tsx +0 -51
- package/src/cli/cmd/tui/feature-plugins/sidebar/tps.ts +0 -31
- package/src/cli/cmd/tui/feature-plugins/system/plugins.tsx +0 -274
- package/src/cli/cmd/tui/i18n/en.ts +0 -465
- package/src/cli/cmd/tui/i18n/es.ts +0 -508
- package/src/cli/cmd/tui/i18n/fr.ts +0 -515
- package/src/cli/cmd/tui/i18n/ja.ts +0 -463
- package/src/cli/cmd/tui/i18n/locales.ts +0 -82
- package/src/cli/cmd/tui/i18n/ru.ts +0 -527
- package/src/cli/cmd/tui/i18n/slash-command.ts +0 -11
- package/src/cli/cmd/tui/i18n/zh.ts +0 -454
- package/src/cli/cmd/tui/i18n/zht.ts +0 -430
- package/src/cli/cmd/tui/layer.ts +0 -6
- package/src/cli/cmd/tui/plugin/api.tsx +0 -402
- package/src/cli/cmd/tui/plugin/index.ts +0 -3
- package/src/cli/cmd/tui/plugin/internal.ts +0 -37
- package/src/cli/cmd/tui/plugin/runtime.ts +0 -1057
- package/src/cli/cmd/tui/plugin/slots.tsx +0 -60
- package/src/cli/cmd/tui/routes/home.tsx +0 -165
- package/src/cli/cmd/tui/routes/session/dialog-fork-from-timeline.tsx +0 -76
- package/src/cli/cmd/tui/routes/session/dialog-message.tsx +0 -116
- package/src/cli/cmd/tui/routes/session/dialog-subagent.tsx +0 -47
- package/src/cli/cmd/tui/routes/session/dialog-timeline.tsx +0 -47
- package/src/cli/cmd/tui/routes/session/footer.tsx +0 -91
- package/src/cli/cmd/tui/routes/session/index.tsx +0 -3073
- package/src/cli/cmd/tui/routes/session/permission.tsx +0 -697
- package/src/cli/cmd/tui/routes/session/question.tsx +0 -488
- package/src/cli/cmd/tui/routes/session/sidebar.tsx +0 -97
- package/src/cli/cmd/tui/routes/session/subagent-footer.tsx +0 -143
- package/src/cli/cmd/tui/thread.ts +0 -324
- package/src/cli/cmd/tui/ui/dialog-alert.tsx +0 -61
- package/src/cli/cmd/tui/ui/dialog-confirm.tsx +0 -95
- package/src/cli/cmd/tui/ui/dialog-export-options.tsx +0 -223
- package/src/cli/cmd/tui/ui/dialog-help.tsx +0 -42
- package/src/cli/cmd/tui/ui/dialog-prompt.tsx +0 -123
- package/src/cli/cmd/tui/ui/dialog-select.tsx +0 -467
- package/src/cli/cmd/tui/ui/dialog.tsx +0 -207
- package/src/cli/cmd/tui/ui/link.tsx +0 -28
- package/src/cli/cmd/tui/ui/spinner.ts +0 -378
- package/src/cli/cmd/tui/ui/toast.tsx +0 -102
- package/src/cli/cmd/tui/util/clipboard.ts +0 -203
- package/src/cli/cmd/tui/util/editor.ts +0 -36
- package/src/cli/cmd/tui/util/image-protocol.ts +0 -35
- package/src/cli/cmd/tui/util/index.ts +0 -6
- package/src/cli/cmd/tui/util/model.ts +0 -23
- package/src/cli/cmd/tui/util/pinyin.ts +0 -20
- package/src/cli/cmd/tui/util/provider-origin.ts +0 -7
- package/src/cli/cmd/tui/util/revert-diff.ts +0 -18
- package/src/cli/cmd/tui/util/scroll.ts +0 -23
- package/src/cli/cmd/tui/util/selection.ts +0 -23
- package/src/cli/cmd/tui/util/signal.ts +0 -41
- package/src/cli/cmd/tui/util/sound.ts +0 -154
- package/src/cli/cmd/tui/util/system-locale.ts +0 -209
- package/src/cli/cmd/tui/util/terminal.ts +0 -110
- package/src/cli/cmd/tui/util/transcript.ts +0 -112
- package/src/cli/cmd/tui/util/vad.ts +0 -229
- package/src/cli/cmd/tui/util/voice.ts +0 -450
- package/src/cli/cmd/tui/win32.ts +0 -130
- package/src/cli/cmd/tui/worker.ts +0 -104
- package/src/cli/cmd/uninstall.ts +0 -351
- package/src/cli/cmd/upgrade.ts +0 -79
- package/src/cli/cmd/web.ts +0 -96
- package/src/cli/effect/prompt.ts +0 -25
- package/src/cli/error.ts +0 -82
- package/src/cli/heap.ts +0 -59
- package/src/cli/i18n.ts +0 -15
- package/src/cli/logo.ts +0 -53
- package/src/cli/network.ts +0 -68
- package/src/cli/ui.ts +0 -133
- package/src/cli/upgrade.ts +0 -41
- package/src/command/index.ts +0 -276
- package/src/command/template/initialize.txt +0 -66
- package/src/command/template/review.txt +0 -101
- package/src/config/agent.ts +0 -197
- package/src/config/command.ts +0 -69
- package/src/config/compose.ts +0 -26
- package/src/config/config.ts +0 -1047
- package/src/config/console-state.ts +0 -16
- package/src/config/entry-name.ts +0 -16
- package/src/config/error.ts +0 -21
- package/src/config/formatter.ts +0 -17
- package/src/config/history.ts +0 -21
- package/src/config/index.ts +0 -17
- package/src/config/keybinds.ts +0 -127
- package/src/config/layout.ts +0 -10
- package/src/config/lsp.ts +0 -45
- package/src/config/managed.ts +0 -70
- package/src/config/markdown.ts +0 -97
- package/src/config/mcp.ts +0 -172
- package/src/config/model-id.ts +0 -14
- package/src/config/parse.ts +0 -44
- package/src/config/paths.ts +0 -85
- package/src/config/permission.ts +0 -76
- package/src/config/plugin.ts +0 -88
- package/src/config/provider.ts +0 -118
- package/src/config/server.ts +0 -20
- package/src/config/skills.ts +0 -16
- package/src/config/variable.ts +0 -90
- package/src/control-plane/adaptors/index.ts +0 -52
- package/src/control-plane/adaptors/worktree.ts +0 -47
- package/src/control-plane/dev/debug-workspace-plugin.ts +0 -73
- package/src/control-plane/schema.ts +0 -19
- package/src/control-plane/sse.ts +0 -66
- package/src/control-plane/types.ts +0 -34
- package/src/control-plane/util.ts +0 -37
- package/src/control-plane/workspace-context.ts +0 -26
- package/src/control-plane/workspace.sql.ts +0 -17
- package/src/control-plane/workspace.ts +0 -615
- package/src/effect/app-runtime.ts +0 -146
- package/src/effect/bootstrap-runtime.ts +0 -33
- package/src/effect/bridge.ts +0 -48
- package/src/effect/cross-spawn-spawner.ts +0 -514
- package/src/effect/index.ts +0 -5
- package/src/effect/instance-ref.ts +0 -11
- package/src/effect/instance-registry.ts +0 -12
- package/src/effect/instance-state.ts +0 -81
- package/src/effect/logger.ts +0 -73
- package/src/effect/memo-map.ts +0 -3
- package/src/effect/observability.ts +0 -107
- package/src/effect/run-service.ts +0 -52
- package/src/effect/runner.ts +0 -210
- package/src/effect/runtime.ts +0 -19
- package/src/env/index.ts +0 -37
- package/src/file/ignore.ts +0 -81
- package/src/file/index.ts +0 -664
- package/src/file/protected.ts +0 -59
- package/src/file/ripgrep.ts +0 -485
- package/src/file/watcher.ts +0 -163
- package/src/flag/flag.ts +0 -185
- package/src/format/formatter.ts +0 -403
- package/src/format/index.ts +0 -203
- package/src/git/index.ts +0 -260
- package/src/global/index.ts +0 -54
- package/src/history/backfill.ts +0 -162
- package/src/history/extract.ts +0 -67
- package/src/history/fts-query.ts +0 -15
- package/src/history/fts.sql.ts +0 -20
- package/src/history/index.ts +0 -10
- package/src/history/resolve.ts +0 -65
- package/src/history/service.ts +0 -258
- package/src/history/writer.ts +0 -112
- package/src/id/id.ts +0 -87
- package/src/ide/index.ts +0 -73
- package/src/inbox/inbox-ref.ts +0 -38
- package/src/inbox/inbox.sql.ts +0 -26
- package/src/inbox/inbox.ts +0 -223
- package/src/inbox/index.ts +0 -3
- package/src/inbox/render.ts +0 -40
- package/src/index.ts +0 -268
- package/src/installation/index.ts +0 -362
- package/src/installation/version.ts +0 -8
- package/src/lsp/client.ts +0 -249
- package/src/lsp/diagnostic.ts +0 -29
- package/src/lsp/index.ts +0 -3
- package/src/lsp/language.ts +0 -120
- package/src/lsp/launch.ts +0 -21
- package/src/lsp/lsp.ts +0 -519
- package/src/lsp/server.ts +0 -1956
- package/src/mcp/auth.ts +0 -144
- package/src/mcp/index.ts +0 -939
- package/src/mcp/oauth-callback.ts +0 -236
- package/src/mcp/oauth-provider.ts +0 -214
- package/src/memory/fts-query.ts +0 -37
- package/src/memory/fts.sql.ts +0 -19
- package/src/memory/index.ts +0 -1
- package/src/memory/paths.ts +0 -116
- package/src/memory/reconcile.ts +0 -144
- package/src/memory/service.ts +0 -144
- package/src/metrics/client.ts +0 -40
- package/src/metrics/event.ts +0 -43
- package/src/metrics/index.ts +0 -5
- package/src/metrics/installation.ts +0 -18
- package/src/metrics/subscriber.ts +0 -58
- package/src/metrics/util.ts +0 -9
- package/src/node.ts +0 -6
- package/src/npm/config.ts +0 -0
- package/src/npm/index.ts +0 -293
- package/src/npmcli-config.d.ts +0 -43
- package/src/patch/index.ts +0 -680
- package/src/permission/arity.ts +0 -163
- package/src/permission/evaluate.ts +0 -15
- package/src/permission/index.ts +0 -382
- package/src/permission/schema.ts +0 -17
- package/src/plugin/checkpoint-splitover.ts +0 -60
- package/src/plugin/cloudflare.ts +0 -76
- package/src/plugin/codex.ts +0 -611
- package/src/plugin/github-copilot/copilot.ts +0 -368
- package/src/plugin/github-copilot/models.ts +0 -153
- package/src/plugin/index.ts +0 -637
- package/src/plugin/install.ts +0 -439
- package/src/plugin/loader.ts +0 -216
- package/src/plugin/matcher.ts +0 -33
- package/src/plugin/meta.ts +0 -188
- package/src/plugin/shared.ts +0 -323
- package/src/plugin/sleepy.ts +0 -244
- package/src/plugin/subagent-progress-checker.ts +0 -147
- package/src/project/bootstrap.ts +0 -59
- package/src/project/index.ts +0 -2
- package/src/project/instance.ts +0 -215
- package/src/project/project-id.ts +0 -48
- package/src/project/project.sql.ts +0 -16
- package/src/project/project.ts +0 -522
- package/src/project/schema.ts +0 -15
- package/src/project/vcs.ts +0 -227
- package/src/project/workspace-trust.ts +0 -67
- package/src/provider/auth.ts +0 -234
- package/src/provider/error.ts +0 -216
- package/src/provider/index.ts +0 -5
- package/src/provider/models-snapshot.d.ts +0 -2
- package/src/provider/models-snapshot.js +0 -3
- package/src/provider/models.ts +0 -180
- package/src/provider/provider.ts +0 -2098
- package/src/provider/schema.ts +0 -36
- package/src/provider/sdk/copilot/README.md +0 -5
- package/src/provider/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts +0 -170
- package/src/provider/sdk/copilot/chat/get-response-metadata.ts +0 -15
- package/src/provider/sdk/copilot/chat/map-openai-compatible-finish-reason.ts +0 -19
- package/src/provider/sdk/copilot/chat/openai-compatible-api-types.ts +0 -64
- package/src/provider/sdk/copilot/chat/openai-compatible-chat-language-model.ts +0 -815
- package/src/provider/sdk/copilot/chat/openai-compatible-chat-options.ts +0 -28
- package/src/provider/sdk/copilot/chat/openai-compatible-metadata-extractor.ts +0 -44
- package/src/provider/sdk/copilot/chat/openai-compatible-prepare-tools.ts +0 -83
- package/src/provider/sdk/copilot/copilot-provider.ts +0 -100
- package/src/provider/sdk/copilot/index.ts +0 -2
- package/src/provider/sdk/copilot/openai-compatible-error.ts +0 -27
- package/src/provider/sdk/copilot/responses/convert-to-openai-responses-input.ts +0 -335
- package/src/provider/sdk/copilot/responses/map-openai-responses-finish-reason.ts +0 -22
- package/src/provider/sdk/copilot/responses/openai-config.ts +0 -18
- package/src/provider/sdk/copilot/responses/openai-error.ts +0 -22
- package/src/provider/sdk/copilot/responses/openai-responses-api-types.ts +0 -214
- package/src/provider/sdk/copilot/responses/openai-responses-language-model.ts +0 -1770
- package/src/provider/sdk/copilot/responses/openai-responses-prepare-tools.ts +0 -173
- package/src/provider/sdk/copilot/responses/openai-responses-settings.ts +0 -1
- package/src/provider/sdk/copilot/responses/tool/code-interpreter.ts +0 -87
- package/src/provider/sdk/copilot/responses/tool/file-search.ts +0 -127
- package/src/provider/sdk/copilot/responses/tool/image-generation.ts +0 -114
- package/src/provider/sdk/copilot/responses/tool/local-shell.ts +0 -64
- package/src/provider/sdk/copilot/responses/tool/web-search-preview.ts +0 -103
- package/src/provider/sdk/copilot/responses/tool/web-search.ts +0 -102
- package/src/provider/session-check.ts +0 -163
- package/src/provider/transform.ts +0 -1376
- package/src/pty/index.ts +0 -364
- package/src/pty/pty.bun.ts +0 -26
- package/src/pty/pty.node.ts +0 -27
- package/src/pty/pty.ts +0 -25
- package/src/pty/schema.ts +0 -17
- package/src/question/index.ts +0 -252
- package/src/question/schema.ts +0 -17
- package/src/server/adapter.bun.ts +0 -40
- package/src/server/adapter.node.ts +0 -66
- package/src/server/adapter.ts +0 -21
- package/src/server/auth.ts +0 -16
- package/src/server/error.ts +0 -53
- package/src/server/event.ts +0 -7
- package/src/server/fence.ts +0 -81
- package/src/server/mdns.ts +0 -60
- package/src/server/middleware.ts +0 -94
- package/src/server/projectors.ts +0 -28
- package/src/server/proxy.ts +0 -171
- package/src/server/pty-ticket.ts +0 -42
- package/src/server/rate-limit.ts +0 -38
- package/src/server/routes/control/index.ts +0 -160
- package/src/server/routes/control/workspace.ts +0 -203
- package/src/server/routes/global.ts +0 -367
- package/src/server/routes/instance/bash-interactive.ts +0 -82
- package/src/server/routes/instance/config.ts +0 -89
- package/src/server/routes/instance/event.ts +0 -108
- package/src/server/routes/instance/experimental.ts +0 -408
- package/src/server/routes/instance/file.ts +0 -190
- package/src/server/routes/instance/httpapi/config.ts +0 -51
- package/src/server/routes/instance/httpapi/permission.ts +0 -72
- package/src/server/routes/instance/httpapi/project.ts +0 -62
- package/src/server/routes/instance/httpapi/provider.ts +0 -142
- package/src/server/routes/instance/httpapi/question.ts +0 -121
- package/src/server/routes/instance/httpapi/server.ts +0 -153
- package/src/server/routes/instance/index.ts +0 -301
- package/src/server/routes/instance/mcp.ts +0 -260
- package/src/server/routes/instance/middleware.ts +0 -44
- package/src/server/routes/instance/permission.ts +0 -73
- package/src/server/routes/instance/project.ts +0 -122
- package/src/server/routes/instance/provider.ts +0 -158
- package/src/server/routes/instance/pty.ts +0 -302
- package/src/server/routes/instance/question.ts +0 -162
- package/src/server/routes/instance/session.ts +0 -1328
- package/src/server/routes/instance/sync.ts +0 -143
- package/src/server/routes/instance/trace.ts +0 -59
- package/src/server/routes/instance/tui.ts +0 -384
- package/src/server/routes/instance/workflows.ts +0 -142
- package/src/server/routes/ui.ts +0 -37
- package/src/server/server.ts +0 -146
- package/src/server/workspace.ts +0 -122
- package/src/session/auto-dream.ts +0 -123
- package/src/session/boundary.ts +0 -77
- package/src/session/budgeted-read.ts +0 -118
- package/src/session/checkpoint-align.ts +0 -29
- package/src/session/checkpoint-context.ts +0 -36
- package/src/session/checkpoint-paths.ts +0 -86
- package/src/session/checkpoint-progress-reconcile.ts +0 -111
- package/src/session/checkpoint-retry.ts +0 -192
- package/src/session/checkpoint-templates.ts +0 -114
- package/src/session/checkpoint-validator.ts +0 -259
- package/src/session/checkpoint.ts +0 -1560
- package/src/session/classify.ts +0 -117
- package/src/session/claude-import.ts +0 -381
- package/src/session/codex-import.ts +0 -416
- package/src/session/compaction.ts +0 -545
- package/src/session/external-import.sql.ts +0 -18
- package/src/session/external-import.ts +0 -136
- package/src/session/goal.ts +0 -232
- package/src/session/index.ts +0 -1
- package/src/session/instruction.ts +0 -276
- package/src/session/last-message-info.ts +0 -32
- package/src/session/llm-request-prefix.ts +0 -82
- package/src/session/llm.ts +0 -737
- package/src/session/max-mode.ts +0 -410
- package/src/session/message-v2.ts +0 -1138
- package/src/session/message.ts +0 -191
- package/src/session/opencode-import.ts +0 -281
- package/src/session/overflow.ts +0 -53
- package/src/session/prefix-capture-ref.ts +0 -48
- package/src/session/processor.ts +0 -983
- package/src/session/projectors.ts +0 -137
- package/src/session/prompt/anthropic.txt +0 -154
- package/src/session/prompt/beast.txt +0 -155
- package/src/session/prompt/build-switch.txt +0 -5
- package/src/session/prompt/codex.txt +0 -79
- package/src/session/prompt/compose.txt +0 -119
- package/src/session/prompt/copilot-gpt-5.txt +0 -143
- package/src/session/prompt/deepseek.txt +0 -131
- package/src/session/prompt/default.old.txt +0 -151
- package/src/session/prompt/default.txt +0 -172
- package/src/session/prompt/gemini.txt +0 -155
- package/src/session/prompt/glm.txt +0 -51
- package/src/session/prompt/gpt.txt +0 -107
- package/src/session/prompt/kimi.txt +0 -95
- package/src/session/prompt/max-steps.txt +0 -16
- package/src/session/prompt/minimax.txt +0 -140
- package/src/session/prompt/text-loop-recovery.ts +0 -40
- package/src/session/prompt/text-ngram-detection.ts +0 -87
- package/src/session/prompt/trinity.txt +0 -97
- package/src/session/prompt.ts +0 -3878
- package/src/session/prune.ts +0 -481
- package/src/session/retry.ts +0 -178
- package/src/session/revert.ts +0 -161
- package/src/session/run-state.ts +0 -135
- package/src/session/schema.ts +0 -36
- package/src/session/session.sql.ts +0 -110
- package/src/session/session.ts +0 -908
- package/src/session/status.ts +0 -89
- package/src/session/summary.ts +0 -163
- package/src/session/system.ts +0 -96
- package/src/session/todo.ts +0 -77
- package/src/session/trajectory.ts +0 -98
- package/src/share/index.ts +0 -2
- package/src/share/session.ts +0 -57
- package/src/share/share-next.ts +0 -381
- package/src/share/share.sql.ts +0 -13
- package/src/shell/shell.ts +0 -124
- package/src/skill/builtin/.bundle/self-extend/SKILL.md +0 -131
- package/src/skill/builtin/.bundle/self-extend/reference/hook-api.md +0 -242
- package/src/skill/builtin/.bundle/self-extend/reference/skill-api.md +0 -114
- package/src/skill/builtin/.bundle/self-extend/reference/tool-api.md +0 -115
- package/src/skill/builtin/.bundle/self-extend/reference/tui-api.md +0 -258
- package/src/skill/builtin/bundle.macro.ts +0 -30
- package/src/skill/builtin/extract.ts +0 -41
- package/src/skill/compose/.bundle/ask/SKILL.md +0 -58
- package/src/skill/compose/.bundle/brainstorm/SKILL.md +0 -200
- package/src/skill/compose/.bundle/brainstorm/scripts/frame-template.html +0 -214
- package/src/skill/compose/.bundle/brainstorm/scripts/helper.js +0 -88
- package/src/skill/compose/.bundle/brainstorm/scripts/server.cjs +0 -354
- package/src/skill/compose/.bundle/brainstorm/scripts/start-server.sh +0 -148
- package/src/skill/compose/.bundle/brainstorm/scripts/stop-server.sh +0 -56
- package/src/skill/compose/.bundle/brainstorm/spec-document-reviewer-prompt.md +0 -50
- package/src/skill/compose/.bundle/brainstorm/visual-companion.md +0 -258
- package/src/skill/compose/.bundle/debug/CREATION-LOG.md +0 -119
- package/src/skill/compose/.bundle/debug/SKILL.md +0 -297
- package/src/skill/compose/.bundle/debug/condition-based-waiting-example.ts +0 -158
- package/src/skill/compose/.bundle/debug/condition-based-waiting.md +0 -106
- package/src/skill/compose/.bundle/debug/defense-in-depth.md +0 -122
- package/src/skill/compose/.bundle/debug/find-polluter.sh +0 -63
- package/src/skill/compose/.bundle/debug/root-cause-tracing.md +0 -144
- package/src/skill/compose/.bundle/debug/test-academic.md +0 -14
- package/src/skill/compose/.bundle/debug/test-pressure-1.md +0 -58
- package/src/skill/compose/.bundle/debug/test-pressure-2.md +0 -68
- package/src/skill/compose/.bundle/debug/test-pressure-3.md +0 -69
- package/src/skill/compose/.bundle/execute/SKILL.md +0 -71
- package/src/skill/compose/.bundle/feedback/SKILL.md +0 -214
- package/src/skill/compose/.bundle/merge/SKILL.md +0 -252
- package/src/skill/compose/.bundle/new-skill/SKILL.md +0 -211
- package/src/skill/compose/.bundle/parallel/SKILL.md +0 -168
- package/src/skill/compose/.bundle/plan/SKILL.md +0 -183
- package/src/skill/compose/.bundle/plan/plan-document-reviewer-prompt.md +0 -50
- package/src/skill/compose/.bundle/report/SKILL.md +0 -180
- package/src/skill/compose/.bundle/review/SKILL.md +0 -104
- package/src/skill/compose/.bundle/review/code-reviewer.md +0 -178
- package/src/skill/compose/.bundle/subagent/SKILL.md +0 -325
- package/src/skill/compose/.bundle/subagent/code-quality-reviewer-prompt.md +0 -26
- package/src/skill/compose/.bundle/subagent/implementer-prompt.md +0 -128
- package/src/skill/compose/.bundle/subagent/spec-reviewer-prompt.md +0 -118
- package/src/skill/compose/.bundle/tdd/SKILL.md +0 -360
- package/src/skill/compose/.bundle/tdd/testing-anti-patterns.md +0 -299
- package/src/skill/compose/.bundle/verify/SKILL.md +0 -140
- package/src/skill/compose/.bundle/worktree/SKILL.md +0 -234
- package/src/skill/compose/LICENSE-karpathy +0 -28
- package/src/skill/compose/bundle.macro.ts +0 -30
- package/src/skill/compose/extract.ts +0 -85
- package/src/skill/discovery.ts +0 -114
- package/src/skill/index.ts +0 -328
- package/src/snapshot/index.ts +0 -777
- package/src/sql.d.ts +0 -4
- package/src/storage/db.bun.ts +0 -8
- package/src/storage/db.node.ts +0 -8
- package/src/storage/db.ts +0 -172
- package/src/storage/index.ts +0 -26
- package/src/storage/json-migration.ts +0 -426
- package/src/storage/read-sqlite.bun.ts +0 -11
- package/src/storage/read-sqlite.node.ts +0 -13
- package/src/storage/read-sqlite.ts +0 -10
- package/src/storage/schema.sql.ts +0 -10
- package/src/storage/schema.ts +0 -7
- package/src/storage/storage.ts +0 -331
- package/src/sync/README.md +0 -179
- package/src/sync/event.sql.ts +0 -16
- package/src/sync/index.ts +0 -278
- package/src/sync/schema.ts +0 -14
- package/src/task/events.ts +0 -28
- package/src/task/gate-state.ts +0 -54
- package/src/task/gate.ts +0 -116
- package/src/task/index.ts +0 -1
- package/src/task/registry.ts +0 -394
- package/src/task/schema.ts +0 -43
- package/src/task/task.sql.ts +0 -50
- package/src/team/events.ts +0 -22
- package/src/team/index.ts +0 -113
- package/src/team/schema.ts +0 -31
- package/src/temporary.ts +0 -33
- package/src/tool/actor.shell.txt +0 -72
- package/src/tool/actor.ts +0 -804
- package/src/tool/actor.txt +0 -103
- package/src/tool/apply_patch.ts +0 -308
- package/src/tool/apply_patch.txt +0 -33
- package/src/tool/bash-interactive.ts +0 -183
- package/src/tool/bash.ts +0 -704
- package/src/tool/bash.txt +0 -123
- package/src/tool/change-directory.ts +0 -91
- package/src/tool/codesearch.ts +0 -63
- package/src/tool/codesearch.txt +0 -12
- package/src/tool/edit.ts +0 -693
- package/src/tool/edit.txt +0 -10
- package/src/tool/external-directory.ts +0 -132
- package/src/tool/glob.ts +0 -100
- package/src/tool/glob.txt +0 -6
- package/src/tool/grep.ts +0 -145
- package/src/tool/grep.txt +0 -8
- package/src/tool/history.ts +0 -146
- package/src/tool/history.txt +0 -17
- package/src/tool/index.ts +0 -4
- package/src/tool/invalid.ts +0 -20
- package/src/tool/invocation-style.ts +0 -17
- package/src/tool/lsp.ts +0 -91
- package/src/tool/lsp.txt +0 -19
- package/src/tool/mcp-exa.ts +0 -78
- package/src/tool/memory-path-guard.ts +0 -162
- package/src/tool/memory.ts +0 -81
- package/src/tool/memory.txt +0 -69
- package/src/tool/multiedit.ts +0 -54
- package/src/tool/multiedit.txt +0 -41
- package/src/tool/notebook-edit.ts +0 -225
- package/src/tool/notebook-edit.txt +0 -10
- package/src/tool/plan-enter.txt +0 -16
- package/src/tool/plan-exit.txt +0 -14
- package/src/tool/plan.ts +0 -179
- package/src/tool/question.ts +0 -67
- package/src/tool/question.txt +0 -10
- package/src/tool/read-state.ts +0 -44
- package/src/tool/read.ts +0 -327
- package/src/tool/read.txt +0 -14
- package/src/tool/recoverable.ts +0 -35
- package/src/tool/registry.ts +0 -429
- package/src/tool/schema.ts +0 -17
- package/src/tool/session-cwd.ts +0 -35
- package/src/tool/shell-tokenize.ts +0 -374
- package/src/tool/shell-wrap.ts +0 -235
- package/src/tool/skill.ts +0 -76
- package/src/tool/skill.txt +0 -5
- package/src/tool/task.shell.txt +0 -57
- package/src/tool/task.ts +0 -456
- package/src/tool/task.txt +0 -56
- package/src/tool/tool.ts +0 -166
- package/src/tool/truncate.ts +0 -201
- package/src/tool/truncation-dir.ts +0 -4
- package/src/tool/webfetch.ts +0 -208
- package/src/tool/webfetch.txt +0 -13
- package/src/tool/websearch/index.ts +0 -104
- package/src/tool/websearch/sleepy.ts +0 -118
- package/src/tool/websearch/websearch.txt +0 -14
- package/src/tool/workflow.ts +0 -357
- package/src/tool/workflow.txt +0 -25
- package/src/tool/write.ts +0 -88
- package/src/tool/write.txt +0 -10
- package/src/util/abort.ts +0 -35
- package/src/util/archive.ts +0 -15
- package/src/util/color.ts +0 -17
- package/src/util/data-url.ts +0 -9
- package/src/util/defer.ts +0 -10
- package/src/util/effect-http-client.ts +0 -11
- package/src/util/effect-zod.ts +0 -367
- package/src/util/env-info.ts +0 -62
- package/src/util/error.ts +0 -78
- package/src/util/filesystem.ts +0 -243
- package/src/util/fn.ts +0 -21
- package/src/util/format.ts +0 -20
- package/src/util/iife.ts +0 -3
- package/src/util/index.ts +0 -14
- package/src/util/keybind.ts +0 -101
- package/src/util/lazy.ts +0 -18
- package/src/util/local-context.ts +0 -23
- package/src/util/locale.ts +0 -79
- package/src/util/lock.ts +0 -96
- package/src/util/log.ts +0 -234
- package/src/util/media.ts +0 -26
- package/src/util/network.ts +0 -9
- package/src/util/process.ts +0 -174
- package/src/util/provider-priority.ts +0 -48
- package/src/util/queue.ts +0 -60
- package/src/util/record.ts +0 -3
- package/src/util/rpc.ts +0 -64
- package/src/util/schema.ts +0 -53
- package/src/util/scrap.ts +0 -10
- package/src/util/signal.ts +0 -12
- package/src/util/sleepy-process.ts +0 -24
- package/src/util/ssrf.ts +0 -116
- package/src/util/timeout.ts +0 -14
- package/src/util/token.ts +0 -5
- package/src/util/tool-compat.ts +0 -144
- package/src/util/update-schema.ts +0 -13
- package/src/util/which.ts +0 -14
- package/src/util/wildcard.ts +0 -57
- package/src/workflow/builtin/compose.js +0 -749
- package/src/workflow/builtin/deep-research.js +0 -398
- package/src/workflow/builtin.ts +0 -59
- package/src/workflow/events.ts +0 -72
- package/src/workflow/meta.ts +0 -335
- package/src/workflow/persistence.ts +0 -312
- package/src/workflow/resolve.ts +0 -45
- package/src/workflow/runtime-ref.ts +0 -18
- package/src/workflow/runtime.ts +0 -1447
- package/src/workflow/sandbox.ts +0 -286
- package/src/workflow/workflow.sql.ts +0 -31
- package/src/workflow/workspace.ts +0 -69
- package/src/worktree/index.ts +0 -629
package/src/tool/write.ts
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import z from "zod"
|
|
2
|
-
import * as path from "path"
|
|
3
|
-
import { Effect } from "effect"
|
|
4
|
-
import * as Tool from "./tool"
|
|
5
|
-
import { LSP } from "../lsp"
|
|
6
|
-
import { createTwoFilesPatch } from "diff"
|
|
7
|
-
import DESCRIPTION from "./write.txt"
|
|
8
|
-
import { Bus } from "../bus"
|
|
9
|
-
import { File } from "../file"
|
|
10
|
-
import { FileWatcher } from "../file/watcher"
|
|
11
|
-
import { Format } from "../format"
|
|
12
|
-
import { AppFileSystem } from "@sleepy-ai/shared/filesystem"
|
|
13
|
-
import { Instance } from "../project/instance"
|
|
14
|
-
import { SessionCwd } from "./session-cwd"
|
|
15
|
-
import { trimDiff } from "./edit"
|
|
16
|
-
import { assertWriteAllowed, askEditUnlessMemory } from "./external-directory"
|
|
17
|
-
|
|
18
|
-
const MAX_PROJECT_DIAGNOSTICS_FILES = 5
|
|
19
|
-
|
|
20
|
-
export const WriteTool = Tool.define(
|
|
21
|
-
"write",
|
|
22
|
-
Effect.gen(function* () {
|
|
23
|
-
const lsp = yield* LSP.Service
|
|
24
|
-
const fs = yield* AppFileSystem.Service
|
|
25
|
-
const bus = yield* Bus.Service
|
|
26
|
-
const format = yield* Format.Service
|
|
27
|
-
|
|
28
|
-
return {
|
|
29
|
-
description: DESCRIPTION,
|
|
30
|
-
parameters: z.object({
|
|
31
|
-
content: z.string().describe("The content to write to the file"),
|
|
32
|
-
file_path: z.string().describe("The absolute path to the file to write (must be absolute, not relative)"),
|
|
33
|
-
}),
|
|
34
|
-
execute: (params: { content: string; file_path: string }, ctx: Tool.Context) =>
|
|
35
|
-
Effect.gen(function* () {
|
|
36
|
-
const filepath = path.isAbsolute(params.file_path)
|
|
37
|
-
? params.file_path
|
|
38
|
-
: path.join(SessionCwd.get(ctx.sessionID), params.file_path)
|
|
39
|
-
yield* assertWriteAllowed(ctx, filepath)
|
|
40
|
-
|
|
41
|
-
const exists = yield* fs.existsSafe(filepath)
|
|
42
|
-
const contentOld = exists ? yield* fs.readFileString(filepath) : ""
|
|
43
|
-
|
|
44
|
-
const diff = trimDiff(createTwoFilesPatch(filepath, filepath, contentOld, params.content))
|
|
45
|
-
yield* askEditUnlessMemory(ctx, filepath, {
|
|
46
|
-
patterns: [path.relative(Instance.worktree, filepath)],
|
|
47
|
-
diff,
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
yield* fs.writeWithDirs(filepath, params.content)
|
|
51
|
-
yield* format.file(filepath)
|
|
52
|
-
yield* bus.publish(File.Event.Edited, { file: filepath })
|
|
53
|
-
yield* bus.publish(FileWatcher.Event.Updated, {
|
|
54
|
-
file: filepath,
|
|
55
|
-
event: exists ? "change" : "add",
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
let output = "Wrote file successfully."
|
|
59
|
-
yield* lsp.touchFile(filepath, true)
|
|
60
|
-
const diagnostics = yield* lsp.diagnostics()
|
|
61
|
-
const normalizedFilepath = AppFileSystem.normalizePath(filepath)
|
|
62
|
-
let projectDiagnosticsCount = 0
|
|
63
|
-
for (const [file, issues] of Object.entries(diagnostics)) {
|
|
64
|
-
const current = file === normalizedFilepath
|
|
65
|
-
if (!current && projectDiagnosticsCount >= MAX_PROJECT_DIAGNOSTICS_FILES) continue
|
|
66
|
-
const block = LSP.Diagnostic.report(current ? filepath : file, issues)
|
|
67
|
-
if (!block) continue
|
|
68
|
-
if (current) {
|
|
69
|
-
output += `\n\nLSP errors detected in this file, please fix:\n${block}`
|
|
70
|
-
continue
|
|
71
|
-
}
|
|
72
|
-
projectDiagnosticsCount++
|
|
73
|
-
output += `\n\nLSP errors detected in other files:\n${block}`
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
return {
|
|
77
|
-
title: path.relative(Instance.worktree, filepath),
|
|
78
|
-
metadata: {
|
|
79
|
-
diagnostics,
|
|
80
|
-
filepath,
|
|
81
|
-
exists: exists,
|
|
82
|
-
},
|
|
83
|
-
output,
|
|
84
|
-
}
|
|
85
|
-
}).pipe(Effect.orDie),
|
|
86
|
-
}
|
|
87
|
-
}),
|
|
88
|
-
)
|
package/src/tool/write.txt
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Writes a file to the local filesystem.
|
|
2
|
-
|
|
3
|
-
Usage:
|
|
4
|
-
- The file_path parameter should be an absolute path.
|
|
5
|
-
- This tool will overwrite the existing file if there is one at the provided path.
|
|
6
|
-
- If this is an existing file, you MUST use the `read` tool first to read the file's contents. This tool will fail if you did not read the file first.
|
|
7
|
-
- ALWAYS prefer editing existing files in the codebase. NEVER write new files unless explicitly required.
|
|
8
|
-
- NEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested by the User.
|
|
9
|
-
- Only use emojis if the user explicitly requests it. Avoid writing emojis to files unless asked.
|
|
10
|
-
- For large files, prefer writing the content in multiple smaller steps rather than one big call: a single very large write may exceed the output limit and get truncated, leaving the file incomplete or corrupted. Write an initial portion with this tool, then add the remaining sections with follow-up Edit calls.
|
package/src/util/abort.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates an AbortController that automatically aborts after a timeout.
|
|
3
|
-
*
|
|
4
|
-
* Uses bind() instead of arrow functions to avoid capturing the surrounding
|
|
5
|
-
* scope in closures. Arrow functions like `() => controller.abort()` capture
|
|
6
|
-
* request bodies and other large objects, preventing GC for the timer lifetime.
|
|
7
|
-
*
|
|
8
|
-
* @param ms Timeout in milliseconds
|
|
9
|
-
* @returns Object with controller, signal, and clearTimeout function
|
|
10
|
-
*/
|
|
11
|
-
export function abortAfter(ms: number) {
|
|
12
|
-
const controller = new AbortController()
|
|
13
|
-
const id = setTimeout(controller.abort.bind(controller), ms)
|
|
14
|
-
return {
|
|
15
|
-
controller,
|
|
16
|
-
signal: controller.signal,
|
|
17
|
-
clearTimeout: () => globalThis.clearTimeout(id),
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Combines multiple AbortSignals with a timeout.
|
|
23
|
-
*
|
|
24
|
-
* @param ms Timeout in milliseconds
|
|
25
|
-
* @param signals Additional signals to combine
|
|
26
|
-
* @returns Combined signal that aborts on timeout or when any input signal aborts
|
|
27
|
-
*/
|
|
28
|
-
export function abortAfterAny(ms: number, ...signals: AbortSignal[]) {
|
|
29
|
-
const timeout = abortAfter(ms)
|
|
30
|
-
const signal = AbortSignal.any([timeout.signal, ...signals])
|
|
31
|
-
return {
|
|
32
|
-
signal,
|
|
33
|
-
clearTimeout: timeout.clearTimeout,
|
|
34
|
-
}
|
|
35
|
-
}
|
package/src/util/archive.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import path from "path"
|
|
2
|
-
import * as Process from "./process"
|
|
3
|
-
|
|
4
|
-
export async function extractZip(zipPath: string, destDir: string) {
|
|
5
|
-
if (process.platform === "win32") {
|
|
6
|
-
const winZipPath = path.resolve(zipPath)
|
|
7
|
-
const winDestDir = path.resolve(destDir)
|
|
8
|
-
// $global:ProgressPreference suppresses PowerShell's blue progress bar popup
|
|
9
|
-
const cmd = `$global:ProgressPreference = 'SilentlyContinue'; Expand-Archive -Path '${winZipPath}' -DestinationPath '${winDestDir}' -Force`
|
|
10
|
-
await Process.run(["powershell", "-NoProfile", "-NonInteractive", "-Command", cmd])
|
|
11
|
-
return
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
await Process.run(["unzip", "-o", "-q", zipPath, "-d", destDir])
|
|
15
|
-
}
|
package/src/util/color.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export function isValidHex(hex?: string): hex is string {
|
|
2
|
-
if (!hex) return false
|
|
3
|
-
return /^#[0-9a-fA-F]{6}$/.test(hex)
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
export function hexToRgb(hex: string): { r: number; g: number; b: number } {
|
|
7
|
-
const r = parseInt(hex.slice(1, 3), 16)
|
|
8
|
-
const g = parseInt(hex.slice(3, 5), 16)
|
|
9
|
-
const b = parseInt(hex.slice(5, 7), 16)
|
|
10
|
-
return { r, g, b }
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export function hexToAnsiBold(hex?: string): string | undefined {
|
|
14
|
-
if (!isValidHex(hex)) return undefined
|
|
15
|
-
const { r, g, b } = hexToRgb(hex)
|
|
16
|
-
return `\x1b[38;2;${r};${g};${b}m\x1b[1m`
|
|
17
|
-
}
|
package/src/util/data-url.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export function decodeDataUrl(url: string) {
|
|
2
|
-
const idx = url.indexOf(",")
|
|
3
|
-
if (idx === -1) return ""
|
|
4
|
-
|
|
5
|
-
const head = url.slice(0, idx)
|
|
6
|
-
const body = url.slice(idx + 1)
|
|
7
|
-
if (head.includes(";base64")) return Buffer.from(body, "base64").toString("utf8")
|
|
8
|
-
return decodeURIComponent(body)
|
|
9
|
-
}
|
package/src/util/defer.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Schedule } from "effect"
|
|
2
|
-
import { HttpClient } from "effect/unstable/http"
|
|
3
|
-
|
|
4
|
-
export const withTransientReadRetry = <E, R>(client: HttpClient.HttpClient.With<E, R>) =>
|
|
5
|
-
client.pipe(
|
|
6
|
-
HttpClient.retryTransient({
|
|
7
|
-
retryOn: "errors-and-responses",
|
|
8
|
-
times: 2,
|
|
9
|
-
schedule: Schedule.exponential(200).pipe(Schedule.jittered),
|
|
10
|
-
}),
|
|
11
|
-
)
|
package/src/util/effect-zod.ts
DELETED
|
@@ -1,367 +0,0 @@
|
|
|
1
|
-
import { Effect, Option, Schema, SchemaAST } from "effect"
|
|
2
|
-
import z from "zod"
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Annotation key for providing a hand-crafted Zod schema that the walker
|
|
6
|
-
* should use instead of re-deriving from the AST. Attach it via
|
|
7
|
-
* `Schema.String.annotate({ [ZodOverride]: z.string().startsWith("per") })`.
|
|
8
|
-
*/
|
|
9
|
-
export const ZodOverride: unique symbol = Symbol.for("effect-zod/override")
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Annotation key for a pre-parse transform that runs on the raw input before
|
|
13
|
-
* the derived Zod schema validates it. The walker emits
|
|
14
|
-
* `z.preprocess(fn, inner)` when this annotation is present.
|
|
15
|
-
*
|
|
16
|
-
* Models zod's `z.preprocess(fn, schema)` pattern — useful when the schema
|
|
17
|
-
* needs to inspect the user's raw input (e.g. to capture insertion order)
|
|
18
|
-
* before `Schema.Struct` canonicalises the object.
|
|
19
|
-
*
|
|
20
|
-
* TODO: This exists to paper over a missing Effect Schema feature. The
|
|
21
|
-
* parser canonicalises open struct output (known fields first in
|
|
22
|
-
* declaration order, then catchall fields) before any user-defined
|
|
23
|
-
* transform sees the value, and there is no pre-parse hook — so the
|
|
24
|
-
* user's original property insertion order is gone by the time
|
|
25
|
-
* `Schema.decodeTo` or `middlewareDecoding` runs.
|
|
26
|
-
*
|
|
27
|
-
* That canonicalisation is a reasonable default, but `config/permission.ts`
|
|
28
|
-
* encodes rule precedence in the user's JSON key order (`evaluate.ts`
|
|
29
|
-
* uses `findLast`, so later entries win), which the canonicalisation
|
|
30
|
-
* silently destroys.
|
|
31
|
-
*
|
|
32
|
-
* The cleanest upstream fix would be either:
|
|
33
|
-
*
|
|
34
|
-
* 1. A `preserveInputOrder` option on `Schema.Struct` /
|
|
35
|
-
* `Schema.StructWithRest` that keeps the input's insertion order in
|
|
36
|
-
* the parsed object (opt-in; canonical order stays default).
|
|
37
|
-
* 2. A generic pre-parse hook (`Schema.preprocess(schema, fn)` or a
|
|
38
|
-
* transformation whose decode receives the raw `unknown`).
|
|
39
|
-
*
|
|
40
|
-
* Either of those would let us delete `ZodPreprocess` and the
|
|
41
|
-
* `__originalKeys` hack. Alternatively, the permission model could move
|
|
42
|
-
* to specificity-based precedence (exact keys beat wildcards) or an
|
|
43
|
-
* explicit ordered array of rules, which removes the ordering
|
|
44
|
-
* dependency at the data-model level.
|
|
45
|
-
*/
|
|
46
|
-
export const ZodPreprocess: unique symbol = Symbol.for("effect-zod/preprocess")
|
|
47
|
-
|
|
48
|
-
// AST nodes are immutable and frequently shared across schemas (e.g. a single
|
|
49
|
-
// Schema.Class embedded in multiple parents). Memoizing by node identity
|
|
50
|
-
// avoids rebuilding equivalent Zod subtrees and keeps derived children stable
|
|
51
|
-
// by reference across callers.
|
|
52
|
-
const walkCache = new WeakMap<SchemaAST.AST, z.ZodTypeAny>()
|
|
53
|
-
|
|
54
|
-
// Shared empty ParseOptions for the rare callers that need one — avoids
|
|
55
|
-
// allocating a fresh object per parse inside refinements and transforms.
|
|
56
|
-
const EMPTY_PARSE_OPTIONS = {} as SchemaAST.ParseOptions
|
|
57
|
-
|
|
58
|
-
export function zod<S extends Schema.Top>(schema: S): z.ZodType<Schema.Schema.Type<S>> {
|
|
59
|
-
return walk(schema.ast) as z.ZodType<Schema.Schema.Type<S>>
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function walk(ast: SchemaAST.AST): z.ZodTypeAny {
|
|
63
|
-
const cached = walkCache.get(ast)
|
|
64
|
-
if (cached) return cached
|
|
65
|
-
const result = walkUncached(ast)
|
|
66
|
-
walkCache.set(ast, result)
|
|
67
|
-
return result
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function walkUncached(ast: SchemaAST.AST): z.ZodTypeAny {
|
|
71
|
-
const override = (ast.annotations as any)?.[ZodOverride] as z.ZodTypeAny | undefined
|
|
72
|
-
if (override) return override
|
|
73
|
-
|
|
74
|
-
// Schema.Class wraps its fields in a Declaration AST plus an encoding that
|
|
75
|
-
// constructs the class instance. For the Zod derivation we want the plain
|
|
76
|
-
// field shape (the decoded/consumer view), not the class instance — so
|
|
77
|
-
// Declarations fall through to body(), not encoded(). User-level
|
|
78
|
-
// Schema.decodeTo / Schema.transform attach encoding to non-Declaration
|
|
79
|
-
// nodes, where we do apply the transform.
|
|
80
|
-
//
|
|
81
|
-
// Schema.withDecodingDefault also attaches encoding, but we want `.default(v)`
|
|
82
|
-
// on the inner Zod rather than a transform wrapper — so optional ASTs whose
|
|
83
|
-
// encoding resolves a default from Option.none() route through body()/opt().
|
|
84
|
-
const hasEncoding = ast.encoding?.length && ast._tag !== "Declaration"
|
|
85
|
-
const hasTransform = hasEncoding && !(SchemaAST.isOptional(ast) && extractDefault(ast) !== undefined)
|
|
86
|
-
const base = hasTransform ? encoded(ast) : body(ast)
|
|
87
|
-
const checked = ast.checks?.length ? applyChecks(base, ast.checks, ast) : base
|
|
88
|
-
const preprocess = (ast.annotations as { [ZodPreprocess]?: (val: unknown) => unknown } | undefined)?.[ZodPreprocess]
|
|
89
|
-
const out = preprocess ? z.preprocess(preprocess, checked) : checked
|
|
90
|
-
const desc = SchemaAST.resolveDescription(ast)
|
|
91
|
-
const ref = SchemaAST.resolveIdentifier(ast)
|
|
92
|
-
const described = desc ? out.describe(desc) : out
|
|
93
|
-
return ref ? described.meta({ ref }) : described
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// Walk the encoded side and apply each link's decode to produce the decoded
|
|
97
|
-
// shape. A node `Target` produced by `from.decodeTo(Target)` carries
|
|
98
|
-
// `Target.encoding = [Link(from, transformation)]`. Chained decodeTo calls
|
|
99
|
-
// nest the encoding via `Link.to` so walking it recursively threads all
|
|
100
|
-
// prior transforms — typical encoding.length is 1.
|
|
101
|
-
function encoded(ast: SchemaAST.AST): z.ZodTypeAny {
|
|
102
|
-
const encoding = ast.encoding!
|
|
103
|
-
return encoding.reduce<z.ZodTypeAny>(
|
|
104
|
-
(acc, link) => acc.transform((v) => decode(link.transformation, v)),
|
|
105
|
-
walk(encoding[0].to),
|
|
106
|
-
)
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// Transformations built via pure `SchemaGetter.transform(fn)` (the common
|
|
110
|
-
// decodeTo case) resolve synchronously, so running with no services is safe.
|
|
111
|
-
// Effectful / middleware-based transforms will surface as Effect defects.
|
|
112
|
-
function decode(transformation: SchemaAST.Link["transformation"], value: unknown): unknown {
|
|
113
|
-
const exit = Effect.runSyncExit(
|
|
114
|
-
(transformation.decode as any).run(Option.some(value), EMPTY_PARSE_OPTIONS) as Effect.Effect<
|
|
115
|
-
Option.Option<unknown>
|
|
116
|
-
>,
|
|
117
|
-
)
|
|
118
|
-
if (exit._tag === "Failure") throw new Error(`effect-zod: transform failed: ${String(exit.cause)}`)
|
|
119
|
-
return Option.getOrElse(exit.value, () => value)
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// Flatten FilterGroups and any nested variants into a linear list of Filters.
|
|
123
|
-
// Well-known filters (Schema.isInt, isGreaterThan, isPattern, …) are
|
|
124
|
-
// translated into native Zod methods so their JSON Schema output includes
|
|
125
|
-
// the corresponding constraint (type: integer, exclusiveMinimum, pattern, …).
|
|
126
|
-
// Anything else falls back to a single .superRefine layer — runtime-only,
|
|
127
|
-
// emits no JSON Schema constraint.
|
|
128
|
-
function applyChecks(out: z.ZodTypeAny, checks: SchemaAST.Checks, ast: SchemaAST.AST): z.ZodTypeAny {
|
|
129
|
-
const filters: SchemaAST.Filter<unknown>[] = []
|
|
130
|
-
const collect = (c: SchemaAST.Check<unknown>) => {
|
|
131
|
-
if (c._tag === "FilterGroup") c.checks.forEach(collect)
|
|
132
|
-
else filters.push(c)
|
|
133
|
-
}
|
|
134
|
-
checks.forEach(collect)
|
|
135
|
-
|
|
136
|
-
const unhandled: SchemaAST.Filter<unknown>[] = []
|
|
137
|
-
const translated = filters.reduce<z.ZodTypeAny>((acc, filter) => {
|
|
138
|
-
const next = translateFilter(acc, filter)
|
|
139
|
-
if (next) return next
|
|
140
|
-
unhandled.push(filter)
|
|
141
|
-
return acc
|
|
142
|
-
}, out)
|
|
143
|
-
|
|
144
|
-
if (unhandled.length === 0) return translated
|
|
145
|
-
|
|
146
|
-
return translated.superRefine((value, ctx) => {
|
|
147
|
-
for (const filter of unhandled) {
|
|
148
|
-
const issue = filter.run(value, ast, EMPTY_PARSE_OPTIONS)
|
|
149
|
-
if (!issue) continue
|
|
150
|
-
const message = issueMessage(issue) ?? (filter.annotations as any)?.message ?? "Validation failed"
|
|
151
|
-
ctx.addIssue({ code: "custom", message })
|
|
152
|
-
}
|
|
153
|
-
})
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
// Translate a well-known Effect Schema filter into a native Zod method call on
|
|
157
|
-
// `out`. Dispatch is keyed on `filter.annotations.meta._tag`, which every
|
|
158
|
-
// built-in check factory (isInt, isGreaterThan, isPattern, …) attaches at
|
|
159
|
-
// construction time. Returns `undefined` for unrecognised filters so the
|
|
160
|
-
// caller can fall back to the generic .superRefine path.
|
|
161
|
-
function translateFilter(out: z.ZodTypeAny, filter: SchemaAST.Filter<unknown>): z.ZodTypeAny | undefined {
|
|
162
|
-
const meta = (filter.annotations as { meta?: Record<string, unknown> } | undefined)?.meta
|
|
163
|
-
if (!meta || typeof meta._tag !== "string") return undefined
|
|
164
|
-
switch (meta._tag) {
|
|
165
|
-
case "isInt":
|
|
166
|
-
return call(out, "int")
|
|
167
|
-
case "isFinite":
|
|
168
|
-
return call(out, "finite")
|
|
169
|
-
case "isGreaterThan":
|
|
170
|
-
return call(out, "gt", meta.exclusiveMinimum)
|
|
171
|
-
case "isGreaterThanOrEqualTo":
|
|
172
|
-
return call(out, "gte", meta.minimum)
|
|
173
|
-
case "isLessThan":
|
|
174
|
-
return call(out, "lt", meta.exclusiveMaximum)
|
|
175
|
-
case "isLessThanOrEqualTo":
|
|
176
|
-
return call(out, "lte", meta.maximum)
|
|
177
|
-
case "isBetween": {
|
|
178
|
-
const lo = meta.exclusiveMinimum ? call(out, "gt", meta.minimum) : call(out, "gte", meta.minimum)
|
|
179
|
-
if (!lo) return undefined
|
|
180
|
-
return meta.exclusiveMaximum ? call(lo, "lt", meta.maximum) : call(lo, "lte", meta.maximum)
|
|
181
|
-
}
|
|
182
|
-
case "isMultipleOf":
|
|
183
|
-
return call(out, "multipleOf", meta.divisor)
|
|
184
|
-
case "isMinLength":
|
|
185
|
-
return call(out, "min", meta.minLength)
|
|
186
|
-
case "isMaxLength":
|
|
187
|
-
return call(out, "max", meta.maxLength)
|
|
188
|
-
case "isLengthBetween": {
|
|
189
|
-
const lo = call(out, "min", meta.minimum)
|
|
190
|
-
if (!lo) return undefined
|
|
191
|
-
return call(lo, "max", meta.maximum)
|
|
192
|
-
}
|
|
193
|
-
case "isPattern":
|
|
194
|
-
return call(out, "regex", meta.regExp)
|
|
195
|
-
case "isStartsWith":
|
|
196
|
-
return call(out, "startsWith", meta.startsWith)
|
|
197
|
-
case "isEndsWith":
|
|
198
|
-
return call(out, "endsWith", meta.endsWith)
|
|
199
|
-
case "isIncludes":
|
|
200
|
-
return call(out, "includes", meta.includes)
|
|
201
|
-
case "isUUID":
|
|
202
|
-
return call(out, "uuid")
|
|
203
|
-
case "isULID":
|
|
204
|
-
return call(out, "ulid")
|
|
205
|
-
case "isBase64":
|
|
206
|
-
return call(out, "base64")
|
|
207
|
-
case "isBase64Url":
|
|
208
|
-
return call(out, "base64url")
|
|
209
|
-
}
|
|
210
|
-
return undefined
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
// Invoke a named Zod method on `target` if it exists, otherwise return
|
|
214
|
-
// undefined so the caller can fall back. Using this helper instead of a
|
|
215
|
-
// typed cast keeps `translateFilter` free of per-case narrowing noise.
|
|
216
|
-
function call(target: z.ZodTypeAny, method: string, ...args: unknown[]): z.ZodTypeAny | undefined {
|
|
217
|
-
const fn = (target as unknown as Record<string, ((...a: unknown[]) => z.ZodTypeAny) | undefined>)[method]
|
|
218
|
-
return typeof fn === "function" ? fn.apply(target, args) : undefined
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
function issueMessage(issue: any): string | undefined {
|
|
222
|
-
if (typeof issue?.annotations?.message === "string") return issue.annotations.message
|
|
223
|
-
if (typeof issue?.message === "string") return issue.message
|
|
224
|
-
return undefined
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
function body(ast: SchemaAST.AST): z.ZodTypeAny {
|
|
228
|
-
if (SchemaAST.isOptional(ast)) return opt(ast)
|
|
229
|
-
|
|
230
|
-
switch (ast._tag) {
|
|
231
|
-
case "String":
|
|
232
|
-
return z.string()
|
|
233
|
-
case "Number":
|
|
234
|
-
return z.number()
|
|
235
|
-
case "Boolean":
|
|
236
|
-
return z.boolean()
|
|
237
|
-
case "Null":
|
|
238
|
-
return z.null()
|
|
239
|
-
case "Undefined":
|
|
240
|
-
return z.undefined()
|
|
241
|
-
case "Any":
|
|
242
|
-
case "Unknown":
|
|
243
|
-
return z.unknown()
|
|
244
|
-
case "Never":
|
|
245
|
-
return z.never()
|
|
246
|
-
case "Literal":
|
|
247
|
-
return z.literal(ast.literal)
|
|
248
|
-
case "Union":
|
|
249
|
-
return union(ast)
|
|
250
|
-
case "Objects":
|
|
251
|
-
return object(ast)
|
|
252
|
-
case "Arrays":
|
|
253
|
-
return array(ast)
|
|
254
|
-
case "Declaration":
|
|
255
|
-
return decl(ast)
|
|
256
|
-
default:
|
|
257
|
-
return fail(ast)
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
function opt(ast: SchemaAST.AST): z.ZodTypeAny {
|
|
262
|
-
if (ast._tag !== "Union") return fail(ast)
|
|
263
|
-
const items = ast.types.filter((item) => item._tag !== "Undefined")
|
|
264
|
-
const inner =
|
|
265
|
-
items.length === 1
|
|
266
|
-
? walk(items[0])
|
|
267
|
-
: items.length > 1
|
|
268
|
-
? z.union(items.map(walk) as [z.ZodTypeAny, z.ZodTypeAny, ...Array<z.ZodTypeAny>])
|
|
269
|
-
: z.undefined()
|
|
270
|
-
// Schema.withDecodingDefault attaches an encoding `Link` whose transformation
|
|
271
|
-
// decode Getter resolves `Option.none()` to `Option.some(default)`. Invoke
|
|
272
|
-
// it to extract the default and emit `.default(...)` instead of `.optional()`.
|
|
273
|
-
const fallback = extractDefault(ast)
|
|
274
|
-
if (fallback !== undefined) return inner.default(fallback.value)
|
|
275
|
-
return inner.optional()
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
type DecodeLink = {
|
|
279
|
-
readonly transformation: {
|
|
280
|
-
readonly decode: {
|
|
281
|
-
readonly run: (
|
|
282
|
-
input: Option.Option<unknown>,
|
|
283
|
-
options: SchemaAST.ParseOptions,
|
|
284
|
-
) => Effect.Effect<Option.Option<unknown>, unknown>
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
function extractDefault(ast: SchemaAST.AST): { value: unknown } | undefined {
|
|
290
|
-
const encoding = (ast as { encoding?: ReadonlyArray<DecodeLink> }).encoding
|
|
291
|
-
if (!encoding?.length) return undefined
|
|
292
|
-
// Walk the chain of encoding Links in order; the first Getter that produces
|
|
293
|
-
// a value from Option.none wins. withDecodingDefault always puts its
|
|
294
|
-
// defaulting Link adjacent to the optional Union.
|
|
295
|
-
for (const link of encoding) {
|
|
296
|
-
const probe = Effect.runSyncExit(link.transformation.decode.run(Option.none(), {}))
|
|
297
|
-
if (probe._tag !== "Success") continue
|
|
298
|
-
if (Option.isSome(probe.value)) return { value: probe.value.value }
|
|
299
|
-
}
|
|
300
|
-
return undefined
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
function union(ast: SchemaAST.Union): z.ZodTypeAny {
|
|
304
|
-
// When every member is a string literal, emit z.enum() so that
|
|
305
|
-
// JSON Schema produces { "enum": [...] } instead of { "anyOf": [{ "const": ... }] }.
|
|
306
|
-
if (ast.types.length >= 2 && ast.types.every((t) => t._tag === "Literal" && typeof t.literal === "string")) {
|
|
307
|
-
return z.enum(ast.types.map((t) => (t as SchemaAST.Literal).literal as string) as [string, ...string[]])
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
const items = ast.types.map(walk)
|
|
311
|
-
if (items.length === 1) return items[0]
|
|
312
|
-
if (items.length < 2) return fail(ast)
|
|
313
|
-
|
|
314
|
-
const discriminator = ast.annotations?.discriminator
|
|
315
|
-
if (typeof discriminator === "string") {
|
|
316
|
-
return z.discriminatedUnion(discriminator, items as [z.ZodObject<any>, z.ZodObject<any>, ...z.ZodObject<any>[]])
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
return z.union(items as [z.ZodTypeAny, z.ZodTypeAny, ...Array<z.ZodTypeAny>])
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
function object(ast: SchemaAST.Objects): z.ZodTypeAny {
|
|
323
|
-
// Pure record: { [k: string]: V }
|
|
324
|
-
if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 1) {
|
|
325
|
-
const sig = ast.indexSignatures[0]
|
|
326
|
-
if (sig.parameter._tag !== "String") return fail(ast)
|
|
327
|
-
return z.record(z.string(), walk(sig.type))
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
// Pure object with known fields and no index signatures.
|
|
331
|
-
if (ast.indexSignatures.length === 0) {
|
|
332
|
-
return z.object(Object.fromEntries(ast.propertySignatures.map((sig) => [String(sig.name), walk(sig.type)])))
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
// Struct with a catchall (StructWithRest): known fields + index signature.
|
|
336
|
-
// Only supports a single string-keyed index signature; multi-signature or
|
|
337
|
-
// symbol/number keys fall through to fail.
|
|
338
|
-
if (ast.indexSignatures.length !== 1) return fail(ast)
|
|
339
|
-
const sig = ast.indexSignatures[0]
|
|
340
|
-
if (sig.parameter._tag !== "String") return fail(ast)
|
|
341
|
-
return z
|
|
342
|
-
.object(Object.fromEntries(ast.propertySignatures.map((p) => [String(p.name), walk(p.type)])))
|
|
343
|
-
.catchall(walk(sig.type))
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
function array(ast: SchemaAST.Arrays): z.ZodTypeAny {
|
|
347
|
-
// Pure variadic arrays: { elements: [], rest: [item] }
|
|
348
|
-
if (ast.elements.length === 0) {
|
|
349
|
-
if (ast.rest.length !== 1) return fail(ast)
|
|
350
|
-
return z.array(walk(ast.rest[0]))
|
|
351
|
-
}
|
|
352
|
-
// Fixed-length tuples: { elements: [a, b, ...], rest: [] }
|
|
353
|
-
// Tuples with a variadic tail (...rest) are not yet supported.
|
|
354
|
-
if (ast.rest.length > 0) return fail(ast)
|
|
355
|
-
const items = ast.elements.map(walk)
|
|
356
|
-
return z.tuple(items as [z.ZodTypeAny, ...Array<z.ZodTypeAny>])
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
function decl(ast: SchemaAST.Declaration): z.ZodTypeAny {
|
|
360
|
-
if (ast.typeParameters.length !== 1) return fail(ast)
|
|
361
|
-
return walk(ast.typeParameters[0])
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
function fail(ast: SchemaAST.AST): never {
|
|
365
|
-
const ref = SchemaAST.resolveIdentifier(ast)
|
|
366
|
-
throw new Error(`unsupported effect schema: ${ref ?? ast._tag}`)
|
|
367
|
-
}
|
package/src/util/env-info.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import os from "os"
|
|
2
|
-
import { Global } from "@/global"
|
|
3
|
-
import { InstallationChannel, InstallationVersion } from "@/installation/version"
|
|
4
|
-
import { getInstallationID } from "@/metrics/installation"
|
|
5
|
-
import { SLEEPYCODE_PROCESS_ROLE, SLEEPYCODE_RUN_ID } from "./sleepy-process"
|
|
6
|
-
|
|
7
|
-
function username() {
|
|
8
|
-
if (process.env.USER) return process.env.USER
|
|
9
|
-
if (process.env.USERNAME) return process.env.USERNAME
|
|
10
|
-
return os.userInfo().username
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
function locale() {
|
|
14
|
-
return Intl.DateTimeFormat().resolvedOptions().locale
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
function timezone() {
|
|
18
|
-
return Intl.DateTimeFormat().resolvedOptions().timeZone
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export async function getEnvInfo() {
|
|
22
|
-
const cpus = os.cpus()
|
|
23
|
-
|
|
24
|
-
return {
|
|
25
|
-
os: {
|
|
26
|
-
platform: os.platform(),
|
|
27
|
-
arch: os.arch(),
|
|
28
|
-
release: os.release(),
|
|
29
|
-
hostname: os.hostname(),
|
|
30
|
-
},
|
|
31
|
-
cpu: {
|
|
32
|
-
model: cpus[0]?.model ?? "unknown",
|
|
33
|
-
count: cpus.length,
|
|
34
|
-
},
|
|
35
|
-
memory: {
|
|
36
|
-
total_bytes: os.totalmem(),
|
|
37
|
-
},
|
|
38
|
-
user: {
|
|
39
|
-
username: username(),
|
|
40
|
-
homedir: os.homedir(),
|
|
41
|
-
},
|
|
42
|
-
runtime: {
|
|
43
|
-
bun_version: Bun.version,
|
|
44
|
-
node_version: process.versions.node,
|
|
45
|
-
pid: process.pid,
|
|
46
|
-
timezone: timezone(),
|
|
47
|
-
locale: locale(),
|
|
48
|
-
},
|
|
49
|
-
paths: {
|
|
50
|
-
cwd: process.cwd(),
|
|
51
|
-
data: Global.Path.data,
|
|
52
|
-
config: Global.Path.config,
|
|
53
|
-
},
|
|
54
|
-
sleepycode: {
|
|
55
|
-
version: InstallationVersion,
|
|
56
|
-
channel: InstallationChannel,
|
|
57
|
-
installation_id: await getInstallationID(),
|
|
58
|
-
run_id: SLEEPYCODE_RUN_ID,
|
|
59
|
-
process_role: SLEEPYCODE_PROCESS_ROLE,
|
|
60
|
-
},
|
|
61
|
-
}
|
|
62
|
-
}
|