@sleepy-ai/cli 0.1.5 → 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 -323
- 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/session/max-mode.ts
DELETED
|
@@ -1,410 +0,0 @@
|
|
|
1
|
-
import { Cause, Effect } from "effect"
|
|
2
|
-
import * as Stream from "effect/Stream"
|
|
3
|
-
import type { ModelMessage, Tool as AITool } from "ai"
|
|
4
|
-
import { LLM } from "./llm"
|
|
5
|
-
import { SessionProcessor } from "./processor"
|
|
6
|
-
import * as Session from "./session"
|
|
7
|
-
import type { Provider } from "@/provider"
|
|
8
|
-
import type { Agent } from "@/agent/agent"
|
|
9
|
-
import type { MessageV2 } from "./message-v2"
|
|
10
|
-
import {
|
|
11
|
-
createTextNgramMonitor,
|
|
12
|
-
isTextNgramRepeat,
|
|
13
|
-
textNgramRepeat,
|
|
14
|
-
} from "./prompt/text-ngram-detection"
|
|
15
|
-
import type { Permission } from "@/permission"
|
|
16
|
-
import { Log } from "@/util"
|
|
17
|
-
|
|
18
|
-
const log = Log.create({ service: "session.max-mode" })
|
|
19
|
-
|
|
20
|
-
export const DEFAULT_CANDIDATES = 5
|
|
21
|
-
|
|
22
|
-
/** Name of the built-in max-mode primary agent. */
|
|
23
|
-
export const MAX_MODE_AGENT = "max"
|
|
24
|
-
|
|
25
|
-
/** One candidate's collected output from a propose-only stream. */
|
|
26
|
-
export type Candidate = {
|
|
27
|
-
index: number
|
|
28
|
-
reasoning: string
|
|
29
|
-
reasoningMetadata?: Record<string, any>
|
|
30
|
-
text: string
|
|
31
|
-
textMetadata?: Record<string, any>
|
|
32
|
-
toolCalls: SessionProcessor.ProposedToolCall[]
|
|
33
|
-
finishReason: string
|
|
34
|
-
usage?: any
|
|
35
|
-
providerMetadata?: Record<string, any>
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Shared inputs for a max-mode step. These mirror exactly what the runLoop has
|
|
40
|
-
* in scope at the main `handle.process` call site, so the orchestrator can be
|
|
41
|
-
* dropped in with no extra plumbing.
|
|
42
|
-
*/
|
|
43
|
-
export type MaxStepInput = {
|
|
44
|
-
handle: SessionProcessor.Handle
|
|
45
|
-
llm: LLM.Interface
|
|
46
|
-
user: MessageV2.User
|
|
47
|
-
agent: Agent.Info
|
|
48
|
-
model: Provider.Model
|
|
49
|
-
sessionID: string
|
|
50
|
-
parentSessionID?: string
|
|
51
|
-
permission?: Permission.Ruleset
|
|
52
|
-
/** Custom system additions (same array passed to handle.process). */
|
|
53
|
-
system: string[]
|
|
54
|
-
/** Prebuilt system array (verbatim) — same as handle.process. */
|
|
55
|
-
prebuiltSystem?: string[]
|
|
56
|
-
/** Model messages for this step. */
|
|
57
|
-
messages: ModelMessage[]
|
|
58
|
-
/** Execute-bearing tools from resolveTools — used to run the winner. */
|
|
59
|
-
tools: Record<string, AITool>
|
|
60
|
-
agentID?: string
|
|
61
|
-
/**
|
|
62
|
-
* Tool-choice from the per-step args. Accepted (so the same processArgs object
|
|
63
|
-
* can be spread in) but unused: candidates always run propose-only and the
|
|
64
|
-
* json_schema path never takes the max-mode branch.
|
|
65
|
-
*/
|
|
66
|
-
toolChoice?: "auto" | "required" | "none"
|
|
67
|
-
/** Number of parallel candidates (default 5). */
|
|
68
|
-
candidates?: number
|
|
69
|
-
/**
|
|
70
|
-
* Optional hook to surface progress to the UI during the (otherwise
|
|
71
|
-
* invisible) candidate + judge phases. Called with a short English label,
|
|
72
|
-
* or undefined to clear back to a plain busy state.
|
|
73
|
-
*/
|
|
74
|
-
setStatus?: (message: string | undefined) => Effect.Effect<void>
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Strip the `execute` closure from each tool, yielding "schema-only" tools.
|
|
79
|
-
* The AI SDK stops the step and emits a `tool-call` event (without executing)
|
|
80
|
-
* when an invoked tool has no `execute` — exactly the propose-only behaviour
|
|
81
|
-
* candidates need.
|
|
82
|
-
*/
|
|
83
|
-
export function toSchemaOnlyTools(tools: Record<string, AITool>): Record<string, AITool> {
|
|
84
|
-
const out: Record<string, AITool> = {}
|
|
85
|
-
for (const [key, t] of Object.entries(tools)) {
|
|
86
|
-
const { execute: _execute, ...rest } = t as any
|
|
87
|
-
out[key] = rest as AITool
|
|
88
|
-
}
|
|
89
|
-
return out
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Run a single propose-only candidate stream, collecting reasoning + text +
|
|
94
|
-
* proposed tool calls without executing anything. Returns null on failure so a
|
|
95
|
-
* single bad draw doesn't sink the whole step.
|
|
96
|
-
*
|
|
97
|
-
* Transient network failures (ECONNRESET / EPIPE / SSE timeout / 5xx) are
|
|
98
|
-
* retried with the same persistent schedule the normal stream path uses. This
|
|
99
|
-
* is safe — and deliberately broader than the normal path — because a
|
|
100
|
-
* candidate emits NOTHING externally until it completes: each attempt rebuilds
|
|
101
|
-
* a fresh accumulator, so re-streaming after a mid-stream reset cannot
|
|
102
|
-
* duplicate user-visible output the way the live processor stream would. A
|
|
103
|
-
* mid-stream ECONNRESET that the normal path can't retry (it only wraps
|
|
104
|
-
* connection setup) is fully recoverable here.
|
|
105
|
-
*/
|
|
106
|
-
// Exported for integration tests (drives the real candidate path with a mock
|
|
107
|
-
// llm.stream). Not part of the public surface — call sites use runMaxStep.
|
|
108
|
-
export const runCandidate = (
|
|
109
|
-
input: MaxStepInput,
|
|
110
|
-
index: number,
|
|
111
|
-
): Effect.Effect<Candidate | null | "text-repeat"> =>
|
|
112
|
-
Effect.gen(function* () {
|
|
113
|
-
const monitor = createTextNgramMonitor()
|
|
114
|
-
// Fresh accumulator per attempt: the retry below re-runs this whole block,
|
|
115
|
-
// so partial reasoning/text/toolCalls from a failed attempt must not carry
|
|
116
|
-
// over into the retry.
|
|
117
|
-
const candidate: Candidate = {
|
|
118
|
-
index,
|
|
119
|
-
reasoning: "",
|
|
120
|
-
text: "",
|
|
121
|
-
toolCalls: [],
|
|
122
|
-
finishReason: "stop",
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
const schemaOnly = toSchemaOnlyTools(input.tools)
|
|
126
|
-
const stream = input.llm.stream({
|
|
127
|
-
user: input.user,
|
|
128
|
-
sessionID: input.sessionID,
|
|
129
|
-
parentSessionID: input.parentSessionID,
|
|
130
|
-
model: input.model,
|
|
131
|
-
agent: input.agent,
|
|
132
|
-
permission: input.permission,
|
|
133
|
-
system: input.system,
|
|
134
|
-
prebuiltSystem: input.prebuiltSystem,
|
|
135
|
-
messages: input.messages,
|
|
136
|
-
tools: schemaOnly,
|
|
137
|
-
agentID: input.agentID,
|
|
138
|
-
})
|
|
139
|
-
|
|
140
|
-
yield* Stream.runForEach(stream, (event: LLM.Event) => {
|
|
141
|
-
switch (event.type) {
|
|
142
|
-
case "reasoning-delta":
|
|
143
|
-
candidate.reasoning += event.text
|
|
144
|
-
if (monitor.append(event.text)) return Effect.fail(textNgramRepeat())
|
|
145
|
-
if (event.providerMetadata) candidate.reasoningMetadata = event.providerMetadata
|
|
146
|
-
break
|
|
147
|
-
case "text-delta":
|
|
148
|
-
candidate.text += event.text
|
|
149
|
-
if (monitor.append(event.text)) return Effect.fail(textNgramRepeat())
|
|
150
|
-
if (event.providerMetadata) candidate.textMetadata = event.providerMetadata
|
|
151
|
-
break
|
|
152
|
-
case "tool-call":
|
|
153
|
-
candidate.toolCalls.push({
|
|
154
|
-
toolCallId: event.toolCallId,
|
|
155
|
-
toolName: event.toolName,
|
|
156
|
-
input: (event.input as Record<string, any>) ?? {},
|
|
157
|
-
providerMetadata: event.providerMetadata,
|
|
158
|
-
})
|
|
159
|
-
break
|
|
160
|
-
case "finish-step":
|
|
161
|
-
candidate.finishReason = event.finishReason ?? candidate.finishReason
|
|
162
|
-
candidate.usage = event.usage
|
|
163
|
-
candidate.providerMetadata = event.providerMetadata
|
|
164
|
-
break
|
|
165
|
-
// The AI SDK surfaces a transient stream failure (ECONNRESET etc.) as
|
|
166
|
-
// an `error` PART that ends the stream normally — it does NOT throw, and
|
|
167
|
-
// the normal processor path only converts this via its own catchCause.
|
|
168
|
-
// Emit it into the Effect error channel (NOT a thrown defect, which the
|
|
169
|
-
// retry's `while` predicate would skip) so Effect.retry below can fire;
|
|
170
|
-
// otherwise the error is silently swallowed and the candidate ends
|
|
171
|
-
// half-streamed.
|
|
172
|
-
case "error":
|
|
173
|
-
return Effect.fail(event.error)
|
|
174
|
-
default:
|
|
175
|
-
break
|
|
176
|
-
}
|
|
177
|
-
return Effect.void
|
|
178
|
-
})
|
|
179
|
-
|
|
180
|
-
return candidate
|
|
181
|
-
}).pipe(
|
|
182
|
-
// Mirror the proven build/plan path (processor.ts): convert any DEFECT into
|
|
183
|
-
// a typed failure before retrying. The SSE-timeout / aborted-fetch errors
|
|
184
|
-
// raised deep in the provider stream surface as defects (Cause.die), which
|
|
185
|
-
// Effect.retry's `while` and Effect.catch both skip — so without this they
|
|
186
|
-
// escape the fiber as an unhandled rejection and kill the whole session.
|
|
187
|
-
// Interrupts (genuine user cancel) are left to propagate.
|
|
188
|
-
Effect.catchCauseIf(
|
|
189
|
-
(cause) => !Cause.hasInterruptsOnly(cause),
|
|
190
|
-
(cause) => Effect.fail(Cause.squash(cause)),
|
|
191
|
-
),
|
|
192
|
-
Effect.retry({
|
|
193
|
-
while: LLM.isTransientCapacityError,
|
|
194
|
-
schedule: LLM.persistentRetrySchedule,
|
|
195
|
-
}),
|
|
196
|
-
Effect.catchIf(isTextNgramRepeat, () => Effect.succeed("text-repeat" as const)),
|
|
197
|
-
Effect.catch((e) =>
|
|
198
|
-
Effect.sync(() => {
|
|
199
|
-
log.warn("candidate failed", { index, error: e instanceof Error ? e.message : String(e) })
|
|
200
|
-
return null
|
|
201
|
-
}),
|
|
202
|
-
),
|
|
203
|
-
)
|
|
204
|
-
|
|
205
|
-
/** Render a candidate compactly for the judge. `label` is its judge-facing index. */
|
|
206
|
-
function renderCandidate(c: Candidate, label: number): string {
|
|
207
|
-
const tools =
|
|
208
|
-
c.toolCalls.length === 0
|
|
209
|
-
? "(no tool calls — final answer / text only)"
|
|
210
|
-
: c.toolCalls
|
|
211
|
-
.map((t) => ` - ${t.toolName}(${JSON.stringify(t.input)})`)
|
|
212
|
-
.join("\n")
|
|
213
|
-
const reasoning = c.reasoning.trim() ? c.reasoning.trim() : "(no reasoning emitted)"
|
|
214
|
-
const text = c.text.trim() ? c.text.trim() : "(no text emitted)"
|
|
215
|
-
return [
|
|
216
|
-
`### Candidate ${label}`,
|
|
217
|
-
`Reasoning:\n${reasoning}`,
|
|
218
|
-
`Message:\n${text}`,
|
|
219
|
-
`Proposed tool calls:\n${tools}`,
|
|
220
|
-
].join("\n")
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
const JUDGE_SYSTEM = [
|
|
224
|
-
"You are a judge selecting the single best next step for a coding agent.",
|
|
225
|
-
"You will see several independent candidate drafts for the SAME step. Each candidate contains its reasoning, its message text, and the tool calls it proposes to make next.",
|
|
226
|
-
"Pick the ONE candidate that has the most correct, grounded, and useful next step. Prefer candidates whose reasoning is sound and whose proposed tool calls are appropriate and safe.",
|
|
227
|
-
"Respond with ONLY the integer index of the winning candidate (e.g. `2`). No other text.",
|
|
228
|
-
].join("\n")
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Parse the judge's free-text reply into a valid candidate index. Returns 0
|
|
232
|
-
* (first survivor) when the reply has no integer or is out of range — so a
|
|
233
|
-
* flaky judge never blocks the step.
|
|
234
|
-
*/
|
|
235
|
-
export function parseJudgeIndex(out: string, count: number): number {
|
|
236
|
-
const match = out.match(/\d+/)
|
|
237
|
-
if (!match) return 0
|
|
238
|
-
const picked = parseInt(match[0], 10)
|
|
239
|
-
if (Number.isNaN(picked) || picked < 0 || picked >= count) return 0
|
|
240
|
-
return picked
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
* Ask the model to pick the best candidate. Returns the winner's index in the
|
|
245
|
-
* `candidates` array (NOT the candidate.index field) plus the judge call's own
|
|
246
|
-
* token usage. Falls back to index 0 on any parse/out-of-range issue.
|
|
247
|
-
*/
|
|
248
|
-
/** Exported for integration tests; call sites go through runMaxStep. */
|
|
249
|
-
export const judge = (input: MaxStepInput, candidates: Candidate[]): Effect.Effect<{ pick: number; usage?: any }> =>
|
|
250
|
-
Effect.gen(function* () {
|
|
251
|
-
if (candidates.length === 1) return { pick: 0, usage: undefined }
|
|
252
|
-
|
|
253
|
-
const rendered = candidates.map((c, i) => renderCandidate(c, i)).join("\n\n")
|
|
254
|
-
const judgePrompt = [
|
|
255
|
-
`There are ${candidates.length} candidates, indexed 0..${candidates.length - 1}.`,
|
|
256
|
-
"",
|
|
257
|
-
rendered,
|
|
258
|
-
"",
|
|
259
|
-
`Reply with ONLY the integer index (0..${candidates.length - 1}) of the best candidate.`,
|
|
260
|
-
].join("\n")
|
|
261
|
-
|
|
262
|
-
const messages: ModelMessage[] = [{ role: "user", content: judgePrompt }]
|
|
263
|
-
|
|
264
|
-
let out = ""
|
|
265
|
-
let usage: any | undefined
|
|
266
|
-
const stream = input.llm.stream({
|
|
267
|
-
user: input.user,
|
|
268
|
-
sessionID: input.sessionID,
|
|
269
|
-
parentSessionID: input.parentSessionID,
|
|
270
|
-
model: input.model,
|
|
271
|
-
agent: input.agent,
|
|
272
|
-
permission: input.permission,
|
|
273
|
-
system: [JUDGE_SYSTEM],
|
|
274
|
-
messages,
|
|
275
|
-
tools: {},
|
|
276
|
-
toolChoice: "none",
|
|
277
|
-
agentID: input.agentID,
|
|
278
|
-
})
|
|
279
|
-
|
|
280
|
-
yield* Stream.runForEach(stream, (event: LLM.Event) => {
|
|
281
|
-
if (event.type === "text-delta") out += event.text
|
|
282
|
-
else if (event.type === "finish-step") usage = event.usage
|
|
283
|
-
// Same as runCandidate: a transient failure arrives as an `error` part,
|
|
284
|
-
// not a thrown error. Surface it into the error channel so Effect.retry
|
|
285
|
-
// below can fire instead of silently picking candidate 0.
|
|
286
|
-
else if (event.type === "error") return Effect.fail(event.error)
|
|
287
|
-
return Effect.void
|
|
288
|
-
})
|
|
289
|
-
|
|
290
|
-
return { pick: parseJudgeIndex(out, candidates.length), usage }
|
|
291
|
-
}).pipe(
|
|
292
|
-
// Convert defects (SSE timeout / aborted fetch surfacing as Cause.die) into
|
|
293
|
-
// typed failures before retrying — same as runCandidate and the proven
|
|
294
|
-
// processor path. Otherwise the defect escapes and kills the session
|
|
295
|
-
// instead of degrading to pick 0.
|
|
296
|
-
Effect.catchCauseIf(
|
|
297
|
-
(cause) => !Cause.hasInterruptsOnly(cause),
|
|
298
|
-
(cause) => Effect.fail(Cause.squash(cause)),
|
|
299
|
-
),
|
|
300
|
-
// Same transient-retry rationale as runCandidate: the judge accumulates
|
|
301
|
-
// `out`/`usage` locally and emits nothing externally until it returns, so
|
|
302
|
-
// re-streaming after a mid-stream reset is safe. Without this, a single
|
|
303
|
-
// ECONNRESET during judging silently collapses the whole step to pick 0.
|
|
304
|
-
Effect.retry({
|
|
305
|
-
while: LLM.isTransientCapacityError,
|
|
306
|
-
schedule: LLM.persistentRetrySchedule,
|
|
307
|
-
}),
|
|
308
|
-
Effect.catch((e) => {
|
|
309
|
-
log.warn("judge failed, defaulting to candidate 0", {
|
|
310
|
-
error: e instanceof Error ? e.message : String(e),
|
|
311
|
-
})
|
|
312
|
-
return Effect.succeed({ pick: 0, usage: undefined })
|
|
313
|
-
}),
|
|
314
|
-
)
|
|
315
|
-
|
|
316
|
-
/**
|
|
317
|
-
* Run one max-mode step: N parallel propose-only candidates → judge picks the
|
|
318
|
-
* winner → replay (execute) the winner through the processor. Returns the same
|
|
319
|
-
* Result contract as `handle.process`.
|
|
320
|
-
*
|
|
321
|
-
* Degradation: if every candidate fails (0 survivors), falls back to a normal
|
|
322
|
-
* single `handle.process` call so the step still makes progress.
|
|
323
|
-
*/
|
|
324
|
-
export const runMaxStep = (input: MaxStepInput): Effect.Effect<SessionProcessor.Result> =>
|
|
325
|
-
Effect.gen(function* () {
|
|
326
|
-
const n = Math.max(1, input.candidates ?? DEFAULT_CANDIDATES)
|
|
327
|
-
const setStatus = (message: string | undefined) =>
|
|
328
|
-
input.setStatus ? input.setStatus(message) : Effect.void
|
|
329
|
-
|
|
330
|
-
// Total wall-clock of the whole ensemble phase (N parallel candidates +
|
|
331
|
-
// judge), measured from just before the candidates start until just before
|
|
332
|
-
// replay. Shown as the winner's thinking duration.
|
|
333
|
-
const ensembleStartedAt = Date.now()
|
|
334
|
-
|
|
335
|
-
yield* setStatus(`thinking — ${n} candidates`)
|
|
336
|
-
const results = yield* Effect.all(
|
|
337
|
-
Array.from({ length: n }, (_, i) => runCandidate(input, i)),
|
|
338
|
-
{ concurrency: n },
|
|
339
|
-
)
|
|
340
|
-
if (results.some((result) => result === "text-repeat")) return "text-repeat"
|
|
341
|
-
const survivors = results.filter((c): c is Candidate => c !== null && c !== "text-repeat")
|
|
342
|
-
|
|
343
|
-
if (survivors.length === 0) {
|
|
344
|
-
log.warn("all candidates failed, falling back to single process")
|
|
345
|
-
yield* setStatus(undefined)
|
|
346
|
-
return yield* input.handle.process({
|
|
347
|
-
user: input.user,
|
|
348
|
-
agent: input.agent,
|
|
349
|
-
permission: input.permission,
|
|
350
|
-
sessionID: input.sessionID,
|
|
351
|
-
parentSessionID: input.parentSessionID,
|
|
352
|
-
system: input.system,
|
|
353
|
-
prebuiltSystem: input.prebuiltSystem,
|
|
354
|
-
messages: input.messages,
|
|
355
|
-
tools: input.tools,
|
|
356
|
-
model: input.model,
|
|
357
|
-
agentID: input.agentID,
|
|
358
|
-
})
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
yield* setStatus(`judging ${survivors.length} candidates`)
|
|
362
|
-
const { pick, usage: judgeUsage } = yield* judge(input, survivors)
|
|
363
|
-
const winner = survivors[pick]
|
|
364
|
-
log.info("max step", { candidates: n, survivors: survivors.length, winner: pick, toolCalls: winner.toolCalls.length })
|
|
365
|
-
|
|
366
|
-
// The winner's own usage is what actually enters history, so it (and only
|
|
367
|
-
// it) must drive the message's `tokens` — that field feeds the context
|
|
368
|
-
// overflow / prune / compaction estimators. Feeding the aggregate there
|
|
369
|
-
// would make max mode believe context is ~Nx fuller than it is and trigger
|
|
370
|
-
// premature compaction.
|
|
371
|
-
//
|
|
372
|
-
// The losing candidates + the judge are real spend but consume NO context.
|
|
373
|
-
// We surface them as `overhead`: extra cost + extra in/out token counts the
|
|
374
|
-
// processor adds to `cost` and the ModelCall metric only — never to
|
|
375
|
-
// `tokens`. So billing/metrics reflect the true ~Nx spend while context
|
|
376
|
-
// estimation stays honest.
|
|
377
|
-
const overheadUsages = [...survivors.filter((_, i) => i !== pick).map((c) => c.usage), judgeUsage]
|
|
378
|
-
const overhead = overheadUsages.reduce(
|
|
379
|
-
(acc, u) => {
|
|
380
|
-
if (!u) return acc
|
|
381
|
-
const g = Session.getUsage({ model: input.model, usage: u })
|
|
382
|
-
acc.cost += g.cost
|
|
383
|
-
acc.tokensIn += g.tokens.input + g.tokens.cache.read + g.tokens.cache.write
|
|
384
|
-
acc.tokensOut += g.tokens.output + g.tokens.reasoning
|
|
385
|
-
return acc
|
|
386
|
-
},
|
|
387
|
-
{ cost: 0, tokensIn: 0, tokensOut: 0 },
|
|
388
|
-
)
|
|
389
|
-
|
|
390
|
-
// Clear the max-mode label before replay so the winner streams under the
|
|
391
|
-
// normal busy state.
|
|
392
|
-
yield* setStatus(undefined)
|
|
393
|
-
return yield* input.handle.replay({
|
|
394
|
-
reasoning: winner.reasoning,
|
|
395
|
-
reasoningMetadata: winner.reasoningMetadata,
|
|
396
|
-
text: winner.text,
|
|
397
|
-
textMetadata: winner.textMetadata,
|
|
398
|
-
toolCalls: winner.toolCalls,
|
|
399
|
-
finishReason: winner.finishReason,
|
|
400
|
-
usage: winner.usage,
|
|
401
|
-
providerMetadata: winner.providerMetadata,
|
|
402
|
-
tools: input.tools as any,
|
|
403
|
-
messages: input.messages,
|
|
404
|
-
selection: { winner: pick, total: survivors.length },
|
|
405
|
-
thinkingMs: Date.now() - ensembleStartedAt,
|
|
406
|
-
overhead,
|
|
407
|
-
})
|
|
408
|
-
})
|
|
409
|
-
|
|
410
|
-
export * as MaxMode from "./max-mode"
|