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,56 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GET /api/threads?projectId=xxx
|
|
3
|
-
* List all threads for a specific project
|
|
4
|
-
*
|
|
5
|
-
* Query parameters:
|
|
6
|
-
* - projectId (required): The project ID to filter threads
|
|
7
|
-
*
|
|
8
|
-
* Response:
|
|
9
|
-
* [
|
|
10
|
-
* {
|
|
11
|
-
* "id": "uuid",
|
|
12
|
-
* "projectId": "uuid",
|
|
13
|
-
* "title": "Thread title",
|
|
14
|
-
* "path": "/path/to/thread",
|
|
15
|
-
* "currentBranch": "branch-name",
|
|
16
|
-
* "createdAt": "2024-01-01T00:00:00Z"
|
|
17
|
-
* }
|
|
18
|
-
* ]
|
|
19
|
-
*
|
|
20
|
-
* Requirements:
|
|
21
|
-
* - 6.3 - THE CLI SHALL expose REST API endpoints for Thread operations
|
|
22
|
-
*/
|
|
23
|
-
import { Context } from "hono";
|
|
24
|
-
import type { ThreadManager } from "../threads/threads.manager.js";
|
|
25
|
-
import type { Database } from "../../database/database.types.js";
|
|
26
|
-
export declare function handleListThreads(c: Context, threadManager: ThreadManager, db?: Database): Promise<(Response & import("hono").TypedResponse<{
|
|
27
|
-
error: {
|
|
28
|
-
code: string;
|
|
29
|
-
message: string;
|
|
30
|
-
details?: import("hono/utils/types").JSONValue | undefined;
|
|
31
|
-
timestamp: string;
|
|
32
|
-
};
|
|
33
|
-
}, any, "json">) | (Response & import("hono").TypedResponse<{
|
|
34
|
-
id: string;
|
|
35
|
-
projectId: string;
|
|
36
|
-
title: string;
|
|
37
|
-
path: string;
|
|
38
|
-
currentBranch: string;
|
|
39
|
-
createdAt: string;
|
|
40
|
-
enabledSkills?: string[] | undefined;
|
|
41
|
-
disabledSkills?: string[] | undefined;
|
|
42
|
-
currentConversationId?: string | undefined;
|
|
43
|
-
status?: "active" | "deleted" | undefined;
|
|
44
|
-
diffComments?: {
|
|
45
|
-
id: string;
|
|
46
|
-
filePath: string;
|
|
47
|
-
fileIndex: number;
|
|
48
|
-
lineNumber: number;
|
|
49
|
-
lineContent: string;
|
|
50
|
-
comment: string;
|
|
51
|
-
side: "original" | "modified";
|
|
52
|
-
}[] | undefined;
|
|
53
|
-
model?: string | undefined;
|
|
54
|
-
modelProvider?: string | undefined;
|
|
55
|
-
}[], import("hono/utils/http-status").ContentfulStatusCode, "json">)>;
|
|
56
|
-
//# sourceMappingURL=threads-list.route.d.ts.map
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GET /api/threads?projectId=xxx
|
|
3
|
-
* List all threads for a specific project
|
|
4
|
-
*
|
|
5
|
-
* Query parameters:
|
|
6
|
-
* - projectId (required): The project ID to filter threads
|
|
7
|
-
*
|
|
8
|
-
* Response:
|
|
9
|
-
* [
|
|
10
|
-
* {
|
|
11
|
-
* "id": "uuid",
|
|
12
|
-
* "projectId": "uuid",
|
|
13
|
-
* "title": "Thread title",
|
|
14
|
-
* "path": "/path/to/thread",
|
|
15
|
-
* "currentBranch": "branch-name",
|
|
16
|
-
* "createdAt": "2024-01-01T00:00:00Z"
|
|
17
|
-
* }
|
|
18
|
-
* ]
|
|
19
|
-
*
|
|
20
|
-
* Requirements:
|
|
21
|
-
* - 6.3 - THE CLI SHALL expose REST API endpoints for Thread operations
|
|
22
|
-
*/
|
|
23
|
-
import { errorResponse } from "../../core/route-helpers.js";
|
|
24
|
-
import { ErrorCodes } from "../../core/error-responses.js";
|
|
25
|
-
import { getGitStatusCacheBulk } from "../git/git-status-cache.database.js";
|
|
26
|
-
function computeGitStatusDot(status) {
|
|
27
|
-
if (status.hasChanges)
|
|
28
|
-
return true;
|
|
29
|
-
if (status.commitsAheadOfDefault && !status.prExists)
|
|
30
|
-
return true;
|
|
31
|
-
if (status.status === "Behind" || status.status === "Diverged")
|
|
32
|
-
return true;
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
export async function handleListThreads(c, threadManager, db) {
|
|
36
|
-
try {
|
|
37
|
-
const projectId = c.req.query("projectId");
|
|
38
|
-
// Validate projectId is provided
|
|
39
|
-
if (!projectId) {
|
|
40
|
-
return errorResponse(c, ErrorCodes.INVALID_REQUEST, "projectId query parameter is required", 400);
|
|
41
|
-
}
|
|
42
|
-
const threads = await threadManager.listThreads(projectId);
|
|
43
|
-
if (!db) {
|
|
44
|
-
return c.json(threads);
|
|
45
|
-
}
|
|
46
|
-
const statusCache = await getGitStatusCacheBulk(db, threads.map((t) => t.id));
|
|
47
|
-
const threadsWithStatus = threads.map((thread) => {
|
|
48
|
-
const cached = statusCache.get(thread.id);
|
|
49
|
-
const gitStatusDot = cached ? computeGitStatusDot(cached) : false;
|
|
50
|
-
return { ...thread, gitStatusDot };
|
|
51
|
-
});
|
|
52
|
-
return c.json(threadsWithStatus);
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
return errorResponse(c, ErrorCodes.LIST_THREADS_ERROR, "Failed to list threads", 500, error instanceof Error ? error.message : String(error));
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=threads-list.route.js.map
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GET /api/threads/:id/messages
|
|
3
|
-
* Get chat history for a thread
|
|
4
|
-
*/
|
|
5
|
-
import { Context } from "hono";
|
|
6
|
-
import type { ThreadManager } from "../threads/threads.manager.js";
|
|
7
|
-
import type { ConversationManager } from "../conversations/conversations.manager.js";
|
|
8
|
-
export declare function handleGetThreadMessages(c: Context, threadManager: ThreadManager, conversationManager: ConversationManager): Promise<(Response & import("hono").TypedResponse<{
|
|
9
|
-
error: {
|
|
10
|
-
code: string;
|
|
11
|
-
message: string;
|
|
12
|
-
details?: import("hono/utils/types").JSONValue | undefined;
|
|
13
|
-
timestamp: string;
|
|
14
|
-
};
|
|
15
|
-
}, any, "json">) | (Response & import("hono").TypedResponse<{
|
|
16
|
-
messageId: string;
|
|
17
|
-
sender: "user" | "agent";
|
|
18
|
-
content: string;
|
|
19
|
-
contentType: "text" | "markdown";
|
|
20
|
-
timestamp: string;
|
|
21
|
-
model?: string | undefined;
|
|
22
|
-
attachments?: {
|
|
23
|
-
fileName: string;
|
|
24
|
-
content: string;
|
|
25
|
-
size?: number | undefined;
|
|
26
|
-
}[] | undefined;
|
|
27
|
-
}[], import("hono/utils/http-status").ContentfulStatusCode, "json">)>;
|
|
28
|
-
//# sourceMappingURL=threads-messages.route.d.ts.map
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* GET /api/threads/:id/messages
|
|
3
|
-
* Get chat history for a thread
|
|
4
|
-
*/
|
|
5
|
-
import { extractAssistantContent, parseAssistantContentBlocks, } from "../conversations/conversations.content.js";
|
|
6
|
-
import { errorResponse } from "../../core/route-helpers.js";
|
|
7
|
-
import { ErrorCodes } from "../../core/error-responses.js";
|
|
8
|
-
/**
|
|
9
|
-
* Builds content for the UI that includes reasoning, tool_use, tool results, and final answer.
|
|
10
|
-
* Returns a JSON string of content blocks so the frontend can show reasoning, tool progress, and answer.
|
|
11
|
-
*/
|
|
12
|
-
const buildStructuredContentFromEvents = (events, fallbackContent) => {
|
|
13
|
-
if (!events || events.length === 0) {
|
|
14
|
-
return fallbackContent;
|
|
15
|
-
}
|
|
16
|
-
// Prefer assistant message content when it is already a structured array (reasoning, text, tool_use)
|
|
17
|
-
for (const event of events) {
|
|
18
|
-
if (event.type === "message" &&
|
|
19
|
-
event.role === "assistant" &&
|
|
20
|
-
typeof event.content === "string") {
|
|
21
|
-
const assistantBlocks = parseAssistantContentBlocks(event.content);
|
|
22
|
-
if (assistantBlocks && assistantBlocks.length > 0) {
|
|
23
|
-
return JSON.stringify(assistantBlocks);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
const blocks = [];
|
|
28
|
-
for (const event of events) {
|
|
29
|
-
if (event.type === "message" && event.role === "tool" && typeof event.content === "string") {
|
|
30
|
-
try {
|
|
31
|
-
const parsed = JSON.parse(event.content.trim());
|
|
32
|
-
if (Array.isArray(parsed)) {
|
|
33
|
-
for (const item of parsed) {
|
|
34
|
-
if (item && typeof item === "object" && "type" in item) {
|
|
35
|
-
blocks.push(item);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
else if (parsed && typeof parsed === "object" && "type" in parsed) {
|
|
40
|
-
blocks.push(parsed);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
blocks.push({ type: "text", text: event.content });
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
const finalText = extractAssistantContent(events, fallbackContent);
|
|
49
|
-
if (finalText.trim().length > 0) {
|
|
50
|
-
blocks.push({ type: "text", text: finalText });
|
|
51
|
-
}
|
|
52
|
-
if (blocks.length === 0) {
|
|
53
|
-
return fallbackContent;
|
|
54
|
-
}
|
|
55
|
-
if (blocks.length === 1 && blocks[0].type === "text" && "text" in blocks[0]) {
|
|
56
|
-
return typeof blocks[0].text === "string" ? blocks[0].text : fallbackContent;
|
|
57
|
-
}
|
|
58
|
-
return JSON.stringify(blocks);
|
|
59
|
-
};
|
|
60
|
-
export async function handleGetThreadMessages(c, threadManager, conversationManager) {
|
|
61
|
-
try {
|
|
62
|
-
const threadId = c.req.param("id");
|
|
63
|
-
if (!threadId) {
|
|
64
|
-
return errorResponse(c, ErrorCodes.INVALID_REQUEST, "Thread ID is required", 400);
|
|
65
|
-
}
|
|
66
|
-
const thread = await threadManager.getThread(threadId);
|
|
67
|
-
if (!thread) {
|
|
68
|
-
return errorResponse(c, ErrorCodes.THREAD_NOT_FOUND, `Thread not found: ${threadId}`, 404);
|
|
69
|
-
}
|
|
70
|
-
// Load messages for the current conversation only
|
|
71
|
-
const history = thread.currentConversationId
|
|
72
|
-
? await conversationManager.getConversationHistoryByConversationId(thread.path, thread.currentConversationId)
|
|
73
|
-
: await conversationManager.getConversationHistory(thread.path);
|
|
74
|
-
if (!history || history.messages.length === 0) {
|
|
75
|
-
return c.json([]);
|
|
76
|
-
}
|
|
77
|
-
const messages = history.messages.flatMap((message) => {
|
|
78
|
-
const userMessage = {
|
|
79
|
-
messageId: `user-${message.id}`,
|
|
80
|
-
sender: "user",
|
|
81
|
-
content: message.request.message,
|
|
82
|
-
contentType: "text",
|
|
83
|
-
timestamp: message.timestamp,
|
|
84
|
-
model: message.request.model,
|
|
85
|
-
attachments: message.request.attachments?.map((attachment) => ({
|
|
86
|
-
fileName: attachment.name,
|
|
87
|
-
content: attachment.content,
|
|
88
|
-
size: attachment.size,
|
|
89
|
-
})),
|
|
90
|
-
};
|
|
91
|
-
if (!message.response) {
|
|
92
|
-
return [userMessage];
|
|
93
|
-
}
|
|
94
|
-
const agentMessage = {
|
|
95
|
-
messageId: `agent-${message.id}`,
|
|
96
|
-
sender: "agent",
|
|
97
|
-
content: buildStructuredContentFromEvents(message.response.events, message.response.content),
|
|
98
|
-
contentType: "markdown",
|
|
99
|
-
timestamp: message.response.completedAt,
|
|
100
|
-
model: message.request.model,
|
|
101
|
-
};
|
|
102
|
-
return [userMessage, agentMessage];
|
|
103
|
-
});
|
|
104
|
-
return c.json(messages);
|
|
105
|
-
}
|
|
106
|
-
catch (error) {
|
|
107
|
-
return errorResponse(c, ErrorCodes.GET_THREAD_MESSAGES_ERROR, "Failed to load thread messages", 500, error instanceof Error ? error.message : String(error));
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=threads-messages.route.js.map
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* POST /api/threads/:id/open
|
|
3
|
-
* Open a thread in the specified program
|
|
4
|
-
*
|
|
5
|
-
* Request body:
|
|
6
|
-
* {
|
|
7
|
-
* "program": "VS Code" | "Cursor" | "Windsurf" | "Xcode" | "Android Studio" | "Kiro"
|
|
8
|
-
* }
|
|
9
|
-
*
|
|
10
|
-
* Response:
|
|
11
|
-
* {
|
|
12
|
-
* "success": true,
|
|
13
|
-
* "message": "Thread opened in VS Code"
|
|
14
|
-
* }
|
|
15
|
-
*/
|
|
16
|
-
import { Context } from "hono";
|
|
17
|
-
import type { ThreadManager } from "../threads/threads.manager.js";
|
|
18
|
-
export declare function handleOpenThread(c: Context, threadManager: ThreadManager): Promise<(Response & import("hono").TypedResponse<{
|
|
19
|
-
error: {
|
|
20
|
-
code: string;
|
|
21
|
-
message: string;
|
|
22
|
-
details?: import("hono/utils/types").JSONValue | undefined;
|
|
23
|
-
timestamp: string;
|
|
24
|
-
};
|
|
25
|
-
}, any, "json">) | (Response & import("hono").TypedResponse<import("hono/utils/types").JSONValue, any, "json">)>;
|
|
26
|
-
//# sourceMappingURL=threads-open.route.d.ts.map
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* POST /api/threads/:id/open
|
|
3
|
-
* Open a thread in the specified program
|
|
4
|
-
*
|
|
5
|
-
* Request body:
|
|
6
|
-
* {
|
|
7
|
-
* "program": "VS Code" | "Cursor" | "Windsurf" | "Xcode" | "Android Studio" | "Kiro"
|
|
8
|
-
* }
|
|
9
|
-
*
|
|
10
|
-
* Response:
|
|
11
|
-
* {
|
|
12
|
-
* "success": true,
|
|
13
|
-
* "message": "Thread opened in VS Code"
|
|
14
|
-
* }
|
|
15
|
-
*/
|
|
16
|
-
import { PROGRAM_APP_NAMES } from "@tarsk/shared";
|
|
17
|
-
import { validateProgram } from "../projects/projects.open-with.js";
|
|
18
|
-
import open from "open";
|
|
19
|
-
import { errorResponse, successResponse } from "../../core/route-helpers.js";
|
|
20
|
-
import { ErrorCodes } from "../../core/error-responses.js";
|
|
21
|
-
export async function handleOpenThread(c, threadManager) {
|
|
22
|
-
try {
|
|
23
|
-
const threadId = c.req.param("id");
|
|
24
|
-
const body = await c.req.json();
|
|
25
|
-
const { program } = body;
|
|
26
|
-
if (!threadId) {
|
|
27
|
-
return errorResponse(c, ErrorCodes.INVALID_REQUEST, "Thread ID is required", 400);
|
|
28
|
-
}
|
|
29
|
-
const programError = validateProgram(program);
|
|
30
|
-
if (programError) {
|
|
31
|
-
return errorResponse(c, ErrorCodes.INVALID_REQUEST, programError, 400);
|
|
32
|
-
}
|
|
33
|
-
const thread = await threadManager.getThread(threadId);
|
|
34
|
-
if (!thread) {
|
|
35
|
-
return errorResponse(c, ErrorCodes.THREAD_NOT_FOUND, `Thread not found: ${threadId}`, 404);
|
|
36
|
-
}
|
|
37
|
-
const threadPath = thread.path;
|
|
38
|
-
// Ensure program is defined and is a string before indexing
|
|
39
|
-
const appNames = typeof program === "string" ? PROGRAM_APP_NAMES[program] : undefined;
|
|
40
|
-
if (!appNames) {
|
|
41
|
-
return errorResponse(c, ErrorCodes.OPEN_PROGRAM_ERROR, `Unsupported program: ${program}`, 500);
|
|
42
|
-
}
|
|
43
|
-
console.log("[POST /api/threads/:id/open] threadId=%s program=%s threadPath=%s", threadId, program, threadPath);
|
|
44
|
-
try {
|
|
45
|
-
await open(threadPath, {
|
|
46
|
-
app: { name: appNames },
|
|
47
|
-
});
|
|
48
|
-
console.log("[POST /api/threads/:id/open] Successfully opened thread in %s", program);
|
|
49
|
-
}
|
|
50
|
-
catch (openError) {
|
|
51
|
-
const message = openError instanceof Error ? openError.message : String(openError);
|
|
52
|
-
console.error("[POST /api/threads/:id/open] Failed to open thread:", message);
|
|
53
|
-
return errorResponse(c, ErrorCodes.OPEN_PROGRAM_ERROR, `Failed to open ${program}: ${message}`, 500);
|
|
54
|
-
}
|
|
55
|
-
return successResponse(c, { success: true, message: `Thread opened in ${program}` });
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
59
|
-
return errorResponse(c, ErrorCodes.OPEN_PROGRAM_ERROR, "Failed to open thread", 500, errorMessage);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=threads-open.route.js.map
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* POST /api/threads/:id/select
|
|
3
|
-
* Select a thread as the active thread
|
|
4
|
-
*
|
|
5
|
-
* Response:
|
|
6
|
-
* {
|
|
7
|
-
* "success": true,
|
|
8
|
-
* "message": "Thread selected successfully",
|
|
9
|
-
* "threadId": "uuid"
|
|
10
|
-
* }
|
|
11
|
-
*
|
|
12
|
-
* Requirements:
|
|
13
|
-
* - 6.3 - THE CLI SHALL expose REST API endpoints for Thread operations
|
|
14
|
-
*/
|
|
15
|
-
import { Context } from "hono";
|
|
16
|
-
import type { ThreadManager } from "../threads/threads.manager.js";
|
|
17
|
-
export declare function handleSelectThread(c: Context, threadManager: ThreadManager): Promise<(Response & import("hono").TypedResponse<{
|
|
18
|
-
error: {
|
|
19
|
-
code: string;
|
|
20
|
-
message: string;
|
|
21
|
-
details?: import("hono/utils/types").JSONValue | undefined;
|
|
22
|
-
timestamp: string;
|
|
23
|
-
};
|
|
24
|
-
}, any, "json">) | (Response & import("hono").TypedResponse<import("hono/utils/types").JSONValue, any, "json">)>;
|
|
25
|
-
//# sourceMappingURL=threads-select.route.d.ts.map
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* POST /api/threads/:id/select
|
|
3
|
-
* Select a thread as the active thread
|
|
4
|
-
*
|
|
5
|
-
* Response:
|
|
6
|
-
* {
|
|
7
|
-
* "success": true,
|
|
8
|
-
* "message": "Thread selected successfully",
|
|
9
|
-
* "threadId": "uuid"
|
|
10
|
-
* }
|
|
11
|
-
*
|
|
12
|
-
* Requirements:
|
|
13
|
-
* - 6.3 - THE CLI SHALL expose REST API endpoints for Thread operations
|
|
14
|
-
*/
|
|
15
|
-
import { errorResponse, successResponse } from "../../core/route-helpers.js";
|
|
16
|
-
import { ErrorCodes } from "../../core/error-responses.js";
|
|
17
|
-
export async function handleSelectThread(c, threadManager) {
|
|
18
|
-
try {
|
|
19
|
-
const threadId = c.req.param("id");
|
|
20
|
-
if (!threadId) {
|
|
21
|
-
return errorResponse(c, ErrorCodes.INVALID_REQUEST, "Thread ID is required", 400);
|
|
22
|
-
}
|
|
23
|
-
// Verify thread exists
|
|
24
|
-
const thread = await threadManager.getThread(threadId);
|
|
25
|
-
if (!thread) {
|
|
26
|
-
return errorResponse(c, ErrorCodes.THREAD_NOT_FOUND, `Thread not found: ${threadId}`, 404);
|
|
27
|
-
}
|
|
28
|
-
await threadManager.selectThread(threadId);
|
|
29
|
-
return successResponse(c, { success: true, message: "Thread selected successfully", threadId });
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
return errorResponse(c, ErrorCodes.SELECT_THREAD_ERROR, "Failed to select thread", 500, error instanceof Error ? error.message : String(error));
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=threads-select.route.js.map
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PATCH /api/threads/:id
|
|
3
|
-
* Update thread metadata
|
|
4
|
-
*/
|
|
5
|
-
import { Context } from "hono";
|
|
6
|
-
import type { ThreadManager } from "../threads/threads.manager.js";
|
|
7
|
-
export declare function handleUpdateThread(c: Context, threadManager: ThreadManager): Promise<(Response & import("hono").TypedResponse<{
|
|
8
|
-
error: {
|
|
9
|
-
code: string;
|
|
10
|
-
message: string;
|
|
11
|
-
details?: import("hono/utils/types").JSONValue | undefined;
|
|
12
|
-
timestamp: string;
|
|
13
|
-
};
|
|
14
|
-
}, any, "json">) | (Response & import("hono").TypedResponse<import("hono/utils/types").JSONValue, any, "json">)>;
|
|
15
|
-
//# sourceMappingURL=threads-update.route.d.ts.map
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PATCH /api/threads/:id
|
|
3
|
-
* Update thread metadata
|
|
4
|
-
*/
|
|
5
|
-
import { errorResponse, successResponse } from "../../core/route-helpers.js";
|
|
6
|
-
import { ErrorCodes } from "../../core/error-responses.js";
|
|
7
|
-
export async function handleUpdateThread(c, threadManager) {
|
|
8
|
-
try {
|
|
9
|
-
const threadId = c.req.param("id");
|
|
10
|
-
const body = await c.req.json();
|
|
11
|
-
if (!threadId) {
|
|
12
|
-
return errorResponse(c, ErrorCodes.INVALID_REQUEST, "Thread ID is required", 400);
|
|
13
|
-
}
|
|
14
|
-
// Validate model format if present
|
|
15
|
-
if (body.model && !body.modelProvider) {
|
|
16
|
-
return errorResponse(c, ErrorCodes.INVALID_REQUEST, `Invalid model format (model=${body.model}, provider=${body.provider}): Model must be in format "{provider}/{model}" (e.g., "openrouter/claude-3-5-sonnet-20241022").`, 400);
|
|
17
|
-
}
|
|
18
|
-
// Validate modelProvider format if present
|
|
19
|
-
if (body.modelProvider && typeof body.modelProvider !== "string") {
|
|
20
|
-
return errorResponse(c, ErrorCodes.INVALID_REQUEST, "modelProvider must be a string", 400);
|
|
21
|
-
}
|
|
22
|
-
await threadManager.updateThread(threadId, body);
|
|
23
|
-
return successResponse(c, { success: true, message: "Thread updated successfully" });
|
|
24
|
-
}
|
|
25
|
-
catch (error) {
|
|
26
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
27
|
-
return errorResponse(c, ErrorCodes.UPDATE_THREAD_ERROR, "Failed to update thread", 500, errorMessage);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=threads-update.route.js.map
|
|
@@ -1,68 +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 { Thread } from "@tarsk/shared";
|
|
8
|
-
import { Database } from "../../database/database.types";
|
|
9
|
-
/**
|
|
10
|
-
* Insert a new thread into the database
|
|
11
|
-
* @param db SQLite database instance
|
|
12
|
-
* @param thread Thread to insert
|
|
13
|
-
*/
|
|
14
|
-
export declare function insertThread(db: Database, thread: Thread): Promise<void>;
|
|
15
|
-
/**
|
|
16
|
-
* Update an existing thread in the database
|
|
17
|
-
* @param db SQLite database instance
|
|
18
|
-
* @param id Thread ID
|
|
19
|
-
* @param updates Partial thread object with fields to update
|
|
20
|
-
*/
|
|
21
|
-
export declare function updateThread(db: Database, id: string, updates: Partial<Thread>): Promise<void>;
|
|
22
|
-
/**
|
|
23
|
-
* Mark a thread as deleted (soft delete)
|
|
24
|
-
* @param db SQLite database instance
|
|
25
|
-
* @param id Thread ID
|
|
26
|
-
*/
|
|
27
|
-
export declare function deleteThread(db: Database, id: string): Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* Get a single thread by ID
|
|
30
|
-
* @param db SQLite database instance
|
|
31
|
-
* @param id Thread ID
|
|
32
|
-
* @returns Thread object or null if not found
|
|
33
|
-
*/
|
|
34
|
-
export declare function getThread(db: Database, id: string): Promise<Thread | null>;
|
|
35
|
-
/**
|
|
36
|
-
* Get all active threads from the database
|
|
37
|
-
* @param db SQLite database instance
|
|
38
|
-
* @returns Array of active threads only
|
|
39
|
-
*/
|
|
40
|
-
export declare function getAllThreads(db: Database): Promise<Thread[]>;
|
|
41
|
-
/**
|
|
42
|
-
* Get active threads for a specific project
|
|
43
|
-
* @param db SQLite database instance
|
|
44
|
-
* @param projectId Project ID
|
|
45
|
-
* @returns Array of active threads for project only
|
|
46
|
-
*/
|
|
47
|
-
export declare function getThreadsByProjectId(db: Database, projectId: string): Promise<Thread[]>;
|
|
48
|
-
/**
|
|
49
|
-
* Check if a thread exists
|
|
50
|
-
* @param db SQLite database instance
|
|
51
|
-
* @param id Thread ID
|
|
52
|
-
* @returns True if thread exists
|
|
53
|
-
*/
|
|
54
|
-
export declare function threadExists(db: Database, id: string): Promise<boolean>;
|
|
55
|
-
/**
|
|
56
|
-
* Get thread count
|
|
57
|
-
* @param db SQLite database instance
|
|
58
|
-
* @returns Number of threads
|
|
59
|
-
*/
|
|
60
|
-
export declare function getThreadCount(db: Database): Promise<number>;
|
|
61
|
-
/**
|
|
62
|
-
* Get thread count for a specific project
|
|
63
|
-
* @param db SQLite database instance
|
|
64
|
-
* @param projectId Project ID
|
|
65
|
-
* @returns Number of threads in the project
|
|
66
|
-
*/
|
|
67
|
-
export declare function getThreadCountByProjectId(db: Database, projectId: string): Promise<number>;
|
|
68
|
-
//# sourceMappingURL=threads.database.d.ts.map
|