tulingcode 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +134 -0
- package/Dockerfile +18 -0
- package/README.md +15 -0
- package/bin/tuling +179 -0
- package/bunfig.toml +7 -0
- package/drizzle.config.ts +10 -0
- package/git +0 -0
- package/migration/20260127222353_familiar_lady_ursula/migration.sql +90 -0
- package/migration/20260127222353_familiar_lady_ursula/snapshot.json +796 -0
- package/migration/20260211171708_add_project_commands/migration.sql +1 -0
- package/migration/20260211171708_add_project_commands/snapshot.json +806 -0
- package/migration/20260213144116_wakeful_the_professor/migration.sql +11 -0
- package/migration/20260213144116_wakeful_the_professor/snapshot.json +897 -0
- package/migration/20260225215848_workspace/migration.sql +7 -0
- package/migration/20260225215848_workspace/snapshot.json +959 -0
- package/migration/20260227213759_add_session_workspace_id/migration.sql +2 -0
- package/migration/20260227213759_add_session_workspace_id/snapshot.json +983 -0
- package/migration/20260228203230_blue_harpoon/migration.sql +17 -0
- package/migration/20260228203230_blue_harpoon/snapshot.json +1102 -0
- package/migration/20260303231226_add_workspace_fields/migration.sql +5 -0
- package/migration/20260303231226_add_workspace_fields/snapshot.json +1013 -0
- package/migration/20260309230000_move_org_to_state/migration.sql +3 -0
- package/migration/20260309230000_move_org_to_state/snapshot.json +1156 -0
- package/migration/20260312043431_session_message_cursor/migration.sql +4 -0
- package/migration/20260312043431_session_message_cursor/snapshot.json +1168 -0
- package/migration/20260323234822_events/migration.sql +13 -0
- package/migration/20260323234822_events/snapshot.json +1271 -0
- package/migration/20260410174513_workspace-name/migration.sql +16 -0
- package/migration/20260410174513_workspace-name/snapshot.json +1271 -0
- package/migration/20260413175956_chief_energizer/migration.sql +13 -0
- package/migration/20260413175956_chief_energizer/snapshot.json +1399 -0
- package/migration/20260422160000_context_inheritance/migration.sql +3 -0
- package/migration/20260422170000_task_registry/migration.sql +18 -0
- package/migration/20260423145421_remove_session_entry/migration.sql +4 -0
- package/migration/20260515000000_actor_rename/migration.sql +7 -0
- package/migration/20260515010000_memory_fts/migration.sql +33 -0
- package/migration/20260515020000_user_task/migration.sql +29 -0
- package/migration/20260519000000_last_checkpoint_message_id/migration.sql +1 -0
- package/migration/20260521000000_message_agent_id/migration.sql +2 -0
- package/migration/20260521000100_actor_registry_v6/migration.sql +25 -0
- package/migration/20260521010000_memory_fts_v6/migration.sql +33 -0
- package/migration/20260521020000_memory_fts_triggers/migration.sql +17 -0
- package/migration/20260526000000_agent_id_main/migration.sql +14 -0
- package/migration/20260527000000_actor_lifecycle/migration.sql +8 -0
- package/migration/20260527000100_inbox/migration.sql +12 -0
- package/migration/20260529000000_task_todo_redesign/migration.sql +16 -0
- package/migration/20260603000000_task_in_progress_owner/migration.sql +1 -0
- package/migration/20260603000000_workflow_run/migration.sql +17 -0
- package/migration/20260604000000_workflow_script_sha/migration.sql +1 -0
- package/migration/20260608000000_claude_import/migration.sql +7 -0
- package/migration/20260608010000_claude_import_message_ids/migration.sql +1 -0
- package/migration/20260609000000_history_fts/migration.sql +29 -0
- package/migration/20260609230000_workflow_agent_timeout/migration.sql +1 -0
- package/package.json +196 -0
- package/parsers-config.ts +290 -0
- package/script/build.ts +267 -0
- package/script/check-migrations.ts +16 -0
- package/script/fix-node-pty.ts +28 -0
- package/script/generate.ts +23 -0
- package/script/postinstall.mjs +102 -0
- package/script/publish.ts +60 -0
- package/script/run-workspace-server +106 -0
- package/script/schema.ts +63 -0
- package/script/time.ts +6 -0
- package/script/trace-imports.ts +153 -0
- package/script/upgrade-opentui.ts +64 -0
- package/src/account/account.sql.ts +39 -0
- package/src/account/account.ts +456 -0
- package/src/account/repo.ts +166 -0
- package/src/account/schema.ts +99 -0
- package/src/account/url.ts +8 -0
- package/src/acp/README.md +174 -0
- package/src/acp/agent.ts +1783 -0
- package/src/acp/session.ts +116 -0
- package/src/acp/types.ts +24 -0
- package/src/actor/actor.sql.ts +38 -0
- package/src/actor/events.ts +67 -0
- package/src/actor/index.ts +2 -0
- package/src/actor/registry.ts +412 -0
- package/src/actor/return-header.ts +24 -0
- package/src/actor/schema.ts +47 -0
- package/src/actor/spawn-ref.ts +16 -0
- package/src/actor/spawn.ts +741 -0
- package/src/actor/turn.ts +49 -0
- package/src/actor/waiter.ts +166 -0
- package/src/agent/agent.ts +554 -0
- package/src/agent/config.ts +5 -0
- package/src/agent/generate.txt +75 -0
- package/src/agent/prompt/checkpoint-writer.txt +167 -0
- package/src/agent/prompt/compaction.txt +9 -0
- package/src/agent/prompt/distill.txt +199 -0
- package/src/agent/prompt/dream.txt +155 -0
- package/src/agent/prompt/explore.txt +18 -0
- package/src/agent/prompt/summary.txt +11 -0
- package/src/agent/prompt/title.txt +44 -0
- package/src/audio.d.ts +9 -0
- package/src/auth/index.ts +97 -0
- package/src/bus/bus-event.ts +33 -0
- package/src/bus/global.ts +12 -0
- package/src/bus/index.ts +193 -0
- package/src/cli/bootstrap.ts +33 -0
- package/src/cli/cmd/account.ts +258 -0
- package/src/cli/cmd/acp.ts +70 -0
- package/src/cli/cmd/agent.ts +248 -0
- package/src/cli/cmd/cmd.ts +7 -0
- package/src/cli/cmd/db.ts +120 -0
- package/src/cli/cmd/debug/agent.ts +192 -0
- package/src/cli/cmd/debug/config.ts +17 -0
- package/src/cli/cmd/debug/file.ts +100 -0
- package/src/cli/cmd/debug/index.ts +48 -0
- package/src/cli/cmd/debug/lsp.ts +61 -0
- package/src/cli/cmd/debug/ripgrep.ts +105 -0
- package/src/cli/cmd/debug/scrap.ts +16 -0
- package/src/cli/cmd/debug/skill.ts +23 -0
- package/src/cli/cmd/debug/snapshot.ts +53 -0
- package/src/cli/cmd/export.ts +306 -0
- package/src/cli/cmd/generate.ts +50 -0
- package/src/cli/cmd/github.ts +1647 -0
- package/src/cli/cmd/import.ts +208 -0
- package/src/cli/cmd/mcp.ts +812 -0
- package/src/cli/cmd/models.ts +88 -0
- package/src/cli/cmd/plug.ts +233 -0
- package/src/cli/cmd/pr.ts +138 -0
- package/src/cli/cmd/providers.ts +705 -0
- package/src/cli/cmd/run-completion.ts +77 -0
- package/src/cli/cmd/run.ts +694 -0
- package/src/cli/cmd/serve.ts +21 -0
- package/src/cli/cmd/session.ts +181 -0
- package/src/cli/cmd/stats.ts +413 -0
- package/src/cli/cmd/tui/app.tsx +1130 -0
- package/src/cli/cmd/tui/asset/TEN_VAD_LICENSE +12 -0
- 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 +30 -0
- package/src/cli/cmd/tui/attach.ts +83 -0
- package/src/cli/cmd/tui/component/background-image.tsx +150 -0
- package/src/cli/cmd/tui/component/bg-pulse.tsx +130 -0
- package/src/cli/cmd/tui/component/border.tsx +21 -0
- package/src/cli/cmd/tui/component/dialog-agent.tsx +31 -0
- package/src/cli/cmd/tui/component/dialog-command.tsx +208 -0
- package/src/cli/cmd/tui/component/dialog-console-org.tsx +103 -0
- package/src/cli/cmd/tui/component/dialog-go-upsell.tsx +157 -0
- package/src/cli/cmd/tui/component/dialog-image-list.tsx +111 -0
- package/src/cli/cmd/tui/component/dialog-logo-design.tsx +37 -0
- package/src/cli/cmd/tui/component/dialog-mcp.tsx +86 -0
- package/src/cli/cmd/tui/component/dialog-mimo-login.tsx +224 -0
- package/src/cli/cmd/tui/component/dialog-model.tsx +253 -0
- package/src/cli/cmd/tui/component/dialog-provider.tsx +490 -0
- package/src/cli/cmd/tui/component/dialog-session-delete-failed.tsx +101 -0
- package/src/cli/cmd/tui/component/dialog-session-list.tsx +269 -0
- package/src/cli/cmd/tui/component/dialog-session-rename.tsx +31 -0
- package/src/cli/cmd/tui/component/dialog-skill.tsx +42 -0
- package/src/cli/cmd/tui/component/dialog-stash.tsx +87 -0
- package/src/cli/cmd/tui/component/dialog-status.tsx +170 -0
- package/src/cli/cmd/tui/component/dialog-tag.tsx +44 -0
- package/src/cli/cmd/tui/component/dialog-theme-list.tsx +50 -0
- package/src/cli/cmd/tui/component/dialog-variant.tsx +39 -0
- package/src/cli/cmd/tui/component/dialog-workflows.tsx +62 -0
- package/src/cli/cmd/tui/component/dialog-workspace-create.tsx +289 -0
- package/src/cli/cmd/tui/component/dialog-workspace-unavailable.tsx +81 -0
- package/src/cli/cmd/tui/component/dialog-worktree.tsx +90 -0
- package/src/cli/cmd/tui/component/error-component.tsx +92 -0
- package/src/cli/cmd/tui/component/logo.tsx +961 -0
- package/src/cli/cmd/tui/component/plugin-route-missing.tsx +14 -0
- package/src/cli/cmd/tui/component/prompt/autocomplete.tsx +684 -0
- package/src/cli/cmd/tui/component/prompt/cwd.ts +0 -0
- package/src/cli/cmd/tui/component/prompt/frecency.tsx +90 -0
- package/src/cli/cmd/tui/component/prompt/history.tsx +108 -0
- package/src/cli/cmd/tui/component/prompt/index.tsx +1812 -0
- package/src/cli/cmd/tui/component/prompt/part.ts +16 -0
- package/src/cli/cmd/tui/component/prompt/stash.tsx +101 -0
- package/src/cli/cmd/tui/component/spinner.tsx +24 -0
- package/src/cli/cmd/tui/component/starry-background.tsx +305 -0
- package/src/cli/cmd/tui/component/startup-loading.tsx +67 -0
- package/src/cli/cmd/tui/component/task-item.tsx +63 -0
- package/src/cli/cmd/tui/component/textarea-keybindings.ts +73 -0
- package/src/cli/cmd/tui/component/todo-item.tsx +32 -0
- package/src/cli/cmd/tui/config/cwd.ts +5 -0
- package/src/cli/cmd/tui/config/tui-migrate.ts +151 -0
- package/src/cli/cmd/tui/config/tui-schema.ts +38 -0
- package/src/cli/cmd/tui/config/tui.ts +219 -0
- package/src/cli/cmd/tui/context/args.tsx +16 -0
- package/src/cli/cmd/tui/context/directory.ts +15 -0
- package/src/cli/cmd/tui/context/event.ts +45 -0
- package/src/cli/cmd/tui/context/exit.tsx +65 -0
- package/src/cli/cmd/tui/context/helper.tsx +25 -0
- package/src/cli/cmd/tui/context/keybind.tsx +105 -0
- package/src/cli/cmd/tui/context/kv.tsx +76 -0
- package/src/cli/cmd/tui/context/language.tsx +91 -0
- package/src/cli/cmd/tui/context/local.tsx +455 -0
- package/src/cli/cmd/tui/context/plugin-keybinds.ts +41 -0
- package/src/cli/cmd/tui/context/project.tsx +109 -0
- package/src/cli/cmd/tui/context/prompt.tsx +18 -0
- package/src/cli/cmd/tui/context/route.tsx +61 -0
- package/src/cli/cmd/tui/context/sdk.tsx +150 -0
- package/src/cli/cmd/tui/context/sync.tsx +828 -0
- package/src/cli/cmd/tui/context/theme/aura.json +69 -0
- package/src/cli/cmd/tui/context/theme/ayu.json +80 -0
- package/src/cli/cmd/tui/context/theme/carbonfox.json +248 -0
- package/src/cli/cmd/tui/context/theme/catppuccin-frappe.json +230 -0
- package/src/cli/cmd/tui/context/theme/catppuccin-macchiato.json +230 -0
- package/src/cli/cmd/tui/context/theme/catppuccin.json +112 -0
- package/src/cli/cmd/tui/context/theme/cobalt2.json +225 -0
- package/src/cli/cmd/tui/context/theme/cursor.json +249 -0
- package/src/cli/cmd/tui/context/theme/dracula.json +219 -0
- package/src/cli/cmd/tui/context/theme/everforest.json +241 -0
- package/src/cli/cmd/tui/context/theme/flexoki.json +237 -0
- package/src/cli/cmd/tui/context/theme/github.json +233 -0
- package/src/cli/cmd/tui/context/theme/gruvbox.json +242 -0
- package/src/cli/cmd/tui/context/theme/kanagawa.json +77 -0
- package/src/cli/cmd/tui/context/theme/lucent-orng.json +234 -0
- package/src/cli/cmd/tui/context/theme/material.json +235 -0
- package/src/cli/cmd/tui/context/theme/matrix.json +77 -0
- package/src/cli/cmd/tui/context/theme/mercury.json +252 -0
- package/src/cli/cmd/tui/context/theme/monokai.json +221 -0
- package/src/cli/cmd/tui/context/theme/nightowl.json +221 -0
- package/src/cli/cmd/tui/context/theme/nord.json +223 -0
- package/src/cli/cmd/tui/context/theme/one-dark.json +84 -0
- package/src/cli/cmd/tui/context/theme/orng.json +249 -0
- package/src/cli/cmd/tui/context/theme/osaka-jade.json +93 -0
- package/src/cli/cmd/tui/context/theme/palenight.json +222 -0
- package/src/cli/cmd/tui/context/theme/rosepine.json +234 -0
- package/src/cli/cmd/tui/context/theme/solarized.json +223 -0
- package/src/cli/cmd/tui/context/theme/synthwave84.json +226 -0
- package/src/cli/cmd/tui/context/theme/tokyonight.json +243 -0
- package/src/cli/cmd/tui/context/theme/tulingcode.json +245 -0
- package/src/cli/cmd/tui/context/theme/vercel.json +245 -0
- package/src/cli/cmd/tui/context/theme/vesper.json +218 -0
- package/src/cli/cmd/tui/context/theme/zenburn.json +223 -0
- package/src/cli/cmd/tui/context/theme.tsx +1298 -0
- package/src/cli/cmd/tui/context/thinking.ts +48 -0
- package/src/cli/cmd/tui/context/tui-config.tsx +9 -0
- package/src/cli/cmd/tui/event.ts +56 -0
- package/src/cli/cmd/tui/feature-plugins/home/footer.tsx +93 -0
- package/src/cli/cmd/tui/feature-plugins/home/tips-view.tsx +193 -0
- package/src/cli/cmd/tui/feature-plugins/home/tips.tsx +54 -0
- package/src/cli/cmd/tui/feature-plugins/sidebar/context.tsx +114 -0
- package/src/cli/cmd/tui/feature-plugins/sidebar/cwd.tsx +45 -0
- package/src/cli/cmd/tui/feature-plugins/sidebar/files.tsx +62 -0
- package/src/cli/cmd/tui/feature-plugins/sidebar/footer.tsx +93 -0
- package/src/cli/cmd/tui/feature-plugins/sidebar/goal.tsx +84 -0
- package/src/cli/cmd/tui/feature-plugins/sidebar/instructions.tsx +54 -0
- package/src/cli/cmd/tui/feature-plugins/sidebar/lsp.tsx +66 -0
- package/src/cli/cmd/tui/feature-plugins/sidebar/mcp.tsx +98 -0
- package/src/cli/cmd/tui/feature-plugins/sidebar/task.tsx +95 -0
- package/src/cli/cmd/tui/feature-plugins/sidebar/todo.tsx +51 -0
- package/src/cli/cmd/tui/feature-plugins/sidebar/tps.ts +31 -0
- package/src/cli/cmd/tui/feature-plugins/system/plugins.tsx +274 -0
- package/src/cli/cmd/tui/i18n/en.ts +397 -0
- package/src/cli/cmd/tui/i18n/es.ts +433 -0
- package/src/cli/cmd/tui/i18n/fr.ts +440 -0
- package/src/cli/cmd/tui/i18n/ja.ts +392 -0
- package/src/cli/cmd/tui/i18n/locales.ts +82 -0
- package/src/cli/cmd/tui/i18n/ru.ts +452 -0
- package/src/cli/cmd/tui/i18n/zh.ts +390 -0
- package/src/cli/cmd/tui/i18n/zht.ts +360 -0
- package/src/cli/cmd/tui/layer.ts +6 -0
- package/src/cli/cmd/tui/plugin/api.tsx +402 -0
- package/src/cli/cmd/tui/plugin/index.ts +3 -0
- package/src/cli/cmd/tui/plugin/internal.ts +35 -0
- package/src/cli/cmd/tui/plugin/runtime.ts +1030 -0
- package/src/cli/cmd/tui/plugin/slots.tsx +60 -0
- package/src/cli/cmd/tui/routes/home.tsx +165 -0
- package/src/cli/cmd/tui/routes/session/dialog-fork-from-timeline.tsx +76 -0
- package/src/cli/cmd/tui/routes/session/dialog-message.tsx +116 -0
- package/src/cli/cmd/tui/routes/session/dialog-subagent.tsx +47 -0
- package/src/cli/cmd/tui/routes/session/dialog-timeline.tsx +47 -0
- package/src/cli/cmd/tui/routes/session/footer.tsx +91 -0
- package/src/cli/cmd/tui/routes/session/index.tsx +2532 -0
- package/src/cli/cmd/tui/routes/session/permission.tsx +691 -0
- package/src/cli/cmd/tui/routes/session/question.tsx +488 -0
- package/src/cli/cmd/tui/routes/session/sidebar.tsx +97 -0
- package/src/cli/cmd/tui/routes/session/subagent-footer.tsx +142 -0
- package/src/cli/cmd/tui/thread.ts +246 -0
- package/src/cli/cmd/tui/ui/dialog-alert.tsx +61 -0
- package/src/cli/cmd/tui/ui/dialog-confirm.tsx +95 -0
- package/src/cli/cmd/tui/ui/dialog-export-options.tsx +223 -0
- package/src/cli/cmd/tui/ui/dialog-help.tsx +42 -0
- package/src/cli/cmd/tui/ui/dialog-prompt.tsx +123 -0
- package/src/cli/cmd/tui/ui/dialog-select.tsx +452 -0
- package/src/cli/cmd/tui/ui/dialog.tsx +207 -0
- package/src/cli/cmd/tui/ui/link.tsx +28 -0
- package/src/cli/cmd/tui/ui/spinner.ts +378 -0
- package/src/cli/cmd/tui/ui/toast.tsx +102 -0
- package/src/cli/cmd/tui/util/clipboard.ts +203 -0
- package/src/cli/cmd/tui/util/editor.ts +35 -0
- package/src/cli/cmd/tui/util/image-protocol.ts +35 -0
- package/src/cli/cmd/tui/util/index.ts +6 -0
- package/src/cli/cmd/tui/util/model.ts +23 -0
- package/src/cli/cmd/tui/util/provider-origin.ts +7 -0
- package/src/cli/cmd/tui/util/revert-diff.ts +18 -0
- package/src/cli/cmd/tui/util/scroll.ts +23 -0
- package/src/cli/cmd/tui/util/selection.ts +23 -0
- package/src/cli/cmd/tui/util/signal.ts +41 -0
- package/src/cli/cmd/tui/util/sound.ts +154 -0
- package/src/cli/cmd/tui/util/system-locale.ts +209 -0
- package/src/cli/cmd/tui/util/terminal.ts +110 -0
- package/src/cli/cmd/tui/util/transcript.ts +112 -0
- package/src/cli/cmd/tui/util/vad.ts +229 -0
- package/src/cli/cmd/tui/util/voice.ts +360 -0
- package/src/cli/cmd/tui/win32.ts +130 -0
- package/src/cli/cmd/tui/worker.ts +104 -0
- package/src/cli/cmd/uninstall.ts +351 -0
- package/src/cli/cmd/upgrade.ts +79 -0
- package/src/cli/cmd/web.ts +81 -0
- package/src/cli/effect/prompt.ts +25 -0
- package/src/cli/error.ts +82 -0
- package/src/cli/heap.ts +59 -0
- package/src/cli/i18n.ts +15 -0
- package/src/cli/logo.ts +53 -0
- package/src/cli/network.ts +62 -0
- package/src/cli/ui.ts +133 -0
- package/src/cli/upgrade.ts +41 -0
- package/src/command/index.ts +276 -0
- package/src/command/template/initialize.txt +66 -0
- package/src/command/template/review.txt +101 -0
- package/src/config/agent.ts +197 -0
- package/src/config/command.ts +69 -0
- package/src/config/config.ts +1024 -0
- package/src/config/console-state.ts +16 -0
- package/src/config/entry-name.ts +16 -0
- package/src/config/error.ts +21 -0
- package/src/config/formatter.ts +17 -0
- package/src/config/history.ts +21 -0
- package/src/config/index.ts +16 -0
- package/src/config/keybinds.ts +127 -0
- package/src/config/layout.ts +10 -0
- package/src/config/lsp.ts +45 -0
- package/src/config/managed.ts +70 -0
- package/src/config/markdown.ts +97 -0
- package/src/config/mcp.ts +172 -0
- package/src/config/model-id.ts +14 -0
- package/src/config/parse.ts +44 -0
- package/src/config/paths.ts +73 -0
- package/src/config/permission.ts +76 -0
- package/src/config/plugin.ts +88 -0
- package/src/config/provider.ts +118 -0
- package/src/config/server.ts +20 -0
- package/src/config/skills.ts +16 -0
- package/src/config/variable.ts +90 -0
- package/src/control-plane/adaptors/index.ts +52 -0
- package/src/control-plane/adaptors/worktree.ts +47 -0
- package/src/control-plane/dev/debug-workspace-plugin.ts +73 -0
- package/src/control-plane/schema.ts +19 -0
- package/src/control-plane/sse.ts +66 -0
- package/src/control-plane/types.ts +34 -0
- package/src/control-plane/util.ts +37 -0
- package/src/control-plane/workspace-context.ts +26 -0
- package/src/control-plane/workspace.sql.ts +17 -0
- package/src/control-plane/workspace.ts +615 -0
- package/src/effect/app-runtime.ts +146 -0
- package/src/effect/bootstrap-runtime.ts +33 -0
- package/src/effect/bridge.ts +48 -0
- package/src/effect/cross-spawn-spawner.ts +514 -0
- package/src/effect/index.ts +5 -0
- package/src/effect/instance-ref.ts +11 -0
- package/src/effect/instance-registry.ts +12 -0
- package/src/effect/instance-state.ts +81 -0
- package/src/effect/logger.ts +73 -0
- package/src/effect/memo-map.ts +3 -0
- package/src/effect/observability.ts +107 -0
- package/src/effect/run-service.ts +52 -0
- package/src/effect/runner.ts +210 -0
- package/src/effect/runtime.ts +19 -0
- package/src/env/index.ts +37 -0
- package/src/file/ignore.ts +81 -0
- package/src/file/index.ts +664 -0
- package/src/file/protected.ts +59 -0
- package/src/file/ripgrep.ts +485 -0
- package/src/file/watcher.ts +163 -0
- package/src/flag/flag.ts +164 -0
- package/src/format/formatter.ts +403 -0
- package/src/format/index.ts +203 -0
- package/src/git/index.ts +260 -0
- package/src/global/index.ts +54 -0
- package/src/history/backfill.ts +162 -0
- package/src/history/extract.ts +67 -0
- package/src/history/fts-query.ts +15 -0
- package/src/history/fts.sql.ts +20 -0
- package/src/history/index.ts +10 -0
- package/src/history/resolve.ts +65 -0
- package/src/history/service.ts +258 -0
- package/src/history/writer.ts +112 -0
- package/src/id/id.ts +87 -0
- package/src/ide/index.ts +73 -0
- package/src/inbox/inbox-ref.ts +38 -0
- package/src/inbox/inbox.sql.ts +26 -0
- package/src/inbox/inbox.ts +223 -0
- package/src/inbox/index.ts +3 -0
- package/src/inbox/render.ts +40 -0
- package/src/index.ts +260 -0
- package/src/installation/index.ts +351 -0
- package/src/installation/version.ts +8 -0
- package/src/lsp/client.ts +249 -0
- package/src/lsp/diagnostic.ts +29 -0
- package/src/lsp/index.ts +3 -0
- package/src/lsp/language.ts +120 -0
- package/src/lsp/launch.ts +21 -0
- package/src/lsp/lsp.ts +519 -0
- package/src/lsp/server.ts +1956 -0
- package/src/mcp/auth.ts +144 -0
- package/src/mcp/index.ts +944 -0
- package/src/mcp/oauth-callback.ts +232 -0
- package/src/mcp/oauth-provider.ts +214 -0
- package/src/memory/fts-query.ts +37 -0
- package/src/memory/fts.sql.ts +19 -0
- package/src/memory/index.ts +1 -0
- package/src/memory/paths.ts +116 -0
- package/src/memory/reconcile.ts +144 -0
- package/src/memory/service.ts +144 -0
- package/src/metrics/client.ts +40 -0
- package/src/metrics/event.ts +43 -0
- package/src/metrics/index.ts +5 -0
- package/src/metrics/installation.ts +18 -0
- package/src/metrics/subscriber.ts +58 -0
- package/src/metrics/util.ts +9 -0
- package/src/node.ts +6 -0
- package/src/npm/config.ts +0 -0
- package/src/npm/index.ts +293 -0
- package/src/npmcli-config.d.ts +43 -0
- package/src/patch/index.ts +680 -0
- package/src/permission/arity.ts +163 -0
- package/src/permission/evaluate.ts +15 -0
- package/src/permission/index.ts +379 -0
- package/src/permission/schema.ts +17 -0
- package/src/plugin/checkpoint-splitover.ts +60 -0
- package/src/plugin/cloud-ai.ts +329 -0
- package/src/plugin/cloudflare.ts +76 -0
- package/src/plugin/codex.ts +607 -0
- package/src/plugin/github-copilot/copilot.ts +368 -0
- package/src/plugin/github-copilot/models.ts +153 -0
- package/src/plugin/index.ts +493 -0
- package/src/plugin/install.ts +439 -0
- package/src/plugin/loader.ts +216 -0
- package/src/plugin/matcher.ts +33 -0
- package/src/plugin/meta.ts +188 -0
- package/src/plugin/mimo-free.ts +153 -0
- package/src/plugin/mimo.ts +124 -0
- package/src/plugin/shared.ts +323 -0
- package/src/plugin/subagent-progress-checker.ts +147 -0
- package/src/project/bootstrap.ts +59 -0
- package/src/project/index.ts +2 -0
- package/src/project/instance.ts +190 -0
- package/src/project/project-id.ts +48 -0
- package/src/project/project.sql.ts +16 -0
- package/src/project/project.ts +501 -0
- package/src/project/schema.ts +15 -0
- package/src/project/vcs.ts +227 -0
- package/src/provider/auth.ts +234 -0
- package/src/provider/error.ts +216 -0
- package/src/provider/index.ts +5 -0
- package/src/provider/models.ts +180 -0
- package/src/provider/provider.ts +1782 -0
- package/src/provider/schema.ts +36 -0
- package/src/provider/sdk/copilot/README.md +5 -0
- package/src/provider/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts +170 -0
- package/src/provider/sdk/copilot/chat/get-response-metadata.ts +15 -0
- package/src/provider/sdk/copilot/chat/map-openai-compatible-finish-reason.ts +19 -0
- package/src/provider/sdk/copilot/chat/openai-compatible-api-types.ts +64 -0
- package/src/provider/sdk/copilot/chat/openai-compatible-chat-language-model.ts +815 -0
- package/src/provider/sdk/copilot/chat/openai-compatible-chat-options.ts +28 -0
- package/src/provider/sdk/copilot/chat/openai-compatible-metadata-extractor.ts +44 -0
- package/src/provider/sdk/copilot/chat/openai-compatible-prepare-tools.ts +83 -0
- package/src/provider/sdk/copilot/copilot-provider.ts +100 -0
- package/src/provider/sdk/copilot/index.ts +2 -0
- package/src/provider/sdk/copilot/openai-compatible-error.ts +27 -0
- package/src/provider/sdk/copilot/responses/convert-to-openai-responses-input.ts +335 -0
- package/src/provider/sdk/copilot/responses/map-openai-responses-finish-reason.ts +22 -0
- package/src/provider/sdk/copilot/responses/openai-config.ts +18 -0
- package/src/provider/sdk/copilot/responses/openai-error.ts +22 -0
- package/src/provider/sdk/copilot/responses/openai-responses-api-types.ts +214 -0
- package/src/provider/sdk/copilot/responses/openai-responses-language-model.ts +1770 -0
- package/src/provider/sdk/copilot/responses/openai-responses-prepare-tools.ts +173 -0
- package/src/provider/sdk/copilot/responses/openai-responses-settings.ts +1 -0
- package/src/provider/sdk/copilot/responses/tool/code-interpreter.ts +87 -0
- package/src/provider/sdk/copilot/responses/tool/file-search.ts +127 -0
- package/src/provider/sdk/copilot/responses/tool/image-generation.ts +114 -0
- package/src/provider/sdk/copilot/responses/tool/local-shell.ts +64 -0
- package/src/provider/sdk/copilot/responses/tool/web-search-preview.ts +103 -0
- package/src/provider/sdk/copilot/responses/tool/web-search.ts +102 -0
- package/src/provider/transform.ts +1322 -0
- package/src/pty/index.ts +364 -0
- package/src/pty/pty.bun.ts +26 -0
- package/src/pty/pty.node.ts +27 -0
- package/src/pty/pty.ts +25 -0
- package/src/pty/schema.ts +17 -0
- package/src/question/index.ts +252 -0
- package/src/question/schema.ts +17 -0
- package/src/server/adapter.bun.ts +40 -0
- package/src/server/adapter.node.ts +66 -0
- package/src/server/adapter.ts +21 -0
- package/src/server/error.ts +53 -0
- package/src/server/event.ts +7 -0
- package/src/server/fence.ts +81 -0
- package/src/server/mdns.ts +60 -0
- package/src/server/middleware.ts +92 -0
- package/src/server/projectors.ts +28 -0
- package/src/server/proxy.ts +171 -0
- package/src/server/routes/control/index.ts +160 -0
- package/src/server/routes/control/workspace.ts +203 -0
- package/src/server/routes/global.ts +287 -0
- package/src/server/routes/instance/bash-interactive.ts +82 -0
- package/src/server/routes/instance/config.ts +89 -0
- package/src/server/routes/instance/event.ts +88 -0
- package/src/server/routes/instance/experimental.ts +408 -0
- package/src/server/routes/instance/file.ts +190 -0
- package/src/server/routes/instance/httpapi/config.ts +51 -0
- package/src/server/routes/instance/httpapi/permission.ts +72 -0
- package/src/server/routes/instance/httpapi/project.ts +62 -0
- package/src/server/routes/instance/httpapi/provider.ts +142 -0
- package/src/server/routes/instance/httpapi/question.ts +121 -0
- package/src/server/routes/instance/httpapi/server.ts +136 -0
- package/src/server/routes/instance/index.ts +301 -0
- package/src/server/routes/instance/mcp.ts +260 -0
- package/src/server/routes/instance/middleware.ts +35 -0
- package/src/server/routes/instance/permission.ts +73 -0
- package/src/server/routes/instance/project.ts +122 -0
- package/src/server/routes/instance/provider.ts +158 -0
- package/src/server/routes/instance/pty.ts +247 -0
- package/src/server/routes/instance/question.ts +162 -0
- package/src/server/routes/instance/session.ts +1296 -0
- package/src/server/routes/instance/sync.ts +143 -0
- package/src/server/routes/instance/trace.ts +59 -0
- package/src/server/routes/instance/tui.ts +384 -0
- package/src/server/routes/instance/workflows.ts +72 -0
- package/src/server/routes/ui.ts +55 -0
- package/src/server/server.ts +136 -0
- package/src/server/workspace.ts +122 -0
- package/src/session/auto-dream.ts +123 -0
- package/src/session/boundary.ts +77 -0
- package/src/session/budgeted-read.ts +118 -0
- package/src/session/checkpoint-align.ts +29 -0
- package/src/session/checkpoint-context.ts +36 -0
- package/src/session/checkpoint-paths.ts +86 -0
- package/src/session/checkpoint-progress-reconcile.ts +111 -0
- package/src/session/checkpoint-retry.ts +192 -0
- package/src/session/checkpoint-templates.ts +114 -0
- package/src/session/checkpoint-validator.ts +259 -0
- package/src/session/checkpoint.ts +1478 -0
- package/src/session/classify.ts +92 -0
- package/src/session/claude-import.sql.ts +13 -0
- package/src/session/claude-import.ts +379 -0
- package/src/session/compaction.ts +543 -0
- package/src/session/goal.ts +232 -0
- package/src/session/index.ts +1 -0
- package/src/session/instruction.ts +276 -0
- package/src/session/last-message-info.ts +32 -0
- package/src/session/llm-request-prefix.ts +82 -0
- package/src/session/llm.ts +735 -0
- package/src/session/max-mode.ts +397 -0
- package/src/session/message-v2.ts +1136 -0
- package/src/session/message.ts +191 -0
- package/src/session/overflow.ts +53 -0
- package/src/session/prefix-capture-ref.ts +48 -0
- package/src/session/processor.ts +962 -0
- package/src/session/projectors.ts +137 -0
- package/src/session/prompt/anthropic.txt +154 -0
- package/src/session/prompt/beast.txt +155 -0
- package/src/session/prompt/build-switch.txt +5 -0
- package/src/session/prompt/codex.txt +79 -0
- package/src/session/prompt/compose.txt +115 -0
- package/src/session/prompt/copilot-gpt-5.txt +143 -0
- package/src/session/prompt/default.txt +151 -0
- package/src/session/prompt/gemini.txt +155 -0
- package/src/session/prompt/gpt.txt +107 -0
- package/src/session/prompt/kimi.txt +95 -0
- package/src/session/prompt/max-steps.txt +16 -0
- package/src/session/prompt/trinity.txt +97 -0
- package/src/session/prompt.ts +3355 -0
- package/src/session/prune.ts +481 -0
- package/src/session/retry.ts +166 -0
- package/src/session/revert.ts +161 -0
- package/src/session/run-state.ts +135 -0
- package/src/session/schema.ts +36 -0
- package/src/session/session.sql.ts +110 -0
- package/src/session/session.ts +908 -0
- package/src/session/status.ts +89 -0
- package/src/session/summary.ts +163 -0
- package/src/session/system.ts +86 -0
- package/src/session/todo.ts +77 -0
- package/src/share/index.ts +2 -0
- package/src/share/session.ts +57 -0
- package/src/share/share-next.ts +381 -0
- package/src/share/share.sql.ts +13 -0
- package/src/shell/shell.ts +110 -0
- package/src/skill/compose/.bundle/ask/SKILL.md +58 -0
- package/src/skill/compose/.bundle/brainstorm/SKILL.md +220 -0
- package/src/skill/compose/.bundle/brainstorm/scripts/frame-template.html +214 -0
- package/src/skill/compose/.bundle/brainstorm/scripts/helper.js +88 -0
- package/src/skill/compose/.bundle/brainstorm/scripts/server.cjs +354 -0
- package/src/skill/compose/.bundle/brainstorm/scripts/start-server.sh +148 -0
- package/src/skill/compose/.bundle/brainstorm/scripts/stop-server.sh +56 -0
- package/src/skill/compose/.bundle/brainstorm/spec-document-reviewer-prompt.md +50 -0
- package/src/skill/compose/.bundle/brainstorm/visual-companion.md +287 -0
- package/src/skill/compose/.bundle/debug/CREATION-LOG.md +119 -0
- package/src/skill/compose/.bundle/debug/SKILL.md +297 -0
- package/src/skill/compose/.bundle/debug/condition-based-waiting-example.ts +158 -0
- package/src/skill/compose/.bundle/debug/condition-based-waiting.md +115 -0
- package/src/skill/compose/.bundle/debug/defense-in-depth.md +122 -0
- package/src/skill/compose/.bundle/debug/find-polluter.sh +63 -0
- package/src/skill/compose/.bundle/debug/root-cause-tracing.md +169 -0
- package/src/skill/compose/.bundle/debug/test-academic.md +14 -0
- package/src/skill/compose/.bundle/debug/test-pressure-1.md +58 -0
- package/src/skill/compose/.bundle/debug/test-pressure-2.md +68 -0
- package/src/skill/compose/.bundle/debug/test-pressure-3.md +69 -0
- package/src/skill/compose/.bundle/execute/SKILL.md +71 -0
- package/src/skill/compose/.bundle/feedback/SKILL.md +214 -0
- package/src/skill/compose/.bundle/merge/SKILL.md +252 -0
- package/src/skill/compose/.bundle/new-skill/SKILL.md +656 -0
- package/src/skill/compose/.bundle/new-skill/anthropic-best-practices.md +1150 -0
- package/src/skill/compose/.bundle/new-skill/examples/CLAUDE_MD_TESTING.md +189 -0
- package/src/skill/compose/.bundle/new-skill/graphviz-conventions.dot +172 -0
- package/src/skill/compose/.bundle/new-skill/persuasion-principles.md +187 -0
- package/src/skill/compose/.bundle/new-skill/render-graphs.js +168 -0
- package/src/skill/compose/.bundle/new-skill/testing-skills-with-subagents.md +384 -0
- package/src/skill/compose/.bundle/parallel/SKILL.md +182 -0
- package/src/skill/compose/.bundle/plan/SKILL.md +161 -0
- package/src/skill/compose/.bundle/plan/plan-document-reviewer-prompt.md +50 -0
- package/src/skill/compose/.bundle/report/SKILL.md +180 -0
- package/src/skill/compose/.bundle/review/SKILL.md +104 -0
- package/src/skill/compose/.bundle/review/code-reviewer.md +171 -0
- package/src/skill/compose/.bundle/subagent/SKILL.md +344 -0
- package/src/skill/compose/.bundle/subagent/code-quality-reviewer-prompt.md +24 -0
- package/src/skill/compose/.bundle/subagent/implementer-prompt.md +126 -0
- package/src/skill/compose/.bundle/subagent/spec-reviewer-prompt.md +112 -0
- package/src/skill/compose/.bundle/tdd/SKILL.md +372 -0
- package/src/skill/compose/.bundle/tdd/testing-anti-patterns.md +299 -0
- package/src/skill/compose/.bundle/verify/SKILL.md +140 -0
- package/src/skill/compose/.bundle/worktree/SKILL.md +234 -0
- package/src/skill/compose/LICENSE-karpathy +28 -0
- package/src/skill/compose/LICENSE-superpowers +26 -0
- package/src/skill/compose/bundle.macro.ts +30 -0
- package/src/skill/compose/extract.ts +85 -0
- package/src/skill/discovery.ts +116 -0
- package/src/skill/index.ts +311 -0
- package/src/snapshot/index.ts +777 -0
- package/src/sql.d.ts +4 -0
- package/src/storage/db.bun.ts +8 -0
- package/src/storage/db.node.ts +8 -0
- package/src/storage/db.ts +172 -0
- package/src/storage/index.ts +26 -0
- package/src/storage/json-migration.ts +426 -0
- package/src/storage/schema.sql.ts +10 -0
- package/src/storage/schema.ts +7 -0
- package/src/storage/storage.ts +331 -0
- package/src/sync/README.md +179 -0
- package/src/sync/event.sql.ts +16 -0
- package/src/sync/index.ts +278 -0
- package/src/sync/schema.ts +14 -0
- package/src/task/events.ts +28 -0
- package/src/task/gate-state.ts +54 -0
- package/src/task/gate.ts +116 -0
- package/src/task/index.ts +1 -0
- package/src/task/registry.ts +387 -0
- package/src/task/schema.ts +43 -0
- package/src/task/task.sql.ts +50 -0
- package/src/team/events.ts +22 -0
- package/src/team/index.ts +113 -0
- package/src/team/schema.ts +31 -0
- package/src/temporary.ts +33 -0
- package/src/tool/actor.shell.txt +72 -0
- package/src/tool/actor.ts +803 -0
- package/src/tool/actor.txt +103 -0
- package/src/tool/apply_patch.ts +308 -0
- package/src/tool/apply_patch.txt +33 -0
- package/src/tool/bash-interactive.ts +183 -0
- package/src/tool/bash.ts +696 -0
- package/src/tool/bash.txt +123 -0
- package/src/tool/change-directory.ts +91 -0
- package/src/tool/codesearch.ts +63 -0
- package/src/tool/codesearch.txt +12 -0
- package/src/tool/edit.ts +685 -0
- package/src/tool/edit.txt +10 -0
- package/src/tool/external-directory.ts +132 -0
- package/src/tool/glob.ts +100 -0
- package/src/tool/glob.txt +6 -0
- package/src/tool/grep.ts +145 -0
- package/src/tool/grep.txt +8 -0
- package/src/tool/history.ts +146 -0
- package/src/tool/history.txt +17 -0
- package/src/tool/index.ts +4 -0
- package/src/tool/invalid.ts +20 -0
- package/src/tool/invocation-style.ts +17 -0
- package/src/tool/lsp.ts +91 -0
- package/src/tool/lsp.txt +19 -0
- package/src/tool/mcp-exa.ts +78 -0
- package/src/tool/memory-path-guard.ts +162 -0
- package/src/tool/memory.ts +81 -0
- package/src/tool/memory.txt +69 -0
- package/src/tool/multiedit.ts +61 -0
- package/src/tool/multiedit.txt +41 -0
- package/src/tool/plan-enter.txt +14 -0
- package/src/tool/plan-exit.txt +13 -0
- package/src/tool/plan.ts +90 -0
- package/src/tool/question.ts +67 -0
- package/src/tool/question.txt +10 -0
- package/src/tool/read.ts +327 -0
- package/src/tool/read.txt +14 -0
- package/src/tool/registry.ts +413 -0
- package/src/tool/schema.ts +17 -0
- package/src/tool/session-cwd.ts +35 -0
- package/src/tool/shell-tokenize.ts +346 -0
- package/src/tool/shell-wrap.ts +190 -0
- package/src/tool/skill.ts +76 -0
- package/src/tool/skill.txt +5 -0
- package/src/tool/task.shell.txt +57 -0
- package/src/tool/task.ts +456 -0
- package/src/tool/task.txt +56 -0
- package/src/tool/tool.ts +153 -0
- package/src/tool/truncate.ts +201 -0
- package/src/tool/truncation-dir.ts +4 -0
- package/src/tool/webfetch.ts +199 -0
- package/src/tool/webfetch.txt +13 -0
- package/src/tool/websearch/index.ts +104 -0
- package/src/tool/websearch/mimo.ts +118 -0
- package/src/tool/websearch/websearch.txt +14 -0
- package/src/tool/workflow.ts +164 -0
- package/src/tool/workflow.txt +25 -0
- package/src/tool/write.ts +88 -0
- package/src/tool/write.txt +9 -0
- package/src/util/abort.ts +35 -0
- package/src/util/archive.ts +15 -0
- package/src/util/color.ts +17 -0
- package/src/util/data-url.ts +9 -0
- package/src/util/defer.ts +10 -0
- package/src/util/effect-http-client.ts +11 -0
- package/src/util/effect-zod.ts +367 -0
- package/src/util/error.ts +78 -0
- package/src/util/filesystem.ts +243 -0
- package/src/util/fn.ts +21 -0
- package/src/util/format.ts +20 -0
- package/src/util/iife.ts +3 -0
- package/src/util/index.ts +12 -0
- package/src/util/keybind.ts +101 -0
- package/src/util/lazy.ts +18 -0
- package/src/util/local-context.ts +23 -0
- package/src/util/locale.ts +79 -0
- package/src/util/lock.ts +96 -0
- package/src/util/log.ts +197 -0
- package/src/util/media.ts +26 -0
- package/src/util/mimo-process.ts +24 -0
- package/src/util/network.ts +9 -0
- package/src/util/process.ts +174 -0
- package/src/util/queue.ts +32 -0
- package/src/util/record.ts +3 -0
- package/src/util/rpc.ts +64 -0
- package/src/util/schema.ts +53 -0
- package/src/util/scrap.ts +10 -0
- package/src/util/signal.ts +12 -0
- package/src/util/timeout.ts +14 -0
- package/src/util/token.ts +5 -0
- package/src/util/update-schema.ts +13 -0
- package/src/util/which.ts +14 -0
- package/src/util/wildcard.ts +57 -0
- package/src/workflow/builtin/deep-research.js +391 -0
- package/src/workflow/builtin.ts +54 -0
- package/src/workflow/events.ts +72 -0
- package/src/workflow/meta.ts +335 -0
- package/src/workflow/persistence.ts +312 -0
- package/src/workflow/resolve.ts +45 -0
- package/src/workflow/runtime-ref.ts +18 -0
- package/src/workflow/runtime.ts +1234 -0
- package/src/workflow/sandbox.ts +280 -0
- package/src/workflow/workflow.sql.ts +31 -0
- package/src/workflow/workspace.ts +69 -0
- package/src/worktree/index.ts +614 -0
- package/sst-env.d.ts +10 -0
- package/test/AGENTS.md +133 -0
- package/test/account/repo.test.ts +352 -0
- package/test/account/service.test.ts +456 -0
- package/test/acp/agent-interface.test.ts +51 -0
- package/test/acp/event-subscription.test.ts +725 -0
- package/test/actor/cancel-cascade.test.ts +432 -0
- package/test/actor/no-completion-listener.test.ts +41 -0
- package/test/actor/poststop-progress-write-permission.repro.test.ts +414 -0
- package/test/actor/registry-render.test.ts +113 -0
- package/test/actor/registry-status.test.ts +111 -0
- package/test/actor/registry.test.ts +619 -0
- package/test/actor/return-header.test.ts +40 -0
- package/test/actor/spawn-lifecycle.test.ts +346 -0
- package/test/actor/spawn-no-deadlock.test.ts +340 -0
- package/test/actor/spawn-notification.test.ts +393 -0
- package/test/actor/spawn-task-autostart.test.ts +530 -0
- package/test/actor/spawn.test.ts +1072 -0
- package/test/actor/status-event-payload.test.ts +132 -0
- package/test/actor/terminology.test.ts +39 -0
- package/test/actor/turn.test.ts +125 -0
- package/test/actor/waiter.test.ts +246 -0
- package/test/agent/agent.test.ts +874 -0
- package/test/agent/allowlist.test.ts +45 -0
- package/test/auth/auth.test.ts +86 -0
- package/test/bus/bus-effect.test.ts +162 -0
- package/test/bus/bus-integration.test.ts +87 -0
- package/test/bus/bus.test.ts +219 -0
- package/test/cli/account.test.ts +26 -0
- package/test/cli/cmd/tui/prompt-part.test.ts +47 -0
- package/test/cli/error.test.ts +18 -0
- package/test/cli/github-action.test.ts +198 -0
- package/test/cli/github-remote.test.ts +80 -0
- package/test/cli/import.test.ts +54 -0
- package/test/cli/plugin-auth-picker.test.ts +120 -0
- package/test/cli/run-completion.test.ts +131 -0
- package/test/cli/tui/keybind-plugin.test.ts +90 -0
- package/test/cli/tui/plugin-add.test.ts +111 -0
- package/test/cli/tui/plugin-install.test.ts +87 -0
- package/test/cli/tui/plugin-lifecycle.test.ts +224 -0
- package/test/cli/tui/plugin-loader-entrypoint.test.ts +484 -0
- package/test/cli/tui/plugin-loader-pure.test.ts +71 -0
- package/test/cli/tui/plugin-loader.test.ts +816 -0
- package/test/cli/tui/plugin-toggle.test.ts +157 -0
- package/test/cli/tui/revert-diff.test.ts +35 -0
- package/test/cli/tui/route-agent-id.test.ts +26 -0
- package/test/cli/tui/sidebar-tps.test.ts +63 -0
- package/test/cli/tui/slot-replace.test.tsx +47 -0
- package/test/cli/tui/sync-bucket.test.ts +29 -0
- package/test/cli/tui/theme-store.test.ts +51 -0
- package/test/cli/tui/thread.test.ts +121 -0
- package/test/cli/tui/transcript.test.ts +426 -0
- package/test/cli/tui/use-event.test.tsx +175 -0
- package/test/cli/tui/voice.test.ts +269 -0
- package/test/command/deep-research-command.test.ts +16 -0
- package/test/config/agent-color.test.ts +77 -0
- package/test/config/checkpoint-fork.test.ts +21 -0
- package/test/config/config.test.ts +2577 -0
- package/test/config/fixtures/empty-frontmatter.md +4 -0
- package/test/config/fixtures/frontmatter.md +28 -0
- package/test/config/fixtures/markdown-header.md +11 -0
- package/test/config/fixtures/no-frontmatter.md +1 -0
- package/test/config/fixtures/weird-model-id.md +13 -0
- package/test/config/lsp.test.ts +87 -0
- package/test/config/markdown.test.ts +228 -0
- package/test/config/plugin.test.ts +0 -0
- package/test/config/tui.test.ts +627 -0
- package/test/control-plane/adaptors.test.ts +71 -0
- package/test/control-plane/sse.test.ts +56 -0
- package/test/effect/app-runtime-logger.test.ts +92 -0
- package/test/effect/cross-spawn-spawner.test.ts +411 -0
- package/test/effect/instance-state.test.ts +482 -0
- package/test/effect/observability.test.ts +46 -0
- package/test/effect/run-service.test.ts +46 -0
- package/test/effect/runner-warn-log.test.ts +111 -0
- package/test/effect/runner.test.ts +494 -0
- package/test/fake/provider.ts +90 -0
- package/test/file/fsmonitor.test.ts +68 -0
- package/test/file/ignore.test.ts +10 -0
- package/test/file/index.test.ts +956 -0
- package/test/file/path-traversal.test.ts +204 -0
- package/test/file/ripgrep.test.ts +214 -0
- package/test/file/watcher.test.ts +249 -0
- package/test/filesystem/filesystem.test.ts +319 -0
- package/test/fixture/db.ts +11 -0
- package/test/fixture/fixture.test.ts +58 -0
- package/test/fixture/fixture.ts +190 -0
- package/test/fixture/flock-worker.ts +72 -0
- package/test/fixture/lsp/fake-lsp-server.js +75 -0
- package/test/fixture/plug-worker.ts +93 -0
- package/test/fixture/plugin-meta-worker.ts +19 -0
- package/test/fixture/skills/agents-sdk/SKILL.md +152 -0
- package/test/fixture/skills/agents-sdk/references/callable.md +92 -0
- package/test/fixture/skills/cloudflare/SKILL.md +211 -0
- package/test/fixture/skills/index.json +6 -0
- package/test/fixture/tui-plugin.ts +328 -0
- package/test/fixture/tui-runtime.ts +31 -0
- package/test/format/format.test.ts +244 -0
- package/test/git/git.test.ts +128 -0
- package/test/global/fixture/global-paths-worker.ts +17 -0
- package/test/global/mimocode-home.test.ts +143 -0
- package/test/history/backfill.test.ts +149 -0
- package/test/history/extract.test.ts +106 -0
- package/test/history/fts-query.test.ts +30 -0
- package/test/history/resolve.test.ts +130 -0
- package/test/history/service.test.ts +210 -0
- package/test/history/writer.test.ts +163 -0
- package/test/ide/ide.test.ts +82 -0
- package/test/inbox/drain-in-loop.test.ts +230 -0
- package/test/inbox/fork-agent-compat.test.ts +387 -0
- package/test/inbox/gc-on-init.test.ts +167 -0
- package/test/inbox/send-no-block.test.ts +120 -0
- package/test/inbox/sender-cancel-independence.test.ts +160 -0
- package/test/inbox/wake-matrix.test.ts +141 -0
- package/test/installation/installation.test.ts +226 -0
- package/test/keybind.test.ts +421 -0
- package/test/lib/effect.ts +53 -0
- package/test/lib/filesystem.ts +10 -0
- package/test/lib/llm-server.ts +770 -0
- package/test/lib/scripted-llm-server.ts +245 -0
- package/test/lsp/client.test.ts +98 -0
- package/test/lsp/index.test.ts +109 -0
- package/test/lsp/launch.test.ts +22 -0
- package/test/lsp/lifecycle.test.ts +184 -0
- package/test/mcp/headers.test.ts +178 -0
- package/test/mcp/lifecycle.test.ts +824 -0
- package/test/mcp/oauth-auto-connect.test.ts +281 -0
- package/test/mcp/oauth-browser.test.ts +268 -0
- package/test/mcp/oauth-callback.test.ts +34 -0
- package/test/memory/abort-leak-webfetch.ts +49 -0
- package/test/memory/abort-leak.test.ts +127 -0
- package/test/memory/cc-frontmatter.test.ts +85 -0
- package/test/memory/cc-paths.test.ts +60 -0
- package/test/memory/cc-reconcile.test.ts +239 -0
- package/test/memory/cc-search.test.ts +151 -0
- package/test/memory/fts-query.test.ts +48 -0
- package/test/memory/fts-rowid-stability.test.ts +271 -0
- package/test/memory/paths.test.ts +210 -0
- package/test/memory/reconcile.test.ts +115 -0
- package/test/memory/service.test.ts +169 -0
- package/test/npm.test.ts +18 -0
- package/test/patch/patch.test.ts +348 -0
- package/test/permission/abort.test.ts +116 -0
- package/test/permission/arity.test.ts +33 -0
- package/test/permission/disabled.test.ts +51 -0
- package/test/permission/next.test.ts +1080 -0
- package/test/permission/non-interactive.test.ts +55 -0
- package/test/permission-task.test.ts +326 -0
- package/test/plugin/actor-hooks.test.ts +1471 -0
- package/test/plugin/auth-override.test.ts +79 -0
- package/test/plugin/checkpoint-splitover.test.ts +434 -0
- package/test/plugin/cloudflare.test.ts +68 -0
- package/test/plugin/codex.test.ts +123 -0
- package/test/plugin/github-copilot-models.test.ts +163 -0
- package/test/plugin/install-concurrency.test.ts +140 -0
- package/test/plugin/install.test.ts +570 -0
- package/test/plugin/loader-shared.test.ts +1169 -0
- package/test/plugin/matcher.test.ts +97 -0
- package/test/plugin/meta.test.ts +137 -0
- package/test/plugin/mimo.test.ts +257 -0
- package/test/plugin/shared.test.ts +88 -0
- package/test/plugin/subagent-progress-checker.test.ts +227 -0
- package/test/plugin/trigger.test.ts +116 -0
- package/test/plugin/workspace-adaptor.test.ts +109 -0
- package/test/preload.ts +102 -0
- package/test/project/migrate-global.test.ts +150 -0
- package/test/project/project-id.test.ts +64 -0
- package/test/project/project.test.ts +481 -0
- package/test/project/vcs.test.ts +286 -0
- package/test/project/worktree-remove.test.ts +126 -0
- package/test/project/worktree.test.ts +214 -0
- package/test/provider/amazon-bedrock.test.ts +462 -0
- package/test/provider/copilot/convert-to-copilot-messages.test.ts +523 -0
- package/test/provider/copilot/copilot-chat-model.test.ts +592 -0
- package/test/provider/error.test.ts +160 -0
- package/test/provider/gitlab-duo.test.ts +413 -0
- package/test/provider/model-groups.test.ts +389 -0
- package/test/provider/provider-chunk-timeout.test.ts +23 -0
- package/test/provider/provider.test.ts +2648 -0
- package/test/provider/transform.test.ts +3379 -0
- package/test/pty/pty-output-isolation.test.ts +146 -0
- package/test/pty/pty-session.test.ts +102 -0
- package/test/pty/pty-shell.test.ts +69 -0
- package/test/question/question.test.ts +464 -0
- package/test/server/global-session-list.test.ts +105 -0
- package/test/server/project-init-git.test.ts +122 -0
- package/test/server/session-actions.test.ts +49 -0
- package/test/server/session-list.test.ts +110 -0
- package/test/server/session-messages.test.ts +220 -0
- package/test/server/session-prompt-busy.test.ts +146 -0
- package/test/server/session-select.test.ts +100 -0
- package/test/server/session-task-route.test.ts +165 -0
- package/test/server/summarize-route-main-slice.test.ts +99 -0
- package/test/server/trace-attributes.test.ts +76 -0
- package/test/server/workflows-route.test.ts +279 -0
- package/test/session/bootstrap-skip-system.test.ts +121 -0
- package/test/session/boundary.test.ts +33 -0
- package/test/session/budgeted-read.test.ts +74 -0
- package/test/session/checkpoint-align.test.ts +58 -0
- package/test/session/checkpoint-boundary.test.ts +186 -0
- package/test/session/checkpoint-child-session.test.ts +508 -0
- package/test/session/checkpoint-context.test.ts +141 -0
- package/test/session/checkpoint-drain.test.ts +188 -0
- package/test/session/checkpoint-extract-titles.test.ts +58 -0
- package/test/session/checkpoint-fork-mode.test.ts +576 -0
- package/test/session/checkpoint-main-slice.test.ts +259 -0
- package/test/session/checkpoint-paths.test.ts +78 -0
- package/test/session/checkpoint-permission.test.ts +136 -0
- package/test/session/checkpoint-progress-reconcile.test.ts +219 -0
- package/test/session/checkpoint-rebuild-unify.test.ts +143 -0
- package/test/session/checkpoint-rebuild-v3.test.ts +248 -0
- package/test/session/checkpoint-render-verify.test.ts +512 -0
- package/test/session/checkpoint-retry.test.ts +150 -0
- package/test/session/checkpoint-splitover-integration.test.ts +533 -0
- package/test/session/checkpoint-templates.test.ts +51 -0
- package/test/session/checkpoint-thresholds.test.ts +120 -0
- package/test/session/checkpoint-validator.test.ts +189 -0
- package/test/session/classify-integration.test.ts +476 -0
- package/test/session/classify.test.ts +335 -0
- package/test/session/compaction-agent-scope.test.ts +164 -0
- package/test/session/context-inheritance.test.ts +46 -0
- package/test/session/fork-prefix-invariant.test.ts +116 -0
- package/test/session/goal.test.ts +106 -0
- package/test/session/instruction.test.ts +387 -0
- package/test/session/invalid-output-continuation.test.ts +150 -0
- package/test/session/last-message-info.test.ts +47 -0
- package/test/session/length-tool-safety.test.ts +121 -0
- package/test/session/llm-request-prefix.test.ts +197 -0
- package/test/session/llm-retry.test.ts +59 -0
- package/test/session/llm-system-prompt.test.ts +479 -0
- package/test/session/llm.test.ts +1272 -0
- package/test/session/main-lifecycle.test.ts +51 -0
- package/test/session/main-runloop-history-invariant.test.ts +182 -0
- package/test/session/max-mode-econnreset.test.ts +229 -0
- package/test/session/max-mode.test.ts +54 -0
- package/test/session/message-v2-filter.test.ts +197 -0
- package/test/session/message-v2.test.ts +1119 -0
- package/test/session/messages-default-main.test.ts +105 -0
- package/test/session/messages-pagination.test.ts +888 -0
- package/test/session/overflow.test.ts +576 -0
- package/test/session/processor-effect.test.ts +853 -0
- package/test/session/prompt-effect.test.ts +1574 -0
- package/test/session/prompt-rebuild-loop.test.ts +108 -0
- package/test/session/prompt-rebuild-reset.test.ts +67 -0
- package/test/session/prompt-sweep.test.ts +145 -0
- package/test/session/prompt-task-gate.test.ts +127 -0
- package/test/session/prompt.test.ts +703 -0
- package/test/session/prune-main-slice.test.ts +272 -0
- package/test/session/prune-skip-system.test.ts +346 -0
- package/test/session/prune.test.ts +419 -0
- package/test/session/rebuild-microcompact.test.ts +318 -0
- package/test/session/recall-reminder.test.ts +37 -0
- package/test/session/retry.test.ts +410 -0
- package/test/session/revert-compact.test.ts +639 -0
- package/test/session/run-state-tuple-key.test.ts +152 -0
- package/test/session/session-create-registers-main.test.ts +70 -0
- package/test/session/session.test.ts +181 -0
- package/test/session/snapshot-tool-race.test.ts +301 -0
- package/test/session/structured-output-integration.test.ts +264 -0
- package/test/session/structured-output-retry.test.ts +127 -0
- package/test/session/structured-output.test.ts +397 -0
- package/test/session/summary-main-slice.test.ts +170 -0
- package/test/session/system.test.ts +72 -0
- package/test/share/share-next.test.ts +332 -0
- package/test/shell/shell.test.ts +73 -0
- package/test/skill/compose-review.test.ts +141 -0
- package/test/skill/discovery.test.ts +116 -0
- package/test/skill/skill.test.ts +465 -0
- package/test/snapshot/snapshot.test.ts +1531 -0
- package/test/storage/db.test.ts +16 -0
- package/test/storage/json-migration.test.ts +831 -0
- package/test/storage/storage.test.ts +293 -0
- package/test/sync/index.test.ts +237 -0
- package/test/task/gate-state.test.ts +66 -0
- package/test/task/gate.test.ts +167 -0
- package/test/task/registry.test.ts +152 -0
- package/test/task/state-machine.test.ts +292 -0
- package/test/team/migrate-to-inbox.test.ts +124 -0
- package/test/team/team.test.ts +75 -0
- package/test/tool/__snapshots__/tool.test.ts.snap +9 -0
- package/test/tool/actor-cancel.test.ts +206 -0
- package/test/tool/actor-recover.test.ts +50 -0
- package/test/tool/actor-send.test.ts +200 -0
- package/test/tool/actor-status.test.ts +296 -0
- package/test/tool/actor-wait.test.ts +193 -0
- package/test/tool/actor.shell.test.ts +250 -0
- package/test/tool/actor.test.ts +748 -0
- package/test/tool/apply_patch.test.ts +626 -0
- package/test/tool/bash.test.ts +1195 -0
- package/test/tool/describe-workflow.test.ts +12 -0
- package/test/tool/edit.test.ts +691 -0
- package/test/tool/external-directory.test.ts +207 -0
- package/test/tool/fixtures/large-image.png +0 -0
- package/test/tool/fixtures/models-api.json +65179 -0
- package/test/tool/glob.test.ts +81 -0
- package/test/tool/grep.test.ts +114 -0
- package/test/tool/history.test.ts +144 -0
- package/test/tool/invocation-style.test.ts +30 -0
- package/test/tool/memory-edit-ask-skip.test.ts +62 -0
- package/test/tool/memory-path-guard.test.ts +594 -0
- package/test/tool/memory.test.ts +71 -0
- package/test/tool/question.test.ts +167 -0
- package/test/tool/read.test.ts +483 -0
- package/test/tool/registry-invocation-style.test.ts +121 -0
- package/test/tool/registry.test.ts +164 -0
- package/test/tool/shell-tokenize.test.ts +273 -0
- package/test/tool/shell-wrap-missing-script.test.ts +128 -0
- package/test/tool/shell-wrap.test.ts +257 -0
- package/test/tool/skill.test.ts +99 -0
- package/test/tool/task-recover.test.ts +36 -0
- package/test/tool/task.shell.test.ts +234 -0
- package/test/tool/task.test.ts +296 -0
- package/test/tool/tool-def-shell-shape.test.ts +23 -0
- package/test/tool/tool-define.test.ts +59 -0
- package/test/tool/truncation.test.ts +253 -0
- package/test/tool/webfetch.test.ts +103 -0
- package/test/tool/whitelist.test.ts +373 -0
- package/test/tool/write.test.ts +244 -0
- package/test/util/data-url.test.ts +14 -0
- package/test/util/effect-zod.test.ts +869 -0
- package/test/util/error.test.ts +38 -0
- package/test/util/filesystem.test.ts +656 -0
- package/test/util/format.test.ts +59 -0
- package/test/util/glob.test.ts +164 -0
- package/test/util/iife.test.ts +36 -0
- package/test/util/lazy.test.ts +50 -0
- package/test/util/lock.test.ts +72 -0
- package/test/util/log.test.ts +44 -0
- package/test/util/module.test.ts +59 -0
- package/test/util/process.test.ts +128 -0
- package/test/util/timeout.test.ts +21 -0
- package/test/util/which.test.ts +100 -0
- package/test/util/wildcard.test.ts +90 -0
- package/test/workflow/builtin.test.ts +22 -0
- package/test/workflow/deep-research-cluster.test.ts +47 -0
- package/test/workflow/lib.ts +243 -0
- package/test/workflow/meta.test.ts +142 -0
- package/test/workflow/model-routing.test.ts +68 -0
- package/test/workflow/persistence.test.ts +229 -0
- package/test/workflow/resolve.test.ts +37 -0
- package/test/workflow/runtime-nested.test.ts +419 -0
- package/test/workflow/runtime-worktree.test.ts +261 -0
- package/test/workflow/runtime.test.ts +1078 -0
- package/test/workflow/sandbox.test.ts +259 -0
- package/test/workflow/tool.test.ts +473 -0
- package/test/workflow/verify-wow.test.ts +144 -0
- package/test/workflow/workspace.test.ts +88 -0
- package/test/workspace/workspace-restore.test.ts +281 -0
- package/test/worktree/index.test.ts +30 -0
- package/tsconfig.json +24 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
You are the checkpoint writer subagent for a session that has crossed a token threshold. Your job is to update <CHECKPOINT_PATH> in-place to reflect the conversation up to this checkpoint, and (when appropriate) update <MEMORY_PATH> with project-level knowledge that has emerged.
|
|
2
|
+
|
|
3
|
+
PATH DISCIPLINE:
|
|
4
|
+
|
|
5
|
+
Only reference paths from the CHECKPOINT_PATH / MEMORY_PATH / TASK_MEM_DIR table at the top of your prompt. Do NOT reference paths that appear in conversation history but are not in this table — those may be stale references from prior sessions or copy-paste residue from other harness runs.
|
|
6
|
+
|
|
7
|
+
Available paths:
|
|
8
|
+
CHECKPOINT_PATH = the session's checkpoint.md (11 sections, in-place edit)
|
|
9
|
+
MEMORY_PATH = the project's MEMORY.md (4 sections, in-place edit)
|
|
10
|
+
TASK_MEM_DIR = directory where subagents write their own per-task progress.md files (you READ these to integrate, never write them)
|
|
11
|
+
|
|
12
|
+
CHECKPOINT_PATH structure (11 sections, all required to exist; content may be "(none)"):
|
|
13
|
+
## §1 Active intent - verbatim user request, block-quoted
|
|
14
|
+
## §2 Next concrete action - concrete next step, with verbatim quote when possible
|
|
15
|
+
## §3 Directives (this session) - session-specific working style only
|
|
16
|
+
## §4 Task tree - source of truth = task tool DB. Per task: 🔵 open / 🔄 in_progress / 🟡 blocked / ✅ done / ❌ abandoned. Indent sub-tasks two spaces. Append `(progress: tasks/<id>/progress.md, last-reconciled-written-at: <n>)` for any task whose subagent-written progress.md you've reconciled (from the SUBAGENT PROGRESS block).
|
|
17
|
+
## §5 Current work - what was being done before checkpoint
|
|
18
|
+
## §6 Files and code sections - files actively read/edited with one-line purpose
|
|
19
|
+
## §7 Discovered knowledge (cross-task) - cross-task facts (candidates for MEMORY.md promotion)
|
|
20
|
+
## §8 Errors and fixes - issues encountered and how resolved
|
|
21
|
+
## §9 Live resources - runtime state (branch, processes, etc.)
|
|
22
|
+
## §10 Design decisions and discussion outcomes - decisions reached through discussion that produced no immediate code/file artifact; promote to MEMORY.md ## Architecture decisions when proven cross-session-durable
|
|
23
|
+
## §11 Open notes - writer-curated catch-all for orphan content (quotes, unresolved questions, micro-observations); prefer empty when in doubt — most checkpoints have nothing here
|
|
24
|
+
|
|
25
|
+
MEMORY_PATH structure (4 sections):
|
|
26
|
+
## Project context - what is this project, its goal
|
|
27
|
+
## Rules - user-stated hard constraints
|
|
28
|
+
## Architecture decisions - major design choices with rationale
|
|
29
|
+
## Discovered durable knowledge - facts that survive across sessions
|
|
30
|
+
|
|
31
|
+
PROCEDURE:
|
|
32
|
+
|
|
33
|
+
Turn 1 - Read all sources in parallel:
|
|
34
|
+
Read CHECKPOINT_PATH
|
|
35
|
+
Read MEMORY_PATH
|
|
36
|
+
Read NOTES_PATH (file may not exist for v8.1-era sessions; treat as empty if so)
|
|
37
|
+
(also Read any spillover files referenced in either main file's index lines)
|
|
38
|
+
|
|
39
|
+
Turn 2a - Reconcile pass (read sources, decide migrations, then plan Edits):
|
|
40
|
+
|
|
41
|
+
For content gathered from BOTH the main session conversation tail AND the entries in NOTES_PATH:
|
|
42
|
+
- Working-style preference / directive → §3 (session) or MEMORY.md ## Rules (project-durable)
|
|
43
|
+
Examples: "always use snake_case for fields"; "no try/catch — early-return"; "prefer functional array methods over for-loops"
|
|
44
|
+
- Cross-task transferable fact → §7 (session candidate) or MEMORY.md ## Discovered (project-durable)
|
|
45
|
+
Examples: "left-recursive grammars need Pratt parsing"; "Bun's Read has no native tail-N"; "tool X errors on input Y because of Z"; "architectural invariant: A implies B"
|
|
46
|
+
- Bug + fix → §8 Errors and fixes
|
|
47
|
+
Examples: "X crashed at line N because Y; fixed by Z"
|
|
48
|
+
- Design decision / discussion outcome → §10 Design decisions
|
|
49
|
+
Examples: "decided to use SSA over three-address form because…"; "rejected closure conversion for v0.1 because…"
|
|
50
|
+
- Code/file ops → §6 Files and code sections
|
|
51
|
+
Examples: "src/lexer.ts is the source of truth for token kinds"; "passes/cse.ts implements intra-block GVN"
|
|
52
|
+
- Quote, unresolved question, side observation → §11 Open notes
|
|
53
|
+
Examples: user-quoted reactions; deferred-to-v0.2 questions; "this reminds me of project X"
|
|
54
|
+
- EXACT-FORM CONSTRAINT LITERAL (the user gave a precise value the agent must reproduce later) → §3 Directives (session) or MEMORY.md ## Rules, COPIED VERBATIM, never paraphrased.
|
|
55
|
+
This covers: connection strings / DSNs, ports, hostnames, env var values, API tokens/keys, file paths, full command lines + their flags, IDs, seeds, version pins.
|
|
56
|
+
Examples: `MC_DB_DSN=postgres://mc_ro@host:5433/exp_2026`; `--seed 2718281 --shard 1/3`; `/data/runs/2026-06-09/.../output.tsv`; `HF_TOKEN=hf_xxx`.
|
|
57
|
+
Rule: preserve the literal byte-for-byte (backticks, punctuation, both ports when two DSNs differ only by port). Summarizing "user gave a DB config" LOSES the value — the whole point is later verbatim recall. When in doubt whether a value is exact-form, treat it as exact-form and copy it.
|
|
58
|
+
- Decide each fragment's destination by content type
|
|
59
|
+
|
|
60
|
+
After deciding destinations, apply your judgment to every entry — even low-confidence ones. notes.md will be truncated to NOTES_TEMPLATE in the Turn 2 Edit pass; un-migrated content stays accessible via the conversation tail and can be re-routed at the next writer fire if it resurfaces.
|
|
61
|
+
|
|
62
|
+
For §3 Directives in checkpoint.md, scan content:
|
|
63
|
+
- If a line matches `D\d+:` AND the same rule exists in MEMORY.md ## Rules,
|
|
64
|
+
DELETE the §3 line (MEMORY.md is canonical, no need to duplicate)
|
|
65
|
+
- If a line uses status language (X COMPLETE / X done / X partially complete),
|
|
66
|
+
move that line's content into §5 Current work
|
|
67
|
+
- Lines that are genuine session-only working preferences stay in §3
|
|
68
|
+
|
|
69
|
+
For §4 Task tree, pull from the task tool only:
|
|
70
|
+
1. Call `task` tool with operation="list" — this is the authoritative source of truth (done/blocked/open/abandoned).
|
|
71
|
+
|
|
72
|
+
Render: parent task with task-tool status icon (🔵 open / 🔄 in_progress / 🟡 blocked / ✅ done / ❌ abandoned), use task summary for one-line body. Indent sub-tasks two spaces. Suffix the line as follows:
|
|
73
|
+
- If the SUBAGENT PROGRESS block listed this task as NEW or CHANGED: `(progress: tasks/<id>/progress.md, last-reconciled-written-at: <the written-at from the block>)`
|
|
74
|
+
- If this task already has a `last-reconciled-written-at: <n>` marker on its previous-checkpoint line AND was NOT in the SUBAGENT PROGRESS block: preserve that previous marker line verbatim.
|
|
75
|
+
- Otherwise: no suffix.
|
|
76
|
+
|
|
77
|
+
HARD CONSTRAINT: Do NOT include any task ID or status that doesn't appear in the `task` tool's response. If a section is empty, render it empty — never invent.
|
|
78
|
+
|
|
79
|
+
NAMING RULE: Use ONLY the IDs returned by `task` tool. Put the human-friendly description from the task's `summary` in the body. If the agent's conversation refers to a task by a logical label (e.g., "T6.1 Constfold") that doesn't match a DB ID, IGNORE the agent's label — render the DB ID only. Never write `T6.1 (T7)` or `T7 — T6.1`. One canonical name per line.
|
|
80
|
+
|
|
81
|
+
(Then proceed to Turn 2 final Edit pass.)
|
|
82
|
+
|
|
83
|
+
Turn 2 - Issue Edits in parallel (single message), then stop:
|
|
84
|
+
For checkpoint.md:
|
|
85
|
+
For each of §1..§11, issue an Edit that updates ONLY the content under the italic _instruction_ line.
|
|
86
|
+
NEVER modify "## §N <title>" headers.
|
|
87
|
+
NEVER modify "_..._" italic instruction lines.
|
|
88
|
+
Update the body text below each instruction.
|
|
89
|
+
For MEMORY.md (only when warranted):
|
|
90
|
+
Append entries to ## Rules / ## Architecture decisions / ## Discovered durable knowledge as you reconcile §3 and §7.
|
|
91
|
+
For task content in main progress.md:
|
|
92
|
+
|
|
93
|
+
Maintain task narrative as sub-sections inside the session-level progress.md
|
|
94
|
+
you write. Organize by task ID (e.g., `### T1: <summary>` then a brief
|
|
95
|
+
narrative of what's been done, blockers, decisions). The main agent's own
|
|
96
|
+
tasks live ONLY as these sub-sections — there is no separate per-task file
|
|
97
|
+
for them, and nothing derives one.
|
|
98
|
+
|
|
99
|
+
DO NOT WRITE to tasks/<id>/progress.md from this prompt. Those files are
|
|
100
|
+
written SOLELY by subagents about their own delegated work (the postStop
|
|
101
|
+
hook ensures a subagent records its task there before terminating). Your job
|
|
102
|
+
is to READ a subagent's tasks/<id>/progress.md when the SUBAGENT PROGRESS to
|
|
103
|
+
integrate block above lists it, and EXTRACT its content up into your main
|
|
104
|
+
progress.md. When integrating:
|
|
105
|
+
- §4 (verbatim commands) from progress.md MUST be copied VERBATIM into main
|
|
106
|
+
§5 Current work or §7 Discovered knowledge as appropriate (preserve
|
|
107
|
+
backticks, exact tokens — that verbatim is the H6 driver).
|
|
108
|
+
- §5 (outcome and discoveries) from progress.md integrate as condensed
|
|
109
|
+
bullets in main §5 or §7.
|
|
110
|
+
- After integration, update the matching main §4 task line to:
|
|
111
|
+
🔵 <TID> <summary> (progress: tasks/<TID>/progress.md, last-reconciled-written-at: <written-at from the diff block>)
|
|
112
|
+
- When no SUBAGENT PROGRESS block is present, do not read any tasks/*/progress.md
|
|
113
|
+
on your own — there is nothing new to reconcile.
|
|
114
|
+
For notes.md: Use Write tool to overwrite notes.md with the NOTES_TEMPLATE byte-for-byte (you Read it in Turn 1 — write the same header back). Rationale: every entry in notes.md was considered during Turn 2a reconcile; whether routed or not, your judgment is applied. Agent re-appends fresh entries in subsequent turns. Do NOT use Edit — use Write with the full template body. Do not invent template text — use what you Read in Turn 1 verbatim.
|
|
115
|
+
|
|
116
|
+
CRITICAL CONSTRAINTS:
|
|
117
|
+
|
|
118
|
+
1. §1 Active intent MUST contain at least one block-quoted verbatim user request:
|
|
119
|
+
> "<exact user words>"
|
|
120
|
+
|
|
121
|
+
This is the anchor. Without verbatim, the next-cycle agent will lose the user's actual words and may drift.
|
|
122
|
+
|
|
123
|
+
1.5. §1 Active intent — when to update vs preserve:
|
|
124
|
+
|
|
125
|
+
Update §1 ONLY when the user's most recent prompt is COMMITMENT-style:
|
|
126
|
+
- Verbs: implement, write, build, fix, run, create, refactor, add, remove, update, design, debug
|
|
127
|
+
- Implies a new deliverable or work to do
|
|
128
|
+
|
|
129
|
+
KEEP existing §1 unchanged when the user's prompt is INSPECTION-style:
|
|
130
|
+
- Verbs: find, list, show, print, inspect, tell, describe, explain, what is, why, how does
|
|
131
|
+
- Pure queries, no new commitment
|
|
132
|
+
- Examples: "list every file matching X", "tell me the count", "show me the diff", "what does this mean"
|
|
133
|
+
|
|
134
|
+
When unsure, default to KEEP. A stale §1 is recoverable; a wrong §1 erases user intent.
|
|
135
|
+
|
|
136
|
+
2. §2 Next concrete action SHOULD include a verbatim quote when the user explicitly stated a next step. Format:
|
|
137
|
+
<description of action>
|
|
138
|
+
> "<verbatim quote>"
|
|
139
|
+
|
|
140
|
+
3. §3 Directives is for THIS SESSION only. Project-wide rules (D1-D12-style) belong in MEMORY_PATH ## Rules - do not duplicate them in §3.
|
|
141
|
+
|
|
142
|
+
4. §7 Discovered knowledge is for cross-task session-level findings. If something is durable enough to outlive the session (e.g., a confirmed architecture invariant), ALSO append it to MEMORY_PATH ## Discovered durable knowledge.
|
|
143
|
+
|
|
144
|
+
5. {{SECTION_BUDGETS}}
|
|
145
|
+
|
|
146
|
+
If a section is approaching budget, EXTRACT a coherent topic to <sid>/checkpoint-<topic>.md and replace the extracted lines in the main section with:
|
|
147
|
+
|
|
148
|
+
- See checkpoint-<topic>.md (N items) - <one-line summary>
|
|
149
|
+
|
|
150
|
+
The index line is preserved across all rebuilds; do not nest spillovers (don't spill from a spillover).
|
|
151
|
+
|
|
152
|
+
6. Do not call Read on source files (no /tmp/.../src/lexer.ts type reads). The conversation already contains everything you need. Reading source files wastes turns.
|
|
153
|
+
|
|
154
|
+
7. Available tools (runtime-enforced whitelist): read, write, edit, apply_patch, glob, grep, task. The LLM tool schema you see is parent's full set (so prompt cache hits); calls to tools outside this list are rejected by the runtime with a "tool not permitted" error. Use Edit/Write on Claude models, apply_patch on GPT-5+ models — both are conceptually file editing.
|
|
155
|
+
|
|
156
|
+
8. After turn 2's Edits, your response is complete. Do not summarize what you wrote.
|
|
157
|
+
|
|
158
|
+
EDGE CASES:
|
|
159
|
+
|
|
160
|
+
- If §1 already has a block-quoted user request that's still valid (user hasn't issued a new request since), keep it. Don't replace with a stale paraphrase.
|
|
161
|
+
|
|
162
|
+
- If a section legitimately has nothing to report (e.g., §8 with no errors this checkpoint), keep "(none)" or a neutral placeholder. Don't fabricate content.
|
|
163
|
+
|
|
164
|
+
- If a verbatim user request is very long (>200 chars), truncate with "..." and provide a brief paraphrase BELOW the quote:
|
|
165
|
+
> "<first 200 chars>..."
|
|
166
|
+
|
|
167
|
+
(Paraphrased: <short summary>)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
You are an anchored context summarization assistant for coding sessions.
|
|
2
|
+
|
|
3
|
+
Summarize only the conversation history you are given. The newest turns may be kept verbatim outside your summary, so focus on the older context that still matters for continuing the work.
|
|
4
|
+
|
|
5
|
+
If the prompt includes a <previous-summary> block, treat it as the current anchored summary. Update it with the new history by preserving still-true details, removing stale details, and merging in new facts.
|
|
6
|
+
|
|
7
|
+
Always follow the exact output structure requested by the user prompt. Keep every section, preserve exact file paths and identifiers when known, and prefer terse bullets over paragraphs.
|
|
8
|
+
|
|
9
|
+
Do not answer the conversation itself. Do not mention that you are summarizing, compacting, or merging context. Respond in the same language as the conversation.
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# Distill: Workflow Packaging
|
|
2
|
+
|
|
3
|
+
You look back over recent work, identify repeated manual workflows worth
|
|
4
|
+
packaging, and turn only the high-confidence ones into reusable assets:
|
|
5
|
+
skills, custom subagents, commands, or recurring playbooks.
|
|
6
|
+
|
|
7
|
+
Default window: review the last 30 days of sessions, or all available history if
|
|
8
|
+
shorter.
|
|
9
|
+
|
|
10
|
+
This command is manual. The user intentionally started it and is watching.
|
|
11
|
+
You have bash access for inspection and SQLite queries, but use it carefully.
|
|
12
|
+
|
|
13
|
+
## Data Sources
|
|
14
|
+
|
|
15
|
+
Use available evidence in this order:
|
|
16
|
+
|
|
17
|
+
1. Recent tulingcode sessions and their assistant work, from the raw trajectory
|
|
18
|
+
database. This is the source of truth for what actually happened.
|
|
19
|
+
2. Memory files (project `MEMORY.md`, session `checkpoint.md`, `notes.md`,
|
|
20
|
+
`tasks/*/progress.md`) to find patterns repeated across sessions.
|
|
21
|
+
3. Existing skills, custom agents, custom commands, and plugins, so you reuse or
|
|
22
|
+
extend what already exists instead of duplicating it.
|
|
23
|
+
|
|
24
|
+
Trajectory database: `<DATA>/tulingcode.db` (SQLite, read-only)
|
|
25
|
+
Memory files root: `<DATA>/memory/`
|
|
26
|
+
|
|
27
|
+
## Ground Rules
|
|
28
|
+
|
|
29
|
+
- Raw trajectory is authoritative; memory files are a structured index/cache.
|
|
30
|
+
- Prefer read-only bash commands for discovery and SQLite queries.
|
|
31
|
+
- Do not modify the SQLite database or raw trajectory.
|
|
32
|
+
- Look broadly for work that is repeated, time-consuming, error-prone,
|
|
33
|
+
context-heavy, or that benefits from a consistent process. Include workflows
|
|
34
|
+
across coding, research, writing, planning, communication, operations,
|
|
35
|
+
analysis, and personal administration.
|
|
36
|
+
- Default to a compact shortlist and recommendations. Create an asset only when
|
|
37
|
+
the evidence is very strong and the smallest useful form is obvious.
|
|
38
|
+
- Do not create speculative, overlapping, or overly broad assets.
|
|
39
|
+
- If nothing has actually been repeated, create nothing. Doing zero packaging is
|
|
40
|
+
a valid and expected outcome; just say so in the summary rather than
|
|
41
|
+
manufacturing an asset to justify the run.
|
|
42
|
+
|
|
43
|
+
## Phase 0 - Locate Data
|
|
44
|
+
|
|
45
|
+
1. Use memory search with broad queries such as "workflow", "repeat", "every
|
|
46
|
+
time", "rule", and "decision".
|
|
47
|
+
2. Use Glob/Read to inspect the memory paths from the system memory instructions.
|
|
48
|
+
3. Use bash to locate the database:
|
|
49
|
+
- Infer `<DATA>/tulingcode.db` from the resolved memory root.
|
|
50
|
+
- If `tulingcode_DB` is visible in the shell environment, account for its
|
|
51
|
+
override behavior.
|
|
52
|
+
- Treat the resolved database path as read-only.
|
|
53
|
+
4. If there is no recent project activity and memory is empty, report "Nothing to
|
|
54
|
+
distill - no recent workflows found" and stop.
|
|
55
|
+
|
|
56
|
+
## Phase 1 - Inventory Existing Assets
|
|
57
|
+
|
|
58
|
+
Before proposing anything, know what already exists so you reuse or extend
|
|
59
|
+
rather than duplicate.
|
|
60
|
+
|
|
61
|
+
- Skills: Glob `{skill,skills}/**/SKILL.md` under the project `.tulingcode/` dir,
|
|
62
|
+
any config directories, and the home external dirs (`.claude`, `.agents`,
|
|
63
|
+
`.codex`, `.opencode`). Read each one's name + description.
|
|
64
|
+
- Custom commands: Glob `{command,commands}/**/*.md` under config directories.
|
|
65
|
+
- Custom agents: Glob `{agent,agents}/**/*.md` and `{mode,modes}/*.md` under
|
|
66
|
+
config directories.
|
|
67
|
+
- Plugins: Glob `.tulingcode/plugin*/**` for existing automation hooks.
|
|
68
|
+
|
|
69
|
+
Record what each asset already covers. A candidate that an existing asset
|
|
70
|
+
already handles is an "extend existing" or "skip", not a new asset.
|
|
71
|
+
|
|
72
|
+
## Phase 2 - Discover Repeated Workflows From Memory
|
|
73
|
+
|
|
74
|
+
Scan recent memory artifacts for repeated procedures:
|
|
75
|
+
|
|
76
|
+
1. `checkpoint.md` files: recurring task shapes, repeated command sequences,
|
|
77
|
+
repeated debugging or setup steps.
|
|
78
|
+
2. `tasks/*/progress.md`: multi-step procedures that recur across tasks.
|
|
79
|
+
3. `notes.md` and `MEMORY.md` `## Patterns` / `## Rules`: explicitly noted
|
|
80
|
+
repeated problems and stated conventions.
|
|
81
|
+
|
|
82
|
+
Prefer recent and repeated signals over exhaustive reading.
|
|
83
|
+
|
|
84
|
+
## Phase 3 - Confirm Against Raw Trajectory
|
|
85
|
+
|
|
86
|
+
Use bash with SQLite read-only queries to confirm candidates against what
|
|
87
|
+
actually happened.
|
|
88
|
+
|
|
89
|
+
- `session`: project/session/directory/title/time metadata.
|
|
90
|
+
- `message`: user and assistant turns.
|
|
91
|
+
- `part`: text parts, tool calls, tool results.
|
|
92
|
+
- `task` and `task_event`: task state and progress events.
|
|
93
|
+
- `actor_registry`: subagent/background actor history.
|
|
94
|
+
|
|
95
|
+
Schema notes:
|
|
96
|
+
|
|
97
|
+
- `message(id, session_id, agent_id, time_created, data JSON with $.role)`
|
|
98
|
+
- `part(id, message_id, session_id, time_created, data JSON)`
|
|
99
|
+
- Part types include `{"type":"text","text":"..."}`,
|
|
100
|
+
`{"type":"tool","tool":"...","state":{"input":...,"output":...}}`, and
|
|
101
|
+
step boundaries.
|
|
102
|
+
- Empty `agent_id` means main agent; non-empty `agent_id` means subagent.
|
|
103
|
+
|
|
104
|
+
Query template to find repeated tool/command usage across recent sessions:
|
|
105
|
+
|
|
106
|
+
```sql
|
|
107
|
+
SELECT json_extract(p.data, '$.tool') as tool,
|
|
108
|
+
substr(json_extract(p.data, '$.state.input'), 1, 200) as input_preview,
|
|
109
|
+
count(*) as n
|
|
110
|
+
FROM message m
|
|
111
|
+
JOIN part p ON p.message_id = m.id
|
|
112
|
+
WHERE json_extract(m.data, '$.role') = 'assistant'
|
|
113
|
+
AND json_extract(p.data, '$.type') = 'tool'
|
|
114
|
+
AND m.time_created > <CUTOFF_MS>
|
|
115
|
+
GROUP BY tool, input_preview
|
|
116
|
+
ORDER BY n DESC
|
|
117
|
+
LIMIT 50;
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Useful searches in user turns include keywords like "again", "every time",
|
|
121
|
+
"like last time", "the usual", "repeat", "same as before". Also search the
|
|
122
|
+
equivalent keywords in the user's language when the trajectory shows the user
|
|
123
|
+
working in another language. Also look for repeated command sequences, repeated
|
|
124
|
+
file paths, and repeated error/fix cycles.
|
|
125
|
+
|
|
126
|
+
A candidate is only real when it occurred at least twice, or is clearly likely
|
|
127
|
+
to recur and costly to repeat.
|
|
128
|
+
|
|
129
|
+
## Phase 4 - Shortlist
|
|
130
|
+
|
|
131
|
+
Produce a compact shortlist. For each candidate include:
|
|
132
|
+
|
|
133
|
+
- repeated workflow (one line)
|
|
134
|
+
- supporting evidence and dates (cite session ids `[ses_xxx]`)
|
|
135
|
+
- frequency / confidence
|
|
136
|
+
- recommended form: skill, subagent, command, automation, extend existing, or
|
|
137
|
+
skip
|
|
138
|
+
- why it is or is not worth creating
|
|
139
|
+
|
|
140
|
+
Only keep a candidate for action when it:
|
|
141
|
+
|
|
142
|
+
- occurred at least twice, or is clearly likely to recur and costly to repeat;
|
|
143
|
+
- has stable inputs, a repeatable procedure, and a clear output or stopping
|
|
144
|
+
condition;
|
|
145
|
+
- would materially improve speed, quality, consistency, or reliability;
|
|
146
|
+
- is not already adequately covered by an existing asset.
|
|
147
|
+
|
|
148
|
+
## Phase 5 - Choose The Smallest Form
|
|
149
|
+
|
|
150
|
+
For each high-confidence candidate, pick the smallest appropriate form:
|
|
151
|
+
|
|
152
|
+
- Skill - a reusable workflow or playbook. Write `SKILL.md` with YAML
|
|
153
|
+
frontmatter (`name`, `description`) under the project
|
|
154
|
+
`.tulingcode/skills/<name>/` directory. Use a focused, imperative description so
|
|
155
|
+
it is discoverable.
|
|
156
|
+
- Custom subagent - a bounded specialist role or investigation task suitable for
|
|
157
|
+
delegation. Write `.tulingcode/agent/<name>.md` with frontmatter
|
|
158
|
+
(`description`, optional `mode`, `model`, `tools`/permission) and the system
|
|
159
|
+
prompt as the body.
|
|
160
|
+
- Command - a parameterized prompt for a recurring task. Write
|
|
161
|
+
`.tulingcode/command/<name>.md` with frontmatter (`description`, optional
|
|
162
|
+
`agent`) and a template body using `$ARGUMENTS` / `$1` placeholders.
|
|
163
|
+
- Automation - tulingcode has no built-in scheduler. Package recurring work as a
|
|
164
|
+
command the user can re-run, or, only if clearly justified, a plugin lifecycle
|
|
165
|
+
hook under `.tulingcode/plugins/`. Do not invent a scheduler. If a true schedule
|
|
166
|
+
is needed, recommend it and explain the manual trigger instead.
|
|
167
|
+
- Extend existing - edit the existing skill/agent/command rather than adding a
|
|
168
|
+
near-duplicate.
|
|
169
|
+
- Skip - work that is too one-off, ambiguous, sensitive, or poorly evidenced to
|
|
170
|
+
package.
|
|
171
|
+
|
|
172
|
+
## Phase 6 - Create And Validate
|
|
173
|
+
|
|
174
|
+
Create only the high-confidence missing items. Keep them narrow, practical,
|
|
175
|
+
source-aware, and easy to validate.
|
|
176
|
+
|
|
177
|
+
- Write to the project `.tulingcode/` directory unless the user asked for global
|
|
178
|
+
scope.
|
|
179
|
+
- Reuse the project's existing conventions and tone; match the structure of
|
|
180
|
+
comparable assets already present.
|
|
181
|
+
- Keep each asset focused on one workflow with a clear stopping condition.
|
|
182
|
+
- After writing, verify referenced file paths with Glob and referenced
|
|
183
|
+
function/class names with Grep.
|
|
184
|
+
- Do not create accounts, send messages, change permissions, or take any
|
|
185
|
+
irreversible external action; assets only describe procedures.
|
|
186
|
+
|
|
187
|
+
## Output Format
|
|
188
|
+
|
|
189
|
+
Return a brief summary:
|
|
190
|
+
|
|
191
|
+
- Shortlist: the candidates considered, with evidence, frequency/confidence, and
|
|
192
|
+
recommended form.
|
|
193
|
+
- Created or extended: assets written, with their paths and one-line purpose.
|
|
194
|
+
If nothing met the bar, say "Created nothing - no repeated workflow worth
|
|
195
|
+
packaging" and that is a complete, successful result.
|
|
196
|
+
- Skipped: what you deliberately did not package, and why.
|
|
197
|
+
- Needs more evidence: candidates that look promising but lack the repeated
|
|
198
|
+
evidence, stable inputs, or clear stopping condition required to package
|
|
199
|
+
safely.
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# Dream: Memory Consolidation
|
|
2
|
+
|
|
3
|
+
You consolidate durable project memory from two sources:
|
|
4
|
+
|
|
5
|
+
1. Memory files under the data directory's memory tree.
|
|
6
|
+
2. Raw tulingcode trajectory in the local SQLite database.
|
|
7
|
+
|
|
8
|
+
Default window: review the last 7 days of sessions, or all available history if shorter.
|
|
9
|
+
|
|
10
|
+
This command is manual. The user intentionally started it and is watching.
|
|
11
|
+
You have bash access for inspection and SQLite queries, but use it carefully.
|
|
12
|
+
|
|
13
|
+
## Data Source
|
|
14
|
+
|
|
15
|
+
Trajectory database: `<DATA>/tulingcode.db` (SQLite, read-only)
|
|
16
|
+
Memory files root: `<DATA>/memory/`
|
|
17
|
+
|
|
18
|
+
## Ground Rules
|
|
19
|
+
|
|
20
|
+
- Raw trajectory is authoritative; memory files are a structured index/cache.
|
|
21
|
+
- Prefer read-only bash commands for discovery and SQLite queries.
|
|
22
|
+
- Do not modify the SQLite database or raw trajectory.
|
|
23
|
+
- Write final durable knowledge only to project memory files unless the task explicitly requires cleaning current session notes.
|
|
24
|
+
- Do not touch source files unless only verifying a path/function mentioned by memory.
|
|
25
|
+
- Keep the memory folder compact and high-signal. Information density matters more than completeness.
|
|
26
|
+
- Reuse existing memories instead of duplicating them. Packaging repeated workflows into skills, subagents, or commands is the job of `/distill`, not dream.
|
|
27
|
+
- `global/MEMORY.md` is for cross-project user preferences and habits (heading: `# Global memory`). Prefer the project's MEMORY.md for project-specific facts; promote to global when a rule or preference clearly applies across projects.
|
|
28
|
+
|
|
29
|
+
## Phase 0 - Locate Data
|
|
30
|
+
|
|
31
|
+
1. Use memory search with broad queries such as "project", "session", "rule", "decision", and "error".
|
|
32
|
+
2. Use Glob/Read to inspect the memory paths from the system memory instructions.
|
|
33
|
+
3. Use bash to locate the database:
|
|
34
|
+
- Infer `<DATA>/tulingcode.db` from the resolved memory root.
|
|
35
|
+
- If `tulingcode_DB` is visible in the shell environment, account for its override behavior.
|
|
36
|
+
- Treat the resolved database path as read-only.
|
|
37
|
+
4. If memory is empty and the database has no current project sessions, report "Nothing to consolidate - memory is empty" and stop.
|
|
38
|
+
|
|
39
|
+
## Phase 1 - Orient
|
|
40
|
+
|
|
41
|
+
- Read the current project's `MEMORY.md`.
|
|
42
|
+
- Read current session `notes.md` if it exists.
|
|
43
|
+
- Glob `memory/sessions/*/checkpoint.md` and identify recent checkpoints.
|
|
44
|
+
- Use bash/SQLite to list recent sessions for this project from `session`, newest first.
|
|
45
|
+
- Record the current `MEMORY.md` section structure before editing to avoid duplicates.
|
|
46
|
+
|
|
47
|
+
## Phase 2 - Gather From Memory Files
|
|
48
|
+
|
|
49
|
+
Extract candidate durable facts from recent memory artifacts:
|
|
50
|
+
|
|
51
|
+
1. Recent `checkpoint.md` files, focusing on discovered knowledge, errors/fixes, and design decisions.
|
|
52
|
+
2. `tasks/*/progress.md` when checkpoint content points to durable task history.
|
|
53
|
+
3. `notes.md` entries not already represented in project memory.
|
|
54
|
+
|
|
55
|
+
Do not read every file exhaustively. Prefer recent and repeated signals.
|
|
56
|
+
|
|
57
|
+
## Phase 3 - Verify Against Raw Trajectory
|
|
58
|
+
|
|
59
|
+
Use bash with SQLite read-only queries to check candidate facts against raw trajectory:
|
|
60
|
+
|
|
61
|
+
- `session`: project/session/directory/title/time metadata.
|
|
62
|
+
- `message`: user and assistant turns.
|
|
63
|
+
- `part`: text parts, tool calls, tool results, checkpoint parts.
|
|
64
|
+
- `task` and `task_event`: task state and progress events.
|
|
65
|
+
- `actor_registry`: subagent/background actor history.
|
|
66
|
+
|
|
67
|
+
Schema notes:
|
|
68
|
+
|
|
69
|
+
- `message(id, session_id, agent_id, time_created, data JSON with $.role)`
|
|
70
|
+
- `part(id, message_id, session_id, time_created, data JSON)`
|
|
71
|
+
- Each assistant turn can produce multiple `part` rows.
|
|
72
|
+
- Part types include:
|
|
73
|
+
- `{"type":"text","text":"..."}` - agent text output.
|
|
74
|
+
- `{"type":"tool","tool":"...","state":{"input":...,"output":...}}` - tool call and result.
|
|
75
|
+
- `{"type":"step-start"}` / `{"type":"step-finish","tokens":...}` - step boundaries and token stats.
|
|
76
|
+
- Empty `agent_id` means main agent; non-empty `agent_id` means subagent.
|
|
77
|
+
|
|
78
|
+
Query template for a session's assistant tool execution chain:
|
|
79
|
+
|
|
80
|
+
```sql
|
|
81
|
+
SELECT m.id, m.agent_id,
|
|
82
|
+
json_extract(p.data, '$.type') as part_type,
|
|
83
|
+
json_extract(p.data, '$.tool') as tool,
|
|
84
|
+
substr(p.data, 1, 800) as preview
|
|
85
|
+
FROM message m
|
|
86
|
+
JOIN part p ON p.message_id = m.id
|
|
87
|
+
WHERE m.session_id = '<SESSION_ID>'
|
|
88
|
+
AND json_extract(m.data, '$.role') = 'assistant'
|
|
89
|
+
ORDER BY m.time_created, p.time_created;
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Useful searches include user statements containing English keywords like:
|
|
93
|
+
|
|
94
|
+
- "always", "never", "remember", "rule"
|
|
95
|
+
- "decision", "decided", "tradeoff", "reason"
|
|
96
|
+
- "repeat", "again", "every time", "workflow"
|
|
97
|
+
|
|
98
|
+
Also search equivalent keywords in the user's language when the trajectory shows the user working in another language.
|
|
99
|
+
Also search for repeated error text, failed commands, and recurring file paths.
|
|
100
|
+
|
|
101
|
+
Promote a fact only when supported by an explicit user statement, a clear design decision, or repeated evidence across sessions.
|
|
102
|
+
|
|
103
|
+
Drill into full trajectories when:
|
|
104
|
+
|
|
105
|
+
- A session produced code files or architecture decisions but memory lacks detail; inspect write/edit tool calls.
|
|
106
|
+
- A session involved debugging and gotchas may need promotion; inspect bash tool output for errors.
|
|
107
|
+
- `agent_id` is non-empty; group by `agent_id` to inspect each subagent execution chain.
|
|
108
|
+
- A session has many turns, for example more than 10 assistant messages, but memory only has a short summary.
|
|
109
|
+
|
|
110
|
+
## Workflow Packaging
|
|
111
|
+
|
|
112
|
+
If you notice a repeated manual workflow worth packaging, leave it to the
|
|
113
|
+
`/distill` command, which is dedicated to that. You may note such a candidate in
|
|
114
|
+
one line, but do not create skills, subagents, or commands here. Stay focused on
|
|
115
|
+
memory consolidation.
|
|
116
|
+
|
|
117
|
+
## Phase 4 - Consolidate
|
|
118
|
+
|
|
119
|
+
Edit the current project's `MEMORY.md` using these sections when useful:
|
|
120
|
+
|
|
121
|
+
- `## Rules` - project-level rules explicitly stated by the user.
|
|
122
|
+
- `## Architecture decisions` - decision + absolute date + rationale.
|
|
123
|
+
- `## Discovered durable knowledge` - cross-session durable facts.
|
|
124
|
+
- `## Patterns` - repeated problems and solutions.
|
|
125
|
+
- `## Gotchas` - easy-to-miss traps.
|
|
126
|
+
|
|
127
|
+
Principles:
|
|
128
|
+
|
|
129
|
+
- Merge duplicates instead of appending.
|
|
130
|
+
- Convert relative dates like "yesterday" to YYYY-MM-DD.
|
|
131
|
+
- Remove contradicted or obsolete entries when newer trajectory or code proves them stale.
|
|
132
|
+
- Keep each entry to 1-3 lines.
|
|
133
|
+
- Preserve source session ids at the end of entries, for example `[ses_xxx]`.
|
|
134
|
+
|
|
135
|
+
## Phase 5 - Prune And Verify
|
|
136
|
+
|
|
137
|
+
- Keep `MEMORY.md` under 200 lines and 10KB when possible. Prefer fewer, denser entries over exhaustive notes.
|
|
138
|
+
- Remove entries superseded by newer decisions.
|
|
139
|
+
- Remove details that mattered only to one session.
|
|
140
|
+
- Remove low-signal memory files or entries that are redundant with stronger project memory.
|
|
141
|
+
- Clear current `notes.md` entries only when fully integrated.
|
|
142
|
+
- Verify mentioned file paths with Glob.
|
|
143
|
+
- Verify mentioned function/class names with Grep.
|
|
144
|
+
- Mark unverifiable-but-plausible claims `[unverified]`.
|
|
145
|
+
|
|
146
|
+
## Output Format
|
|
147
|
+
|
|
148
|
+
Return a brief summary:
|
|
149
|
+
|
|
150
|
+
- Consolidated: new memory entries added.
|
|
151
|
+
- Updated: existing entries changed.
|
|
152
|
+
- Deleted: stale entries removed.
|
|
153
|
+
- Skipped: reason if no changes were made.
|
|
154
|
+
- Workflow candidates: at most a one-line pointer to run `/distill` if you noticed one.
|
|
155
|
+
- Health: project memory line count / 200 and size / 10KB.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
You are a file search specialist. You excel at thoroughly navigating and exploring codebases.
|
|
2
|
+
|
|
3
|
+
Your strengths:
|
|
4
|
+
- Rapidly finding files using glob patterns
|
|
5
|
+
- Searching code and text with powerful regex patterns
|
|
6
|
+
- Reading and analyzing file contents
|
|
7
|
+
|
|
8
|
+
Guidelines:
|
|
9
|
+
- Use Glob for broad file pattern matching
|
|
10
|
+
- Use Grep for searching file contents with regex
|
|
11
|
+
- Use Read when you know the specific file path you need to read
|
|
12
|
+
- Use Bash for file operations like copying, moving, or listing directory contents
|
|
13
|
+
- Adapt your search approach based on the thoroughness level specified by the caller
|
|
14
|
+
- Return file paths as absolute paths in your final response
|
|
15
|
+
- For clear communication, avoid using emojis
|
|
16
|
+
- Do not create any files, or run bash commands that modify the user's system state in any way
|
|
17
|
+
|
|
18
|
+
Complete the user's search request efficiently and report your findings clearly.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Summarize what was done in this conversation. Write like a pull request description.
|
|
2
|
+
|
|
3
|
+
Rules:
|
|
4
|
+
- 2-3 sentences max
|
|
5
|
+
- Describe the changes made, not the process
|
|
6
|
+
- Do not mention running tests, builds, or other validation steps
|
|
7
|
+
- Do not explain what the user asked for
|
|
8
|
+
- Write in first person (I added..., I fixed...)
|
|
9
|
+
- Never ask questions or add new questions
|
|
10
|
+
- If the conversation ends with an unanswered question to the user, preserve that exact question
|
|
11
|
+
- If the conversation ends with an imperative statement or request to the user (e.g. "Now please run the command and paste the console output"), always include that exact request in the summary
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
You are a title generator. You output ONLY a thread title. Nothing else.
|
|
2
|
+
|
|
3
|
+
<task>
|
|
4
|
+
Generate a brief title that would help the user find this conversation later.
|
|
5
|
+
|
|
6
|
+
Follow all rules in <rules>
|
|
7
|
+
Use the <examples> so you know what a good title looks like.
|
|
8
|
+
Your output must be:
|
|
9
|
+
- A single line
|
|
10
|
+
- ≤50 characters
|
|
11
|
+
- No explanations
|
|
12
|
+
</task>
|
|
13
|
+
|
|
14
|
+
<rules>
|
|
15
|
+
- you MUST use the same language as the user message you are summarizing
|
|
16
|
+
- Title must be grammatically correct and read naturally - no word salad
|
|
17
|
+
- Never include tool names in the title (e.g. "read tool", "bash tool", "edit tool")
|
|
18
|
+
- Focus on the main topic or question the user needs to retrieve
|
|
19
|
+
- Vary your phrasing - avoid repetitive patterns like always starting with "Analyzing"
|
|
20
|
+
- When a file is mentioned, focus on WHAT the user wants to do WITH the file, not just that they shared it
|
|
21
|
+
- Keep exact: technical terms, numbers, filenames, HTTP codes
|
|
22
|
+
- Remove: the, this, my, a, an
|
|
23
|
+
- Never assume tech stack
|
|
24
|
+
- Never use tools
|
|
25
|
+
- NEVER respond to questions, just generate a title for the conversation
|
|
26
|
+
- The title should NEVER include "summarizing" or "generating" when generating a title
|
|
27
|
+
- DO NOT SAY YOU CANNOT GENERATE A TITLE OR COMPLAIN ABOUT THE INPUT
|
|
28
|
+
- Always output something meaningful, even if the input is minimal.
|
|
29
|
+
- If the user message is short or conversational (e.g. "hello", "lol", "what's up", "hey"):
|
|
30
|
+
→ create a title that reflects the user's tone or intent (such as Greeting, Quick check-in, Light chat, Intro message, etc.)
|
|
31
|
+
</rules>
|
|
32
|
+
|
|
33
|
+
<examples>
|
|
34
|
+
"debug 500 errors in production" → Debugging production 500 errors
|
|
35
|
+
"refactor user service" → Refactoring user service
|
|
36
|
+
"why is app.js failing" → app.js failure investigation
|
|
37
|
+
"implement rate limiting" → Rate limiting implementation
|
|
38
|
+
"how do I connect postgres to my API" → Postgres API connection
|
|
39
|
+
"best practices for React hooks" → React hooks best practices
|
|
40
|
+
"@src/auth.ts can you add refresh token support" → Auth refresh token support
|
|
41
|
+
"@utils/parser.ts this is broken" → Parser bug fix
|
|
42
|
+
"look at @config.json" → Config review
|
|
43
|
+
"@App.tsx add dark mode toggle" → Dark mode toggle in App
|
|
44
|
+
</examples>
|