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,227 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* System prompt loader for Pi Agent
|
|
3
|
-
* Loads agent system prompt from agents.md file with fallback
|
|
4
|
-
*/
|
|
5
|
-
import { resolve } from "path";
|
|
6
|
-
import { readFileSync } from "fs";
|
|
7
|
-
import { analyzeProject } from "../project-analyzer.js";
|
|
8
|
-
import { RuleManager } from "../features/rules/rules.manager.js";
|
|
9
|
-
import { devServerCache } from "../core/dev-server-cache.js";
|
|
10
|
-
/**
|
|
11
|
-
* Default prompt used when agents.md cannot be loaded
|
|
12
|
-
*/
|
|
13
|
-
const DEFAULT_PROMPT = "You are a helpful coding assistant. You have access to read, bash, edit, todo, and write tools. Use them to explore and modify the codebase as needed. Break tasks down into smaller, manageable steps using the todo tool.";
|
|
14
|
-
const PLAN_MODE_INSTRUCTIONS = `
|
|
15
|
-
|
|
16
|
-
# Plan Mode (ACTIVE)
|
|
17
|
-
|
|
18
|
-
You are currently in PLAN MODE. You MUST follow these constraints strictly:
|
|
19
|
-
|
|
20
|
-
## What you MUST do:
|
|
21
|
-
- Analyze the user's request thoroughly
|
|
22
|
-
- Create a clear, structured plan with numbered steps
|
|
23
|
-
- Identify all files that would need to be created, modified, or deleted
|
|
24
|
-
- Explain the reasoning behind each step
|
|
25
|
-
- Highlight complexity and potential risks for each step
|
|
26
|
-
- Present the plan for user review and approval
|
|
27
|
-
|
|
28
|
-
## What you MUST NOT do:
|
|
29
|
-
- Do NOT use any tools that modify files (Write, Edit, Bash with write operations)
|
|
30
|
-
- Do NOT create, delete, or modify any files
|
|
31
|
-
- Do NOT run any commands that change system state (npm install, git commit, etc.)
|
|
32
|
-
- You MAY use read-only tools (Read, Glob, Grep, Bash with read-only commands like ls, cat, git status, git log, git diff) to explore the codebase
|
|
33
|
-
|
|
34
|
-
## Output format:
|
|
35
|
-
Structure your response as:
|
|
36
|
-
1. **Understanding**: Brief summary of what the user wants
|
|
37
|
-
2. **Plan**: Numbered steps with file paths and descriptions of changes
|
|
38
|
-
3. **Files to modify**: List of files with what changes each needs
|
|
39
|
-
4. **Considerations**: Any risks, trade-offs, or questions
|
|
40
|
-
|
|
41
|
-
YOU MUST use the ask_user tool to ask clarifying questions if needed and to confirm implementation of the plan.
|
|
42
|
-
|
|
43
|
-
Remember: You are ONLY planning. Do NOT execute any changes.`;
|
|
44
|
-
/**
|
|
45
|
-
* Load agents.md content as developer context
|
|
46
|
-
*/
|
|
47
|
-
function loadDeveloperContext(threadPath) {
|
|
48
|
-
try {
|
|
49
|
-
// Path to agents.md in the thread directory
|
|
50
|
-
const agentsPath = resolve(threadPath, "agents.md");
|
|
51
|
-
const agentsContent = readFileSync(agentsPath, "utf-8").trim();
|
|
52
|
-
console.log("[ai] Successfully loaded agents.md from thread path for developer context");
|
|
53
|
-
return agentsContent;
|
|
54
|
-
}
|
|
55
|
-
catch (error) {
|
|
56
|
-
// Gracefully fall back if agents.md not found
|
|
57
|
-
const isFileNotFound = error && typeof error === "object" && "code" in error && error.code === "ENOENT";
|
|
58
|
-
if (isFileNotFound) {
|
|
59
|
-
console.log("[ai] agents.md not found in thread path, skipping developer context");
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
console.warn("[ai] Error loading agents.md from thread path:", error instanceof Error ? error.message : String(error));
|
|
63
|
-
}
|
|
64
|
-
return "";
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Load and format rules for the prompt
|
|
69
|
-
*/
|
|
70
|
-
async function loadRulesSection(threadPath) {
|
|
71
|
-
try {
|
|
72
|
-
const ruleManager = new RuleManager();
|
|
73
|
-
const rules = await ruleManager.loadRules(threadPath);
|
|
74
|
-
if (rules.length > 0) {
|
|
75
|
-
const rulesSection = ruleManager.formatRulesForPrompt(rules);
|
|
76
|
-
console.log(`[ai] Loaded ${rules.length} rule(s) from .agents/rules directory`);
|
|
77
|
-
return rulesSection;
|
|
78
|
-
}
|
|
79
|
-
return "";
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
console.warn("[ai] Error loading rules:", error instanceof Error ? error.message : String(error));
|
|
83
|
-
return "";
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Check if dev server is running and reachable for the thread
|
|
88
|
-
*/
|
|
89
|
-
async function loadDevServerSection(threadPath) {
|
|
90
|
-
try {
|
|
91
|
-
// Extract thread ID from path (last part of the path)
|
|
92
|
-
const threadId = threadPath.split(/[\\/]/).pop() ?? "unknown";
|
|
93
|
-
// Check if there's a cached URL for this thread
|
|
94
|
-
const cachedUrl = devServerCache.getUrl(threadId);
|
|
95
|
-
if (!cachedUrl) {
|
|
96
|
-
return "";
|
|
97
|
-
}
|
|
98
|
-
// Check if the dev server is reachable
|
|
99
|
-
try {
|
|
100
|
-
const response = await fetch(cachedUrl, {
|
|
101
|
-
method: "HEAD",
|
|
102
|
-
signal: AbortSignal.timeout(3000), // 3 second timeout
|
|
103
|
-
});
|
|
104
|
-
if (response.ok) {
|
|
105
|
-
console.log(`[ai] Dev server is running at ${cachedUrl} for thread ${threadId}`);
|
|
106
|
-
return `\n\n# Dev Server\n\nThe dev server is running at ${cachedUrl}.`;
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
console.log(`[ai] Dev server at ${cachedUrl} responded with status ${response.status} for thread ${threadId}`);
|
|
110
|
-
return "";
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
catch (fetchError) {
|
|
114
|
-
console.log(`[ai] Dev server at ${cachedUrl} is not reachable for thread ${threadId}:`, fetchError instanceof Error ? fetchError.message : String(fetchError));
|
|
115
|
-
return "";
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
catch (error) {
|
|
119
|
-
console.warn("[ai] Error checking dev server status:", error instanceof Error ? error.message : String(error));
|
|
120
|
-
return "";
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Load project analysis section
|
|
125
|
-
*/
|
|
126
|
-
function loadProjectAnalysisSection(threadPath) {
|
|
127
|
-
try {
|
|
128
|
-
const projectAnalysis = analyzeProject(threadPath);
|
|
129
|
-
if (projectAnalysis) {
|
|
130
|
-
return "\n\n# Project Analysis\n\n" + projectAnalysis;
|
|
131
|
-
}
|
|
132
|
-
return "";
|
|
133
|
-
}
|
|
134
|
-
catch (error) {
|
|
135
|
-
console.warn("[ai] Error analyzing project:", error instanceof Error ? error.message : String(error));
|
|
136
|
-
return "";
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Format skills for the prompt
|
|
141
|
-
*/
|
|
142
|
-
function formatSkillsSection(skills) {
|
|
143
|
-
if (!skills || skills.length === 0) {
|
|
144
|
-
return "";
|
|
145
|
-
}
|
|
146
|
-
let skillsSection = "\n\n# Available Skills\n\n";
|
|
147
|
-
skillsSection +=
|
|
148
|
-
"The following skills are available for this session. Use them to enhance your capabilities:\n\n";
|
|
149
|
-
for (const skill of skills) {
|
|
150
|
-
skillsSection += `## ${skill.name}\n\n`;
|
|
151
|
-
skillsSection += `**Description**: ${skill.description}\n\n`;
|
|
152
|
-
if (skill.compatibility) {
|
|
153
|
-
skillsSection += `**Compatibility**: ${skill.compatibility}\n\n`;
|
|
154
|
-
}
|
|
155
|
-
skillsSection += skill.instructions;
|
|
156
|
-
skillsSection += "\n\n---\n\n";
|
|
157
|
-
}
|
|
158
|
-
console.log(`[ai] Injected ${skills.length} skill(s) into system prompt: ${skills.map((s) => s.name).join(", ")}`);
|
|
159
|
-
return skillsSection;
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Format available agents for injection into the system prompt
|
|
163
|
-
*/
|
|
164
|
-
function formatAgentsSection(agents) {
|
|
165
|
-
const invocable = agents.filter((a) => !a.disableModelInvocation);
|
|
166
|
-
if (invocable.length === 0)
|
|
167
|
-
return "";
|
|
168
|
-
let section = "\n\n# Available Agents\n\n" +
|
|
169
|
-
"Use the `agent` tool to delegate focused subtasks to these specialized agents. " +
|
|
170
|
-
"Each agent runs in an isolated context and returns its result.\n\n";
|
|
171
|
-
for (const agent of invocable) {
|
|
172
|
-
section += `## ${agent.name}\n\n`;
|
|
173
|
-
section += `**Description**: ${agent.description}\n`;
|
|
174
|
-
section += `**Invoke as**: \`agentName: "${agent.name}"\`\n\n`;
|
|
175
|
-
}
|
|
176
|
-
console.log(`[ai] Injected ${invocable.length} agent(s) into system prompt: ${invocable.map((a) => a.name).join(", ")}`);
|
|
177
|
-
return section;
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Load agent system prompt from agents.md file
|
|
181
|
-
* System prompt is the DEFAULT_PROMPT, agents.md is appended as developer context
|
|
182
|
-
*
|
|
183
|
-
* @param threadPath - Path to the thread directory (required)
|
|
184
|
-
* @param skills - Optional array of activated skills to inject into the prompt
|
|
185
|
-
* @param planMode - Optional flag to enable plan mode instructions
|
|
186
|
-
* @param agents - Optional array of available agent definitions to inject into the prompt
|
|
187
|
-
*/
|
|
188
|
-
export async function loadAgentSystemPrompt(threadPath, skills, planMode, agents) {
|
|
189
|
-
// Start with the default prompt
|
|
190
|
-
let prompt = DEFAULT_PROMPT;
|
|
191
|
-
// Load and append developer context
|
|
192
|
-
const agentsContent = loadDeveloperContext(threadPath);
|
|
193
|
-
if (agentsContent) {
|
|
194
|
-
prompt += "\n\n# Developer Context\n\n" + agentsContent;
|
|
195
|
-
}
|
|
196
|
-
// Load and append rules
|
|
197
|
-
const rulesSection = await loadRulesSection(threadPath);
|
|
198
|
-
if (rulesSection) {
|
|
199
|
-
prompt += rulesSection;
|
|
200
|
-
}
|
|
201
|
-
// Append project analysis
|
|
202
|
-
const projectAnalysisSection = loadProjectAnalysisSection(threadPath);
|
|
203
|
-
if (projectAnalysisSection) {
|
|
204
|
-
prompt += projectAnalysisSection;
|
|
205
|
-
}
|
|
206
|
-
// Append dev server status
|
|
207
|
-
const devServerSection = await loadDevServerSection(threadPath);
|
|
208
|
-
if (devServerSection) {
|
|
209
|
-
prompt += devServerSection;
|
|
210
|
-
}
|
|
211
|
-
// Append plan mode instructions if enabled
|
|
212
|
-
if (planMode) {
|
|
213
|
-
prompt += PLAN_MODE_INSTRUCTIONS;
|
|
214
|
-
}
|
|
215
|
-
// Append skills section
|
|
216
|
-
const skillsSection = formatSkillsSection(skills ?? []);
|
|
217
|
-
if (skillsSection) {
|
|
218
|
-
prompt += skillsSection;
|
|
219
|
-
}
|
|
220
|
-
// Append agents section
|
|
221
|
-
const agentsSection = formatAgentsSection(agents ?? []);
|
|
222
|
-
if (agentsSection) {
|
|
223
|
-
prompt += agentsSection;
|
|
224
|
-
}
|
|
225
|
-
return prompt;
|
|
226
|
-
}
|
|
227
|
-
//# sourceMappingURL=agent.prompt-loader.js.map
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Subagent executor
|
|
3
|
-
*
|
|
4
|
-
* Runs an isolated agent invocation with a controlled tool set.
|
|
5
|
-
* Used by the agent tool to spawn subagents for focused subtasks.
|
|
6
|
-
* Unlike PiExecutorImpl, tools are passed in rather than built internally,
|
|
7
|
-
* which allows callers to restrict which tools the subagent can use.
|
|
8
|
-
*/
|
|
9
|
-
import type { AgentEvent } from "@tarsk/shared";
|
|
10
|
-
import type { MetadataManager } from "../features/metadata/metadata.manager.js";
|
|
11
|
-
import type { Tool } from "../tools/index.js";
|
|
12
|
-
export interface SubagentOptions {
|
|
13
|
-
/** The task prompt for the subagent */
|
|
14
|
-
prompt: string;
|
|
15
|
-
/** System prompt to use (from AGENT.md or a default) */
|
|
16
|
-
systemPrompt: string;
|
|
17
|
-
/** Pre-filtered tool set the subagent is allowed to use */
|
|
18
|
-
tools: Tool[];
|
|
19
|
-
/** Model identifier (provider-prefixed, e.g. "anthropic/claude-opus-4-6") */
|
|
20
|
-
model: string;
|
|
21
|
-
/** Provider name (e.g. "anthropic") */
|
|
22
|
-
provider: string;
|
|
23
|
-
/** MetadataManager for API key resolution */
|
|
24
|
-
metadataManager: MetadataManager;
|
|
25
|
-
/** Callback for each event emitted during subagent execution */
|
|
26
|
-
onEvent: (event: AgentEvent) => void;
|
|
27
|
-
/** Optional abort signal */
|
|
28
|
-
signal?: AbortSignal;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Execute a subagent and return its final result text.
|
|
32
|
-
* All events are reported via onEvent for the parent to stream.
|
|
33
|
-
*/
|
|
34
|
-
export declare function executeSubagent(options: SubagentOptions): Promise<string>;
|
|
35
|
-
//# sourceMappingURL=agent.subagent-executor.d.ts.map
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Subagent executor
|
|
3
|
-
*
|
|
4
|
-
* Runs an isolated agent invocation with a controlled tool set.
|
|
5
|
-
* Used by the agent tool to spawn subagents for focused subtasks.
|
|
6
|
-
* Unlike PiExecutorImpl, tools are passed in rather than built internally,
|
|
7
|
-
* which allows callers to restrict which tools the subagent can use.
|
|
8
|
-
*/
|
|
9
|
-
import { Agent } from "@mariozechner/pi-agent-core";
|
|
10
|
-
import { resolveProviderConfig } from "../features/providers/provider-resolver.js";
|
|
11
|
-
import { resolveModel } from "./agent.model-resolver.js";
|
|
12
|
-
import { EventQueue } from "./agent.event-transformer.js";
|
|
13
|
-
import { getErrorCode, formatErrorEvent } from "./agent.error-utils.js";
|
|
14
|
-
/**
|
|
15
|
-
* Execute a subagent and return its final result text.
|
|
16
|
-
* All events are reported via onEvent for the parent to stream.
|
|
17
|
-
*/
|
|
18
|
-
export async function executeSubagent(options) {
|
|
19
|
-
const { prompt, systemPrompt, tools, metadataManager, onEvent, signal } = options;
|
|
20
|
-
const providerName = options.provider;
|
|
21
|
-
let model = options.model.trim().replace(`${providerName.toLowerCase()}/`, "");
|
|
22
|
-
const providerConfig = await resolveProviderConfig(providerName);
|
|
23
|
-
if (!providerConfig) {
|
|
24
|
-
throw new Error(`Unknown provider for subagent: ${providerName}`);
|
|
25
|
-
}
|
|
26
|
-
let apiKey = providerConfig.env && providerConfig.env.length > 0
|
|
27
|
-
? process.env[providerConfig.env[0]]
|
|
28
|
-
: undefined;
|
|
29
|
-
if (!apiKey) {
|
|
30
|
-
const providerKeys = await metadataManager.getProviderKeys();
|
|
31
|
-
apiKey = providerKeys[providerConfig.name];
|
|
32
|
-
}
|
|
33
|
-
if (!apiKey) {
|
|
34
|
-
throw new Error(`No API key found for subagent provider: ${providerName}. ` +
|
|
35
|
-
`Set ${providerConfig.env && providerConfig.env.length > 0 ? providerConfig.env[0] : "an API key"} ` +
|
|
36
|
-
`in environment variables or configuration.`);
|
|
37
|
-
}
|
|
38
|
-
const resolvedModel = resolveModel(providerName, model, providerConfig);
|
|
39
|
-
console.log(`[subagent] Starting with model=${resolvedModel.id}, tools=${tools.map((t) => t.name).join(",")}`);
|
|
40
|
-
const agent = new Agent({
|
|
41
|
-
initialState: {
|
|
42
|
-
systemPrompt,
|
|
43
|
-
model: resolvedModel,
|
|
44
|
-
tools,
|
|
45
|
-
},
|
|
46
|
-
getApiKey: async () => apiKey,
|
|
47
|
-
});
|
|
48
|
-
const eventQueue = new EventQueue();
|
|
49
|
-
let done = false;
|
|
50
|
-
let aborted = false;
|
|
51
|
-
const onAbort = () => {
|
|
52
|
-
if (aborted)
|
|
53
|
-
return;
|
|
54
|
-
aborted = true;
|
|
55
|
-
agent.abort();
|
|
56
|
-
done = true;
|
|
57
|
-
eventQueue.notify();
|
|
58
|
-
};
|
|
59
|
-
if (signal) {
|
|
60
|
-
if (signal.aborted)
|
|
61
|
-
return "";
|
|
62
|
-
signal.addEventListener("abort", onAbort, { once: true });
|
|
63
|
-
}
|
|
64
|
-
const unsubscribe = agent.subscribe((event) => {
|
|
65
|
-
eventQueue.handlePiEvent(event);
|
|
66
|
-
// Drain the queue immediately and forward events to the parent
|
|
67
|
-
while (eventQueue.length > 0) {
|
|
68
|
-
const e = eventQueue.shift();
|
|
69
|
-
if (e)
|
|
70
|
-
onEvent(e);
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
const promptDone = agent
|
|
74
|
-
.prompt(prompt)
|
|
75
|
-
.then(() => {
|
|
76
|
-
done = true;
|
|
77
|
-
eventQueue.notify();
|
|
78
|
-
})
|
|
79
|
-
.catch((err) => {
|
|
80
|
-
const errMessage = err instanceof Error ? err.message : String(err);
|
|
81
|
-
console.error(`[subagent] Agent prompt failed:`, errMessage);
|
|
82
|
-
if (!eventQueue.errorOccurred) {
|
|
83
|
-
eventQueue.errorOccurred = true;
|
|
84
|
-
const errorEvent = {
|
|
85
|
-
type: "error",
|
|
86
|
-
content: errMessage,
|
|
87
|
-
error: {
|
|
88
|
-
code: getErrorCode(err) ?? "SUBAGENT_EXECUTION_ERROR",
|
|
89
|
-
message: errMessage,
|
|
90
|
-
details: { stack: err instanceof Error ? err.stack : undefined },
|
|
91
|
-
},
|
|
92
|
-
};
|
|
93
|
-
onEvent(errorEvent);
|
|
94
|
-
}
|
|
95
|
-
done = true;
|
|
96
|
-
eventQueue.notify();
|
|
97
|
-
});
|
|
98
|
-
try {
|
|
99
|
-
// Drain any remaining queued events while waiting for completion
|
|
100
|
-
while (!done || eventQueue.length > 0) {
|
|
101
|
-
if (eventQueue.length > 0) {
|
|
102
|
-
const e = eventQueue.shift();
|
|
103
|
-
if (e)
|
|
104
|
-
onEvent(e);
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
await new Promise((resolve) => {
|
|
108
|
-
eventQueue.setResolver(resolve);
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
if (!aborted) {
|
|
113
|
-
await promptDone;
|
|
114
|
-
// Drain any final events
|
|
115
|
-
while (eventQueue.length > 0) {
|
|
116
|
-
const e = eventQueue.shift();
|
|
117
|
-
if (e)
|
|
118
|
-
onEvent(e);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
return eventQueue.finalContent;
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
onEvent(formatErrorEvent(error));
|
|
125
|
-
return "";
|
|
126
|
-
}
|
|
127
|
-
finally {
|
|
128
|
-
if (signal)
|
|
129
|
-
signal.removeEventListener("abort", onAbort);
|
|
130
|
-
unsubscribe();
|
|
131
|
-
agent.abort();
|
|
132
|
-
eventQueue.clearResolver();
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
//# sourceMappingURL=agent.subagent-executor.js.map
|
package/dist/bun/index.d.ts
DELETED
package/dist/bun/index.js
DELETED
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import Electrobun, { BrowserWindow, PATHS, ApplicationMenu } from "electrobun/bun";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { Utils } from "electrobun/bun";
|
|
4
|
-
import { startTarskServer } from "../server.js";
|
|
5
|
-
import { logger } from "../core/logger.js";
|
|
6
|
-
// Setup logging to capture all console output
|
|
7
|
-
logger.setupLogging();
|
|
8
|
-
const args = process.argv.slice(2);
|
|
9
|
-
const isDebug = args.includes("--debug");
|
|
10
|
-
console.log(`Startup: isDebug=${isDebug} electroBun=${!!Electrobun}`);
|
|
11
|
-
if (!isDebug && !Electrobun) {
|
|
12
|
-
console.log = () => { };
|
|
13
|
-
}
|
|
14
|
-
async function showLogs() {
|
|
15
|
-
Utils.showItemInFolder(logger.getLogFilePath());
|
|
16
|
-
}
|
|
17
|
-
async function checkForAppUpdate() {
|
|
18
|
-
try {
|
|
19
|
-
// Skip update checks in dev mode
|
|
20
|
-
let info = undefined;
|
|
21
|
-
try {
|
|
22
|
-
console.log(`checkForAppUpdate.getLocalInfo()`);
|
|
23
|
-
info = await Electrobun.Updater.getLocallocalInfo();
|
|
24
|
-
console.log(`checkForAppUpdate`, info);
|
|
25
|
-
}
|
|
26
|
-
catch (e) {
|
|
27
|
-
console.warn("Failed to get local info", e);
|
|
28
|
-
//return;
|
|
29
|
-
}
|
|
30
|
-
console.log(`checkForAppUpdate.checkForUpdate()`);
|
|
31
|
-
const updateInfo = await Electrobun.Updater.checkForUpdate();
|
|
32
|
-
console.log(`checkForAppUpdate.checkForUpdate()`, updateInfo);
|
|
33
|
-
if (!updateInfo?.updateAvailable) {
|
|
34
|
-
console.log("No updates available");
|
|
35
|
-
Utils.showNotification({
|
|
36
|
-
title: "No Updates Available",
|
|
37
|
-
});
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
Utils.showNotification({
|
|
41
|
-
title: "Downloading Update",
|
|
42
|
-
});
|
|
43
|
-
console.log(`checkForAppUpdate.downloadUpdate()`);
|
|
44
|
-
await Electrobun.Updater.downloadUpdate();
|
|
45
|
-
console.log(`checkForAppUpdate.downloadUpdate() completed`);
|
|
46
|
-
if (Electrobun.Updater.updateInfo()?.updateReady) {
|
|
47
|
-
Utils.showNotification({
|
|
48
|
-
title: "Applying Update",
|
|
49
|
-
});
|
|
50
|
-
console.log(`checkForAppUpdate.applyUpdate()`);
|
|
51
|
-
await Electrobun.Updater.applyUpdate();
|
|
52
|
-
console.log(`checkForAppUpdate.applyUpdate() completed`);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
catch (error) {
|
|
56
|
-
if (isDebug) {
|
|
57
|
-
console.error("Failed to check/apply update", error);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
// Setup application menu with version info
|
|
62
|
-
const setupMenu = async () => {
|
|
63
|
-
try {
|
|
64
|
-
// Skip version info and updates in dev mode
|
|
65
|
-
let version = "Unknown";
|
|
66
|
-
let includeUpdateMenu = false;
|
|
67
|
-
try {
|
|
68
|
-
const localInfo = await Electrobun.Updater.getLocallocalInfo();
|
|
69
|
-
console.log(`Local info:`, localInfo);
|
|
70
|
-
version = localInfo.version;
|
|
71
|
-
includeUpdateMenu = true;
|
|
72
|
-
}
|
|
73
|
-
catch (e) {
|
|
74
|
-
// In dev mode, version.json doesn't exist - this is expected
|
|
75
|
-
console.log(`Version check failed: ${String(e)}`);
|
|
76
|
-
}
|
|
77
|
-
const tarskSubmenu = [
|
|
78
|
-
{
|
|
79
|
-
label: `Version ${version}`,
|
|
80
|
-
action: "show-version",
|
|
81
|
-
enabled: false,
|
|
82
|
-
type: "normal",
|
|
83
|
-
},
|
|
84
|
-
];
|
|
85
|
-
if (includeUpdateMenu) {
|
|
86
|
-
tarskSubmenu.push({ type: "separator" }, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
87
|
-
{
|
|
88
|
-
label: "Check for Updates",
|
|
89
|
-
action: "check-for-updates",
|
|
90
|
-
type: "normal",
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
tarskSubmenu.push({ type: "separator" }, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
94
|
-
{
|
|
95
|
-
label: "View Logs",
|
|
96
|
-
action: "view-logs",
|
|
97
|
-
type: "normal",
|
|
98
|
-
}, { type: "separator" }, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
99
|
-
{ role: "quit" });
|
|
100
|
-
const menu = [
|
|
101
|
-
{
|
|
102
|
-
label: "Tarsk",
|
|
103
|
-
submenu: tarskSubmenu,
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
label: "Edit",
|
|
107
|
-
submenu: [
|
|
108
|
-
{ role: "undo" },
|
|
109
|
-
{ role: "redo" },
|
|
110
|
-
{ type: "separator" }, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
111
|
-
{ role: "cut" },
|
|
112
|
-
{ role: "copy" },
|
|
113
|
-
{ role: "paste" },
|
|
114
|
-
{ role: "selectAll" },
|
|
115
|
-
],
|
|
116
|
-
},
|
|
117
|
-
];
|
|
118
|
-
ApplicationMenu.setApplicationMenu(menu); // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
119
|
-
Electrobun.events.on("application-menu-clicked", async (e) => {
|
|
120
|
-
switch (e.data.action) {
|
|
121
|
-
case "view-logs":
|
|
122
|
-
await showLogs();
|
|
123
|
-
break;
|
|
124
|
-
case "check-for-updates":
|
|
125
|
-
await checkForAppUpdate();
|
|
126
|
-
break;
|
|
127
|
-
default:
|
|
128
|
-
break;
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
catch (error) {
|
|
133
|
-
if (isDebug) {
|
|
134
|
-
console.error("Failed to setup menu:", error);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
console.log(`index.ts setupMenu()`);
|
|
139
|
-
await setupMenu();
|
|
140
|
-
// Check for updates on startup
|
|
141
|
-
//void checkForAppUpdate();
|
|
142
|
-
const publicDir = path.join(PATHS.VIEWS_FOLDER, "public");
|
|
143
|
-
const { url } = await startTarskServer({
|
|
144
|
-
isDebug,
|
|
145
|
-
openBrowser: false,
|
|
146
|
-
publicDir,
|
|
147
|
-
updater: {
|
|
148
|
-
checkForUpdate: () => Electrobun.Updater.checkForUpdate(),
|
|
149
|
-
downloadUpdate: () => Electrobun.Updater.downloadUpdate(),
|
|
150
|
-
applyUpdate: () => Electrobun.Updater.applyUpdate(),
|
|
151
|
-
getUpdateInfo: () => Electrobun.Updater.updateInfo(),
|
|
152
|
-
},
|
|
153
|
-
});
|
|
154
|
-
new BrowserWindow({
|
|
155
|
-
title: "Tarsk",
|
|
156
|
-
transparent: false,
|
|
157
|
-
url,
|
|
158
|
-
frame: {
|
|
159
|
-
width: 1320,
|
|
160
|
-
height: 860,
|
|
161
|
-
x: 120,
|
|
162
|
-
y: 80,
|
|
163
|
-
},
|
|
164
|
-
});
|
|
165
|
-
//# sourceMappingURL=index.js.map
|
package/dist/cli.d.ts
DELETED
package/dist/cli.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { spawnProcess } from "./core/utils.js";
|
|
3
|
-
import { fileURLToPath } from "url";
|
|
4
|
-
import path from "path";
|
|
5
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
-
const __dirname = path.dirname(__filename);
|
|
7
|
-
// Run the main index.js with --open flag to open browser
|
|
8
|
-
const indexPath = path.join(__dirname, "index.js");
|
|
9
|
-
const args = [...process.argv.slice(2), "--open"];
|
|
10
|
-
const child = spawnProcess("node", [indexPath, ...args], {
|
|
11
|
-
stdio: "inherit",
|
|
12
|
-
});
|
|
13
|
-
process.on("SIGINT", () => {
|
|
14
|
-
child.kill("SIGINT");
|
|
15
|
-
});
|
|
16
|
-
process.on("SIGTERM", () => {
|
|
17
|
-
child.kill("SIGTERM");
|
|
18
|
-
});
|
|
19
|
-
child.on("exit", (code) => {
|
|
20
|
-
process.exit(code ?? 0);
|
|
21
|
-
});
|
|
22
|
-
//# sourceMappingURL=cli.js.map
|
package/dist/core/crypto.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Crypto utilities for encrypting/decrypting sensitive data
|
|
3
|
-
*
|
|
4
|
-
* Uses AES-256-GCM encryption with a machine-specific key derived from
|
|
5
|
-
* unchanging machine identifiers.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Encrypt a string value
|
|
9
|
-
*
|
|
10
|
-
* @param plaintext - The string to encrypt
|
|
11
|
-
* @returns Base64-encoded encrypted data in format: iv:authTag:ciphertext
|
|
12
|
-
*/
|
|
13
|
-
export declare function encrypt(plaintext: string): Promise<string>;
|
|
14
|
-
/**
|
|
15
|
-
* Decrypt an encrypted string value
|
|
16
|
-
*
|
|
17
|
-
* @param encryptedData - Base64-encoded encrypted data in format: iv:authTag:ciphertext
|
|
18
|
-
* @returns The decrypted plaintext string
|
|
19
|
-
* @throws Error if decryption fails (wrong key, corrupted data, etc.)
|
|
20
|
-
*/
|
|
21
|
-
export declare function decrypt(encryptedData: string): Promise<string>;
|
|
22
|
-
/**
|
|
23
|
-
* Check if a string appears to be encrypted
|
|
24
|
-
*
|
|
25
|
-
* @param value - The string to check
|
|
26
|
-
* @returns true if the string appears to be in encrypted format
|
|
27
|
-
*/
|
|
28
|
-
export declare function isEncrypted(value: string): boolean;
|
|
29
|
-
//# sourceMappingURL=crypto.d.ts.map
|