tarsk 0.4.4 → 0.4.6
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/dist/index.js +447375 -37
- package/package.json +2 -2
- package/dist/agent/agent.error-utils.d.ts +0 -14
- package/dist/agent/agent.error-utils.js +0 -52
- package/dist/agent/agent.event-transformer.d.ts +0 -55
- package/dist/agent/agent.event-transformer.js +0 -175
- package/dist/agent/agent.executor.d.ts +0 -26
- package/dist/agent/agent.executor.js +0 -286
- package/dist/agent/agent.model-resolver.d.ts +0 -22
- package/dist/agent/agent.model-resolver.js +0 -67
- package/dist/agent/agent.process-manager.d.ts +0 -57
- package/dist/agent/agent.process-manager.js +0 -262
- package/dist/agent/agent.processing-state-manager.d.ts +0 -74
- package/dist/agent/agent.processing-state-manager.js +0 -87
- package/dist/agent/agent.prompt-loader.d.ts +0 -16
- package/dist/agent/agent.prompt-loader.js +0 -227
- package/dist/agent/agent.subagent-executor.d.ts +0 -35
- package/dist/agent/agent.subagent-executor.js +0 -135
- package/dist/bun/index.d.ts +0 -2
- package/dist/bun/index.js +0 -165
- package/dist/cli.d.ts +0 -3
- package/dist/cli.js +0 -22
- package/dist/core/crypto.d.ts +0 -29
- package/dist/core/crypto.js +0 -166
- package/dist/core/dev-server-cache.d.ts +0 -46
- package/dist/core/dev-server-cache.js +0 -59
- package/dist/core/env-manager.d.ts +0 -3
- package/dist/core/env-manager.js +0 -60
- package/dist/core/error-responses.d.ts +0 -61
- package/dist/core/error-responses.js +0 -64
- package/dist/core/logger.d.ts +0 -10
- package/dist/core/logger.js +0 -47
- package/dist/core/paths.d.ts +0 -22
- package/dist/core/paths.js +0 -26
- package/dist/core/random-words.d.ts +0 -18
- package/dist/core/random-words.js +0 -135
- package/dist/core/response-builder.d.ts +0 -50
- package/dist/core/response-builder.js +0 -56
- package/dist/core/route-helpers.d.ts +0 -47
- package/dist/core/route-helpers.js +0 -54
- package/dist/core/run-command-detector.d.ts +0 -26
- package/dist/core/run-command-detector.js +0 -98
- package/dist/core/stream-helper.d.ts +0 -44
- package/dist/core/stream-helper.js +0 -50
- package/dist/core/utils.d.ts +0 -43
- package/dist/core/utils.js +0 -113
- package/dist/core/validation.d.ts +0 -10
- package/dist/core/validation.js +0 -20
- package/dist/database/database.d.ts +0 -40
- package/dist/database/database.encryption.d.ts +0 -33
- package/dist/database/database.encryption.js +0 -62
- package/dist/database/database.js +0 -480
- package/dist/database/database.state.d.ts +0 -52
- package/dist/database/database.state.js +0 -119
- package/dist/database/database.test-utils.d.ts +0 -22
- package/dist/database/database.test-utils.js +0 -39
- package/dist/database/database.types.d.ts +0 -3
- package/dist/database/database.types.js +0 -2
- package/dist/features/agents/agents.manager.d.ts +0 -24
- package/dist/features/agents/agents.manager.js +0 -200
- package/dist/features/ask-user/ask-user.routes.d.ts +0 -9
- package/dist/features/ask-user/ask-user.routes.js +0 -35
- package/dist/features/chat/chat-delete.route.d.ts +0 -15
- package/dist/features/chat/chat-delete.route.js +0 -36
- package/dist/features/chat/chat-post.route.d.ts +0 -11
- package/dist/features/chat/chat-post.route.js +0 -270
- package/dist/features/chat/chat-stop.route.d.ts +0 -21
- package/dist/features/chat/chat-stop.route.js +0 -22
- package/dist/features/chat/chat-subscribe.route.d.ts +0 -9
- package/dist/features/chat/chat-subscribe.route.js +0 -71
- package/dist/features/chat/chat.routes.d.ts +0 -22
- package/dist/features/chat/chat.routes.js +0 -29
- package/dist/features/conversations/conversations-delete.route.d.ts +0 -16
- package/dist/features/conversations/conversations-delete.route.js +0 -34
- package/dist/features/conversations/conversations-get-all.route.d.ts +0 -16
- package/dist/features/conversations/conversations-get-all.route.js +0 -39
- package/dist/features/conversations/conversations-get-by-id.route.d.ts +0 -16
- package/dist/features/conversations/conversations-get-by-id.route.js +0 -38
- package/dist/features/conversations/conversations-get-deleted.route.d.ts +0 -15
- package/dist/features/conversations/conversations-get-deleted.route.js +0 -34
- package/dist/features/conversations/conversations-get-messages.route.d.ts +0 -16
- package/dist/features/conversations/conversations-get-messages.route.js +0 -49
- package/dist/features/conversations/conversations.content.d.ts +0 -28
- package/dist/features/conversations/conversations.content.js +0 -142
- package/dist/features/conversations/conversations.database.d.ts +0 -108
- package/dist/features/conversations/conversations.database.js +0 -373
- package/dist/features/conversations/conversations.manager.d.ts +0 -130
- package/dist/features/conversations/conversations.manager.js +0 -162
- package/dist/features/conversations/conversations.routes.d.ts +0 -21
- package/dist/features/conversations/conversations.routes.js +0 -38
- package/dist/features/conversations/token-usage.route.d.ts +0 -41
- package/dist/features/conversations/token-usage.route.js +0 -419
- package/dist/features/git/git-commit.route.d.ts +0 -12
- package/dist/features/git/git-commit.route.js +0 -39
- package/dist/features/git/git-create-branch.route.d.ts +0 -28
- package/dist/features/git/git-create-branch.route.js +0 -119
- package/dist/features/git/git-create-pr.route.d.ts +0 -13
- package/dist/features/git/git-create-pr.route.js +0 -50
- package/dist/features/git/git-create-repo.route.d.ts +0 -14
- package/dist/features/git/git-create-repo.route.js +0 -108
- package/dist/features/git/git-diff.route.d.ts +0 -30
- package/dist/features/git/git-diff.route.js +0 -189
- package/dist/features/git/git-fetch.route.d.ts +0 -12
- package/dist/features/git/git-fetch.route.js +0 -31
- package/dist/features/git/git-generate-commit-message.route.d.ts +0 -12
- package/dist/features/git/git-generate-commit-message.route.js +0 -76
- package/dist/features/git/git-generate-pr-info.route.d.ts +0 -13
- package/dist/features/git/git-generate-pr-info.route.js +0 -147
- package/dist/features/git/git-github-status.route.d.ts +0 -16
- package/dist/features/git/git-github-status.route.js +0 -68
- package/dist/features/git/git-log.route.d.ts +0 -17
- package/dist/features/git/git-log.route.js +0 -33
- package/dist/features/git/git-pr-status.route.d.ts +0 -15
- package/dist/features/git/git-pr-status.route.js +0 -33
- package/dist/features/git/git-pull.route.d.ts +0 -12
- package/dist/features/git/git-pull.route.js +0 -35
- package/dist/features/git/git-push.route.d.ts +0 -12
- package/dist/features/git/git-push.route.js +0 -46
- package/dist/features/git/git-status-cache.database.d.ts +0 -7
- package/dist/features/git/git-status-cache.database.js +0 -53
- package/dist/features/git/git-status.route.d.ts +0 -15
- package/dist/features/git/git-status.route.js +0 -62
- package/dist/features/git/git-sync-branch.route.d.ts +0 -4
- package/dist/features/git/git-sync-branch.route.js +0 -208
- package/dist/features/git/git-unified-status.route.d.ts +0 -30
- package/dist/features/git/git-unified-status.route.js +0 -165
- package/dist/features/git/git-username.route.d.ts +0 -3
- package/dist/features/git/git-username.route.js +0 -24
- package/dist/features/git/git.manager.d.ts +0 -139
- package/dist/features/git/git.manager.js +0 -352
- package/dist/features/git/git.routes.d.ts +0 -4
- package/dist/features/git/git.routes.js +0 -116
- package/dist/features/git/git.utils.d.ts +0 -82
- package/dist/features/git/git.utils.js +0 -1040
- package/dist/features/mcp/mcp.config.d.ts +0 -27
- package/dist/features/mcp/mcp.config.js +0 -148
- package/dist/features/mcp/mcp.manager.d.ts +0 -61
- package/dist/features/mcp/mcp.manager.js +0 -254
- package/dist/features/mcp/mcp.popular.json +0 -103
- package/dist/features/mcp/mcp.routes.d.ts +0 -13
- package/dist/features/mcp/mcp.routes.js +0 -159
- package/dist/features/mcp/mcp.types.d.ts +0 -80
- package/dist/features/mcp/mcp.types.js +0 -8
- package/dist/features/metadata/metadata.manager.d.ts +0 -126
- package/dist/features/metadata/metadata.manager.js +0 -423
- package/dist/features/models/model-info-aihubmix.d.ts +0 -25
- package/dist/features/models/model-info-aihubmix.js +0 -117
- package/dist/features/models/model-info-openrouter.d.ts +0 -25
- package/dist/features/models/model-info-openrouter.js +0 -104
- package/dist/features/models/model-info.d.ts +0 -37
- package/dist/features/models/model-info.js +0 -39
- package/dist/features/models/models-catalog.d.ts +0 -49
- package/dist/features/models/models-catalog.js +0 -80
- package/dist/features/models/models-catalog.route.d.ts +0 -43
- package/dist/features/models/models-catalog.route.js +0 -15
- package/dist/features/models/models-get-available.route.d.ts +0 -36
- package/dist/features/models/models-get-available.route.js +0 -66
- package/dist/features/models/models-get-enabled.route.d.ts +0 -33
- package/dist/features/models/models-get-enabled.route.js +0 -45
- package/dist/features/models/models-get-model-info.route.d.ts +0 -31
- package/dist/features/models/models-get-model-info.route.js +0 -84
- package/dist/features/models/models-model-disable.route.d.ts +0 -15
- package/dist/features/models/models-model-disable.route.js +0 -20
- package/dist/features/models/models-model-enable.route.d.ts +0 -13
- package/dist/features/models/models-model-enable.route.js +0 -20
- package/dist/features/models/models-provider-refresh.route.d.ts +0 -17
- package/dist/features/models/models-provider-refresh.route.js +0 -20
- package/dist/features/models/models.manager.d.ts +0 -58
- package/dist/features/models/models.manager.js +0 -138
- package/dist/features/models/models.routes.d.ts +0 -18
- package/dist/features/models/models.routes.js +0 -83
- package/dist/features/models/open-router-models.d.ts +0 -38
- package/dist/features/models/open-router-models.js +0 -73
- package/dist/features/models/openai-models.d.ts +0 -63
- package/dist/features/models/openai-models.js +0 -150
- package/dist/features/onboarding/onboarding-get-git-check.route.d.ts +0 -11
- package/dist/features/onboarding/onboarding-get-git-check.route.js +0 -28
- package/dist/features/onboarding/onboarding-get-status.route.d.ts +0 -12
- package/dist/features/onboarding/onboarding-get-status.route.js +0 -15
- package/dist/features/onboarding/onboarding-post-complete.route.d.ts +0 -12
- package/dist/features/onboarding/onboarding-post-complete.route.js +0 -15
- package/dist/features/onboarding/onboarding-post-reset.route.d.ts +0 -12
- package/dist/features/onboarding/onboarding-post-reset.route.js +0 -15
- package/dist/features/onboarding/onboarding.routes.d.ts +0 -18
- package/dist/features/onboarding/onboarding.routes.js +0 -28
- package/dist/features/project-todos/project-todos.database.d.ts +0 -38
- package/dist/features/project-todos/project-todos.database.js +0 -91
- package/dist/features/project-todos/project-todos.routes.d.ts +0 -4
- package/dist/features/project-todos/project-todos.routes.js +0 -94
- package/dist/features/projects/projects-ai-files.route.d.ts +0 -148
- package/dist/features/projects/projects-ai-files.route.js +0 -425
- package/dist/features/projects/projects-commands.route.d.ts +0 -27
- package/dist/features/projects/projects-commands.route.js +0 -39
- package/dist/features/projects/projects-create.route.d.ts +0 -19
- package/dist/features/projects/projects-create.route.js +0 -37
- package/dist/features/projects/projects-delete.route.d.ts +0 -24
- package/dist/features/projects/projects-delete.route.js +0 -34
- package/dist/features/projects/projects-get.route.d.ts +0 -47
- package/dist/features/projects/projects-get.route.js +0 -36
- package/dist/features/projects/projects-list.route.d.ts +0 -58
- package/dist/features/projects/projects-list.route.js +0 -59
- package/dist/features/projects/projects-open-folder.route.d.ts +0 -10
- package/dist/features/projects/projects-open-folder.route.js +0 -11
- package/dist/features/projects/projects-open.route.d.ts +0 -26
- package/dist/features/projects/projects-open.route.js +0 -49
- package/dist/features/projects/projects-package-scripts.route.d.ts +0 -15
- package/dist/features/projects/projects-package-scripts.route.js +0 -96
- package/dist/features/projects/projects-run-command.route.d.ts +0 -8
- package/dist/features/projects/projects-run-command.route.js +0 -21
- package/dist/features/projects/projects-run.route.d.ts +0 -51
- package/dist/features/projects/projects-run.route.js +0 -74
- package/dist/features/projects/projects-update.route.d.ts +0 -24
- package/dist/features/projects/projects-update.route.js +0 -81
- package/dist/features/projects/projects.creator.d.ts +0 -33
- package/dist/features/projects/projects.creator.js +0 -555
- package/dist/features/projects/projects.database.d.ts +0 -61
- package/dist/features/projects/projects.database.js +0 -212
- package/dist/features/projects/projects.manager.d.ts +0 -291
- package/dist/features/projects/projects.manager.js +0 -426
- package/dist/features/projects/projects.open-with.d.ts +0 -27
- package/dist/features/projects/projects.open-with.js +0 -156
- package/dist/features/projects/projects.routes.d.ts +0 -20
- package/dist/features/projects/projects.routes.js +0 -255
- package/dist/features/projects/terminal-session-manager.d.ts +0 -55
- package/dist/features/projects/terminal-session-manager.js +0 -90
- package/dist/features/providers/provider-resolver.d.ts +0 -13
- package/dist/features/providers/provider-resolver.js +0 -22
- package/dist/features/providers/providers-get-credits.route.d.ts +0 -15
- package/dist/features/providers/providers-get-credits.route.js +0 -51
- package/dist/features/providers/providers-get.route.d.ts +0 -16
- package/dist/features/providers/providers-get.route.js +0 -32
- package/dist/features/providers/providers-open-external.route.d.ts +0 -15
- package/dist/features/providers/providers-open-external.route.js +0 -49
- package/dist/features/providers/providers-post-bulk-keys.route.d.ts +0 -14
- package/dist/features/providers/providers-post-bulk-keys.route.js +0 -31
- package/dist/features/providers/providers-post-keys.route.d.ts +0 -14
- package/dist/features/providers/providers-post-keys.route.js +0 -25
- package/dist/features/providers/providers.routes.d.ts +0 -19
- package/dist/features/providers/providers.routes.js +0 -31
- package/dist/features/rules/rules-post.route.d.ts +0 -43
- package/dist/features/rules/rules-post.route.js +0 -89
- package/dist/features/rules/rules.manager.d.ts +0 -36
- package/dist/features/rules/rules.manager.js +0 -203
- package/dist/features/rules/rules.routes.d.ts +0 -12
- package/dist/features/rules/rules.routes.js +0 -13
- package/dist/features/run/run-get-running.route.d.ts +0 -15
- package/dist/features/run/run-get-running.route.js +0 -21
- package/dist/features/run/run-post-start.route.d.ts +0 -8
- package/dist/features/run/run-post-start.route.js +0 -21
- package/dist/features/run/run-post-stop.route.d.ts +0 -15
- package/dist/features/run/run-post-stop.route.js +0 -24
- package/dist/features/run/run-post-suggest.route.d.ts +0 -15
- package/dist/features/run/run-post-suggest.route.js +0 -21
- package/dist/features/run/run-put-command.route.d.ts +0 -15
- package/dist/features/run/run-put-command.route.js +0 -24
- package/dist/features/run/run.routes.d.ts +0 -19
- package/dist/features/run/run.routes.js +0 -31
- package/dist/features/scaffold/index.d.ts +0 -7
- package/dist/features/scaffold/index.js +0 -5
- package/dist/features/scaffold/scaffold-get-templates.route.d.ts +0 -27
- package/dist/features/scaffold/scaffold-get-templates.route.js +0 -17
- package/dist/features/scaffold/scaffold-post.route.d.ts +0 -8
- package/dist/features/scaffold/scaffold-post.route.js +0 -30
- package/dist/features/scaffold/scaffold.routes.d.ts +0 -10
- package/dist/features/scaffold/scaffold.routes.js +0 -16
- package/dist/features/scaffold/scaffold.runner.d.ts +0 -48
- package/dist/features/scaffold/scaffold.runner.js +0 -475
- package/dist/features/scaffold/scaffold.types.d.ts +0 -26
- package/dist/features/scaffold/scaffold.types.js +0 -5
- package/dist/features/skills/skills.activation.d.ts +0 -31
- package/dist/features/skills/skills.activation.js +0 -155
- package/dist/features/skills/skills.manager.d.ts +0 -35
- package/dist/features/skills/skills.manager.js +0 -251
- package/dist/features/slash-commands/slash-commands-delete.route.d.ts +0 -23
- package/dist/features/slash-commands/slash-commands-delete.route.js +0 -36
- package/dist/features/slash-commands/slash-commands-get.route.d.ts +0 -53
- package/dist/features/slash-commands/slash-commands-get.route.js +0 -54
- package/dist/features/slash-commands/slash-commands-post.route.d.ts +0 -39
- package/dist/features/slash-commands/slash-commands-post.route.js +0 -70
- package/dist/features/slash-commands/slash-commands-put.route.d.ts +0 -23
- package/dist/features/slash-commands/slash-commands-put.route.js +0 -36
- package/dist/features/slash-commands/slash-commands.manager.d.ts +0 -46
- package/dist/features/slash-commands/slash-commands.manager.js +0 -265
- package/dist/features/slash-commands/slash-commands.routes.d.ts +0 -13
- package/dist/features/slash-commands/slash-commands.routes.js +0 -20
- package/dist/features/threads/threads-ai-files.route.d.ts +0 -153
- package/dist/features/threads/threads-ai-files.route.js +0 -287
- package/dist/features/threads/threads-conversation-folder-path.route.d.ts +0 -14
- package/dist/features/threads/threads-conversation-folder-path.route.js +0 -23
- package/dist/features/threads/threads-create.route.d.ts +0 -22
- package/dist/features/threads/threads-create.route.js +0 -60
- package/dist/features/threads/threads-delete.route.d.ts +0 -25
- package/dist/features/threads/threads-delete.route.js +0 -35
- package/dist/features/threads/threads-files.route.d.ts +0 -15
- package/dist/features/threads/threads-files.route.js +0 -20
- package/dist/features/threads/threads-fix-comments.route.d.ts +0 -26
- package/dist/features/threads/threads-fix-comments.route.js +0 -45
- package/dist/features/threads/threads-get.route.d.ts +0 -30
- package/dist/features/threads/threads-get.route.js +0 -38
- package/dist/features/threads/threads-list.route.d.ts +0 -56
- package/dist/features/threads/threads-list.route.js +0 -58
- package/dist/features/threads/threads-messages.route.d.ts +0 -28
- package/dist/features/threads/threads-messages.route.js +0 -110
- package/dist/features/threads/threads-open.route.d.ts +0 -26
- package/dist/features/threads/threads-open.route.js +0 -62
- package/dist/features/threads/threads-select.route.d.ts +0 -25
- package/dist/features/threads/threads-select.route.js +0 -35
- package/dist/features/threads/threads-update.route.d.ts +0 -15
- package/dist/features/threads/threads-update.route.js +0 -30
- package/dist/features/threads/threads.database.d.ts +0 -68
- package/dist/features/threads/threads.database.js +0 -215
- package/dist/features/threads/threads.manager.d.ts +0 -204
- package/dist/features/threads/threads.manager.js +0 -505
- package/dist/features/threads/threads.routes.d.ts +0 -20
- package/dist/features/threads/threads.routes.js +0 -230
- package/dist/features/todos/todos.database.d.ts +0 -14
- package/dist/features/todos/todos.database.js +0 -31
- package/dist/features/updates/updates.routes.d.ts +0 -13
- package/dist/features/updates/updates.routes.js +0 -40
- package/dist/index.d.ts +0 -3
- package/dist/project-analyzer.d.ts +0 -26
- package/dist/project-analyzer.js +0 -307
- package/dist/server.d.ts +0 -12
- package/dist/server.js +0 -142
- package/dist/tools/agent-tool.d.ts +0 -49
- package/dist/tools/agent-tool.js +0 -131
- package/dist/tools/ask-user.d.ts +0 -25
- package/dist/tools/ask-user.js +0 -74
- package/dist/tools/ast-grep.d.ts +0 -28
- package/dist/tools/ast-grep.js +0 -273
- package/dist/tools/bash.d.ts +0 -33
- package/dist/tools/bash.js +0 -186
- package/dist/tools/edit-diff.d.ts +0 -24
- package/dist/tools/edit-diff.js +0 -136
- package/dist/tools/edit.d.ts +0 -28
- package/dist/tools/edit.js +0 -78
- package/dist/tools/find.d.ts +0 -31
- package/dist/tools/find.js +0 -117
- package/dist/tools/grep.d.ts +0 -37
- package/dist/tools/grep.js +0 -231
- package/dist/tools/index.d.ts +0 -93
- package/dist/tools/index.js +0 -110
- package/dist/tools/ls.d.ts +0 -31
- package/dist/tools/ls.js +0 -108
- package/dist/tools/mcp-tools.d.ts +0 -31
- package/dist/tools/mcp-tools.js +0 -59
- package/dist/tools/path-utils.d.ts +0 -14
- package/dist/tools/path-utils.js +0 -87
- package/dist/tools/read.d.ts +0 -27
- package/dist/tools/read.js +0 -86
- package/dist/tools/resolve-bin.d.ts +0 -5
- package/dist/tools/resolve-bin.js +0 -28
- package/dist/tools/shell.d.ts +0 -7
- package/dist/tools/shell.js +0 -143
- package/dist/tools/skill-reference-tool.d.ts +0 -30
- package/dist/tools/skill-reference-tool.js +0 -171
- package/dist/tools/skill-tool.d.ts +0 -33
- package/dist/tools/skill-tool.js +0 -213
- package/dist/tools/todo.d.ts +0 -20
- package/dist/tools/todo.js +0 -168
- package/dist/tools/tool-helpers.d.ts +0 -78
- package/dist/tools/tool-helpers.js +0 -109
- package/dist/tools/truncate.d.ts +0 -31
- package/dist/tools/truncate.js +0 -164
- package/dist/tools/write.d.ts +0 -21
- package/dist/tools/write.js +0 -65
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SQLite Database Operations for Threads
|
|
3
|
-
*
|
|
4
|
-
* This module handles all CRUD operations for threads in the SQLite database.
|
|
5
|
-
* Includes transaction support for atomic operations.
|
|
6
|
-
*/
|
|
7
|
-
import { markConversationHistoryAsDeleted } from '../conversations/conversations.database.js';
|
|
8
|
-
/**
|
|
9
|
-
* Insert a new thread into the database
|
|
10
|
-
* @param db SQLite database instance
|
|
11
|
-
* @param thread Thread to insert
|
|
12
|
-
*/
|
|
13
|
-
export async function insertThread(db, thread) {
|
|
14
|
-
try {
|
|
15
|
-
await db.execute(`
|
|
16
|
-
INSERT INTO threads (id, projectId, title, path, currentBranch, createdAt, enabledSkills, disabledSkills, currentConversationId, status)
|
|
17
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
18
|
-
`, [
|
|
19
|
-
thread.id,
|
|
20
|
-
thread.projectId,
|
|
21
|
-
thread.title,
|
|
22
|
-
thread.path,
|
|
23
|
-
thread.currentBranch,
|
|
24
|
-
thread.createdAt.toISOString(),
|
|
25
|
-
thread.enabledSkills ? JSON.stringify(thread.enabledSkills) : null,
|
|
26
|
-
thread.disabledSkills ? JSON.stringify(thread.disabledSkills) : null,
|
|
27
|
-
thread.currentConversationId ?? null,
|
|
28
|
-
"active", // Default status for new threads
|
|
29
|
-
]);
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
console.error("Failed to insert thread:", error);
|
|
33
|
-
throw error;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Update an existing thread in the database
|
|
38
|
-
* @param db SQLite database instance
|
|
39
|
-
* @param id Thread ID
|
|
40
|
-
* @param updates Partial thread object with fields to update
|
|
41
|
-
*/
|
|
42
|
-
export async function updateThread(db, id, updates) {
|
|
43
|
-
try {
|
|
44
|
-
const fields = [];
|
|
45
|
-
const values = [];
|
|
46
|
-
if (updates.title !== undefined) {
|
|
47
|
-
fields.push("title = ?");
|
|
48
|
-
values.push(updates.title);
|
|
49
|
-
}
|
|
50
|
-
if (updates.path !== undefined) {
|
|
51
|
-
fields.push("path = ?");
|
|
52
|
-
values.push(updates.path);
|
|
53
|
-
}
|
|
54
|
-
if (updates.currentBranch !== undefined) {
|
|
55
|
-
fields.push("currentBranch = ?");
|
|
56
|
-
values.push(updates.currentBranch);
|
|
57
|
-
}
|
|
58
|
-
if (updates.enabledSkills !== undefined) {
|
|
59
|
-
fields.push("enabledSkills = ?");
|
|
60
|
-
values.push(updates.enabledSkills ? JSON.stringify(updates.enabledSkills) : null);
|
|
61
|
-
}
|
|
62
|
-
if (updates.disabledSkills !== undefined) {
|
|
63
|
-
fields.push("disabledSkills = ?");
|
|
64
|
-
values.push(updates.disabledSkills ? JSON.stringify(updates.disabledSkills) : null);
|
|
65
|
-
}
|
|
66
|
-
if (updates.currentConversationId !== undefined) {
|
|
67
|
-
fields.push("currentConversationId = ?");
|
|
68
|
-
values.push(updates.currentConversationId ?? null);
|
|
69
|
-
}
|
|
70
|
-
if (updates.status !== undefined) {
|
|
71
|
-
fields.push("status = ?");
|
|
72
|
-
values.push(updates.status);
|
|
73
|
-
}
|
|
74
|
-
if (updates.diffComments !== undefined) {
|
|
75
|
-
fields.push("diffComments = ?");
|
|
76
|
-
values.push(updates.diffComments ? JSON.stringify(updates.diffComments) : null);
|
|
77
|
-
}
|
|
78
|
-
if (updates.model !== undefined) {
|
|
79
|
-
fields.push("model = ?");
|
|
80
|
-
values.push(updates.model ?? null);
|
|
81
|
-
}
|
|
82
|
-
if (updates.modelProvider !== undefined) {
|
|
83
|
-
fields.push("modelProvider = ?");
|
|
84
|
-
values.push(updates.modelProvider ?? null);
|
|
85
|
-
}
|
|
86
|
-
if (fields.length === 0) {
|
|
87
|
-
return; // No fields to update
|
|
88
|
-
}
|
|
89
|
-
values.push(id);
|
|
90
|
-
const sql = `UPDATE threads SET ${fields.join(", ")} WHERE id = ?`;
|
|
91
|
-
await db.execute(sql, values);
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
console.error("Failed to update thread:", error);
|
|
95
|
-
throw error;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Mark a thread as deleted (soft delete)
|
|
100
|
-
* @param db SQLite database instance
|
|
101
|
-
* @param id Thread ID
|
|
102
|
-
*/
|
|
103
|
-
export async function deleteThread(db, id) {
|
|
104
|
-
try {
|
|
105
|
-
// Mark conversation history as deleted
|
|
106
|
-
await markConversationHistoryAsDeleted(db, id);
|
|
107
|
-
// Mark thread as deleted instead of deleting it
|
|
108
|
-
await db.execute("UPDATE threads SET status = ? WHERE id = ?", ["deleted", id]);
|
|
109
|
-
}
|
|
110
|
-
catch (error) {
|
|
111
|
-
console.error("Failed to mark thread as deleted:", error);
|
|
112
|
-
throw error;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Get a single thread by ID
|
|
117
|
-
* @param db SQLite database instance
|
|
118
|
-
* @param id Thread ID
|
|
119
|
-
* @returns Thread object or null if not found
|
|
120
|
-
*/
|
|
121
|
-
export async function getThread(db, id) {
|
|
122
|
-
const result = await db.execute("SELECT * FROM threads WHERE id = ?", [id]);
|
|
123
|
-
const row = result.rows[0];
|
|
124
|
-
if (!row) {
|
|
125
|
-
return null;
|
|
126
|
-
}
|
|
127
|
-
return deserializeThread(row);
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Get all active threads from the database
|
|
131
|
-
* @param db SQLite database instance
|
|
132
|
-
* @returns Array of active threads only
|
|
133
|
-
*/
|
|
134
|
-
export async function getAllThreads(db) {
|
|
135
|
-
try {
|
|
136
|
-
const result = await db.execute("SELECT * FROM threads WHERE status = ? ORDER BY createdAt DESC", ["active"]);
|
|
137
|
-
const rows = result.rows;
|
|
138
|
-
return rows.map(deserializeThread);
|
|
139
|
-
}
|
|
140
|
-
catch (error) {
|
|
141
|
-
console.error("Failed to get all threads:", error);
|
|
142
|
-
throw error;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Get active threads for a specific project
|
|
147
|
-
* @param db SQLite database instance
|
|
148
|
-
* @param projectId Project ID
|
|
149
|
-
* @returns Array of active threads for project only
|
|
150
|
-
*/
|
|
151
|
-
export async function getThreadsByProjectId(db, projectId) {
|
|
152
|
-
try {
|
|
153
|
-
const result = await db.execute("SELECT * FROM threads WHERE projectId = ? AND status = ? ORDER BY createdAt DESC", [projectId, "active"]);
|
|
154
|
-
const rows = result.rows;
|
|
155
|
-
return rows.map(deserializeThread);
|
|
156
|
-
}
|
|
157
|
-
catch (error) {
|
|
158
|
-
console.error("Failed to get threads by project ID:", error);
|
|
159
|
-
throw error;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Deserialize a thread row from the database
|
|
164
|
-
* @param row Database row
|
|
165
|
-
* @returns Thread object
|
|
166
|
-
*/
|
|
167
|
-
function deserializeThread(row) {
|
|
168
|
-
return {
|
|
169
|
-
id: row.id,
|
|
170
|
-
projectId: row.projectId,
|
|
171
|
-
title: row.title,
|
|
172
|
-
path: row.path,
|
|
173
|
-
currentBranch: row.currentBranch,
|
|
174
|
-
createdAt: new Date(row.createdAt),
|
|
175
|
-
enabledSkills: row.enabledSkills ? JSON.parse(row.enabledSkills) : undefined,
|
|
176
|
-
disabledSkills: row.disabledSkills ? JSON.parse(row.disabledSkills) : undefined,
|
|
177
|
-
currentConversationId: row.currentConversationId ?? undefined,
|
|
178
|
-
status: row.status,
|
|
179
|
-
diffComments: row.diffComments ? JSON.parse(row.diffComments) : undefined,
|
|
180
|
-
model: row.model ?? undefined,
|
|
181
|
-
modelProvider: row.modelProvider ?? undefined,
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Check if a thread exists
|
|
186
|
-
* @param db SQLite database instance
|
|
187
|
-
* @param id Thread ID
|
|
188
|
-
* @returns True if thread exists
|
|
189
|
-
*/
|
|
190
|
-
export async function threadExists(db, id) {
|
|
191
|
-
const result = await db.execute("SELECT 1 FROM threads WHERE id = ? LIMIT 1", [id]);
|
|
192
|
-
return result.rows.length > 0;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Get thread count
|
|
196
|
-
* @param db SQLite database instance
|
|
197
|
-
* @returns Number of threads
|
|
198
|
-
*/
|
|
199
|
-
export async function getThreadCount(db) {
|
|
200
|
-
const result = await db.execute("SELECT COUNT(*) as count FROM threads");
|
|
201
|
-
return result.rows[0].count;
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Get thread count for a specific project
|
|
205
|
-
* @param db SQLite database instance
|
|
206
|
-
* @param projectId Project ID
|
|
207
|
-
* @returns Number of threads in the project
|
|
208
|
-
*/
|
|
209
|
-
export async function getThreadCountByProjectId(db, projectId) {
|
|
210
|
-
const result = await db.execute("SELECT COUNT(*) as count FROM threads WHERE projectId = ?", [
|
|
211
|
-
projectId,
|
|
212
|
-
]);
|
|
213
|
-
return result.rows[0].count;
|
|
214
|
-
}
|
|
215
|
-
//# sourceMappingURL=threads.database.js.map
|
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ThreadManager handles thread lifecycle and metadata management
|
|
3
|
-
*
|
|
4
|
-
* This manager is responsible for:
|
|
5
|
-
* - Creating new threads for existing projects
|
|
6
|
-
* - Managing thread metadata
|
|
7
|
-
* - Coordinating with GitManager for repository cloning
|
|
8
|
-
* - Providing CRUD operations for threads
|
|
9
|
-
* - Ensuring thread path uniqueness
|
|
10
|
-
*/
|
|
11
|
-
import { Thread, ThreadEvent } from "@tarsk/shared";
|
|
12
|
-
import { MetadataManager } from "../metadata/metadata.manager";
|
|
13
|
-
import { GitManager } from "../git/git.manager";
|
|
14
|
-
import type { ProcessingStateManager } from "../../agent/agent.processing-state-manager";
|
|
15
|
-
/**
|
|
16
|
-
* ThreadManager interface defines the contract for thread operations
|
|
17
|
-
*/
|
|
18
|
-
export interface ThreadManager {
|
|
19
|
-
/**
|
|
20
|
-
* Creates a new thread for an existing project
|
|
21
|
-
* @param projectId - The parent project ID
|
|
22
|
-
* @param title - Optional thread title (auto-generated if not provided)
|
|
23
|
-
* @yields ThreadEvent objects during the creation process
|
|
24
|
-
*/
|
|
25
|
-
createThread(projectId: string, title?: string): AsyncGenerator<ThreadEvent>;
|
|
26
|
-
/**
|
|
27
|
-
* Gets a thread by ID
|
|
28
|
-
* @param threadId - The thread ID
|
|
29
|
-
* @returns The thread or null if not found
|
|
30
|
-
*/
|
|
31
|
-
getThread(threadId: string): Promise<Thread | null>;
|
|
32
|
-
/**
|
|
33
|
-
* Lists all threads for a specific project
|
|
34
|
-
* @param projectId - The project ID to filter threads
|
|
35
|
-
* @returns Array of threads for the project
|
|
36
|
-
*/
|
|
37
|
-
listThreads(projectId: string): Promise<Thread[]>;
|
|
38
|
-
/**
|
|
39
|
-
* Deletes a thread and removes its directory
|
|
40
|
-
* @param threadId - The thread ID to delete
|
|
41
|
-
*/
|
|
42
|
-
deleteThread(threadId: string): Promise<void>;
|
|
43
|
-
/**
|
|
44
|
-
* Updates a thread's metadata with partial data
|
|
45
|
-
* @param threadId - The thread ID to update
|
|
46
|
-
* @param updates - Partial thread data to merge
|
|
47
|
-
*/
|
|
48
|
-
updateThread(threadId: string, updates: Partial<Omit<Thread, "id">>): Promise<void>;
|
|
49
|
-
/**
|
|
50
|
-
* Selects a thread as the active thread
|
|
51
|
-
* @param threadId - The thread ID to select
|
|
52
|
-
*/
|
|
53
|
-
selectThread(threadId: string): Promise<void>;
|
|
54
|
-
/**
|
|
55
|
-
* Gets the currently selected thread ID
|
|
56
|
-
* @returns The selected thread ID or null
|
|
57
|
-
*/
|
|
58
|
-
getSelectedThreadId(): Promise<string | null>;
|
|
59
|
-
/**
|
|
60
|
-
* Lists all files in a thread's directory (tracked and untracked, but not ignored)
|
|
61
|
-
* @param threadId - The thread ID
|
|
62
|
-
* @returns Array of file paths relative to the thread root
|
|
63
|
-
*/
|
|
64
|
-
listFiles(threadId: string): Promise<string[]>;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* ThreadManagerImpl provides the implementation for thread operations
|
|
68
|
-
*/
|
|
69
|
-
export declare class ThreadManagerImpl implements ThreadManager {
|
|
70
|
-
private metadataManager;
|
|
71
|
-
private gitManager;
|
|
72
|
-
private processingStateManager?;
|
|
73
|
-
private rootFolder;
|
|
74
|
-
/**
|
|
75
|
-
* Create a new ThreadManager
|
|
76
|
-
* @param metadataManager - Manager for persisting metadata
|
|
77
|
-
* @param gitManager - Manager for git operations
|
|
78
|
-
* @param processingStateManager - Optional manager for processing state (for spinner during clone)
|
|
79
|
-
* @param rootFolder - Base directory where threads will be stored
|
|
80
|
-
*
|
|
81
|
-
* Requirements:
|
|
82
|
-
* - 2.1 - WHEN a user creates a new Thread for a Project, THE CLI SHALL create a new clone of the Project's git repository
|
|
83
|
-
* - 2.4 - THE System SHALL maintain a title for each Thread
|
|
84
|
-
*/
|
|
85
|
-
constructor(metadataManager: MetadataManager, gitManager: GitManager, processingStateManager?: ProcessingStateManager, rootFolder?: string);
|
|
86
|
-
/**
|
|
87
|
-
* Creates a new thread for an existing project
|
|
88
|
-
*
|
|
89
|
-
* This method:
|
|
90
|
-
* 1. Validates that the project exists
|
|
91
|
-
* 2. Generates a unique thread ID
|
|
92
|
-
* 3. Gets the project's git URL
|
|
93
|
-
* 4. Generates a unique thread path
|
|
94
|
-
* 5. Delegates to GitManager for cloning
|
|
95
|
-
* 6. Saves thread metadata
|
|
96
|
-
* 7. Updates the project's thread list
|
|
97
|
-
* 8. Yields progress events during the operation
|
|
98
|
-
*
|
|
99
|
-
* @param projectId - The parent project ID
|
|
100
|
-
* @param title - Optional thread title (auto-generated if not provided)
|
|
101
|
-
* @yields ThreadEvent objects during the creation process
|
|
102
|
-
*
|
|
103
|
-
* Requirements:
|
|
104
|
-
* - 2.1 - WHEN a user creates a new Thread for a Project, THE CLI SHALL create a new clone of the Project's git repository
|
|
105
|
-
* - 2.2 - WHEN a Thread is created, THE App SHALL display it under its parent Project in the Side_Panel
|
|
106
|
-
* - 2.4 - THE System SHALL maintain a title for each Thread
|
|
107
|
-
* - 7.4 - THE CLI SHALL ensure each Thread clone is stored in a unique directory path
|
|
108
|
-
*/
|
|
109
|
-
createThread(projectId: string, title?: string): AsyncGenerator<ThreadEvent>;
|
|
110
|
-
/**
|
|
111
|
-
* Gets a thread by ID
|
|
112
|
-
* @param threadId - The thread ID
|
|
113
|
-
* @returns The thread or null if not found
|
|
114
|
-
*/
|
|
115
|
-
getThread(threadId: string): Promise<Thread | null>;
|
|
116
|
-
/**
|
|
117
|
-
* Lists all threads for a specific project
|
|
118
|
-
* @param projectId - The project ID to filter threads
|
|
119
|
-
* @returns Array of threads for the project
|
|
120
|
-
*
|
|
121
|
-
* Requirements:
|
|
122
|
-
* - 2.1 - WHEN a Thread is created, THE App SHALL display it under its parent Project in the Side_Panel
|
|
123
|
-
*/
|
|
124
|
-
listThreads(projectId: string): Promise<Thread[]>;
|
|
125
|
-
/**
|
|
126
|
-
* Deletes a thread and removes its directory
|
|
127
|
-
*
|
|
128
|
-
* This method:
|
|
129
|
-
* 1. Finds the thread by ID
|
|
130
|
-
* 2. Removes the thread directory from filesystem
|
|
131
|
-
* 3. Removes the thread from metadata
|
|
132
|
-
* 4. Updates the parent project's thread list
|
|
133
|
-
* 5. Marks the thread as deleted in the database
|
|
134
|
-
*
|
|
135
|
-
* @param threadId - The thread ID to delete
|
|
136
|
-
* @throws Error if thread not found
|
|
137
|
-
*
|
|
138
|
-
* Requirements:
|
|
139
|
-
* - 2.3 - WHEN a user deletes a Thread, THE System SHALL remove the Thread's folder and update the Side_Panel display
|
|
140
|
-
* - 7.5 - WHEN a Thread is deleted, THE CLI SHALL remove the associated git repository clone from the filesystem
|
|
141
|
-
*/
|
|
142
|
-
deleteThread(threadId: string): Promise<void>;
|
|
143
|
-
/**
|
|
144
|
-
* Updates a thread's metadata with partial data
|
|
145
|
-
*
|
|
146
|
-
* This method loads all threads, finds the target, merges the updates,
|
|
147
|
-
* and persists the result.
|
|
148
|
-
*
|
|
149
|
-
* @param threadId - The thread ID to update
|
|
150
|
-
* @param updates - Partial thread data to merge
|
|
151
|
-
* @throws Error if thread not found or model format is invalid
|
|
152
|
-
*/
|
|
153
|
-
updateThread(threadId: string, updates: Partial<Omit<Thread, "id">>): Promise<void>;
|
|
154
|
-
/**
|
|
155
|
-
* Selects a thread as the active thread
|
|
156
|
-
*
|
|
157
|
-
* @param threadId - The thread ID to select
|
|
158
|
-
*/
|
|
159
|
-
selectThread(threadId: string): Promise<void>;
|
|
160
|
-
/**
|
|
161
|
-
* Gets the currently selected thread ID
|
|
162
|
-
*
|
|
163
|
-
* @returns The selected thread ID or null
|
|
164
|
-
*/
|
|
165
|
-
getSelectedThreadId(): Promise<string | null>;
|
|
166
|
-
/**
|
|
167
|
-
* Runs a setup script in the given path and yields progress events
|
|
168
|
-
* @param threadPath - Path to run the command in
|
|
169
|
-
* @param commandLine - The command to execute
|
|
170
|
-
* @yields ThreadEvent progress events
|
|
171
|
-
*/
|
|
172
|
-
private runSetupScript;
|
|
173
|
-
/**
|
|
174
|
-
* Generates a unique thread path
|
|
175
|
-
*
|
|
176
|
-
* Path format: {dataDir}/{threadId}
|
|
177
|
-
*
|
|
178
|
-
* This ensures thread paths are unique across all projects and threads.
|
|
179
|
-
*
|
|
180
|
-
* @param projectPath - The parent project path
|
|
181
|
-
* @param threadId - The thread ID
|
|
182
|
-
* @returns The absolute path to the thread folder
|
|
183
|
-
*
|
|
184
|
-
* Requirements:
|
|
185
|
-
* - 7.4 - THE CLI SHALL ensure each Thread clone is stored in a unique directory path
|
|
186
|
-
*/
|
|
187
|
-
private generateThreadPath;
|
|
188
|
-
/**
|
|
189
|
-
* Generates a thread title if not provided
|
|
190
|
-
*
|
|
191
|
-
* Format: {word1}-{word2} where words are random from a curated list
|
|
192
|
-
*
|
|
193
|
-
* @param existingTitles - Set of titles already in use for this project
|
|
194
|
-
* @returns The generated thread title (e.g. bouncy-panda, sparkly-taco)
|
|
195
|
-
*/
|
|
196
|
-
private generateThreadTitle;
|
|
197
|
-
/**
|
|
198
|
-
* Lists all files in a thread's directory (tracked and untracked, but not ignored)
|
|
199
|
-
* @param threadId - The thread ID
|
|
200
|
-
* @returns Array of file paths relative to the thread root
|
|
201
|
-
*/
|
|
202
|
-
listFiles(threadId: string): Promise<string[]>;
|
|
203
|
-
}
|
|
204
|
-
//# sourceMappingURL=threads.manager.d.ts.map
|