crewx 0.8.7-rc.21 → 0.8.7-rc.22
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/assets/{MarketPage-aY16UW1_.js → MarketPage-lLBtAENs.js} +10 -15
- package/dist/assets/{PromptTab-C3aTJS6u.js → PromptTab-Daq54dMi.js} +1 -1
- package/dist/assets/_baseUniq-BJDqmZBO.js +1 -0
- package/dist/assets/{arc-BCQAokB1.js → arc-ByjRIa5p.js} +1 -1
- package/dist/assets/{architectureDiagram-UYN6MBPD-Bc87ujv2.js → architectureDiagram-UYN6MBPD-DcKpqSFb.js} +1 -1
- package/dist/assets/{blockDiagram-ZHA2E4KO-wC9uH8Lb.js → blockDiagram-ZHA2E4KO-YvUeULT5.js} +1 -1
- package/dist/assets/{c4Diagram-6F5ED5ID-CqB7lqni.js → c4Diagram-6F5ED5ID-vggzH2N5.js} +1 -1
- package/dist/assets/channel-1Y6YooBb.js +1 -0
- package/dist/assets/{chunk-5HRBRIJM-Cc1L17Eh.js → chunk-5HRBRIJM-BbaQwJkn.js} +1 -1
- package/dist/assets/{chunk-7U56Z5CX-Df3nu_7G.js → chunk-7U56Z5CX-DVYVpFaa.js} +1 -1
- package/dist/assets/{chunk-ASOPGD6M-DIXslLG-.js → chunk-ASOPGD6M-CXEvWb-8.js} +1 -1
- package/dist/assets/{chunk-KFBOBJHC-FytVljyP.js → chunk-KFBOBJHC-CadVXFV3.js} +1 -1
- package/dist/assets/{chunk-T2TOU4HS-CU5z-cXq.js → chunk-T2TOU4HS-lDZr1sVF.js} +1 -1
- package/dist/assets/{chunk-TMUBEWPD-CWo1AFyn.js → chunk-TMUBEWPD-D5A0MrFD.js} +1 -1
- package/dist/assets/classDiagram-LNE6IOMH-CDxkV2JV.js +1 -0
- package/dist/assets/classDiagram-v2-MQ7JQ4JX-CDxkV2JV.js +1 -0
- package/dist/assets/clone-6xznz_9G.js +1 -0
- package/dist/assets/{dagre-4EVJKHTY-CgZW5tg4.js → dagre-4EVJKHTY-Bncx7Ijq.js} +1 -1
- package/dist/assets/{diagram-QW4FP2JN-CJAng8RC.js → diagram-QW4FP2JN-RkxVNs99.js} +1 -1
- package/dist/assets/{erDiagram-6RL3IURR-C1uHztHX.js → erDiagram-6RL3IURR-DIiKqQdx.js} +1 -1
- package/dist/assets/{flowDiagram-7ASYPVHJ-Yiu2odO-.js → flowDiagram-7ASYPVHJ-DQ5PN7v6.js} +1 -1
- package/dist/assets/{ganttDiagram-NTVNEXSI-tutc0dJP.js → ganttDiagram-NTVNEXSI-BeNWGpB6.js} +1 -1
- package/dist/assets/{gitGraph-YCYPL57B-C3jM6T4G.js → gitGraph-YCYPL57B-CdMe059q.js} +1 -1
- package/dist/assets/{gitGraphDiagram-NRZ2UAAF-0aqHEKzz.js → gitGraphDiagram-NRZ2UAAF-BEke5TyK.js} +1 -1
- package/dist/assets/{graph-DC224ILV.js → graph-DyQIwWJd.js} +1 -1
- package/dist/assets/{infoDiagram-A4XQUW5V-Do7Mpzkx.js → infoDiagram-A4XQUW5V-CUcC8I_5.js} +1 -1
- package/dist/assets/{journeyDiagram-G5WM74LC-DAruEJc7.js → journeyDiagram-G5WM74LC-CQ5DqAH5.js} +1 -1
- package/dist/assets/{kanban-definition-QRCXZQQD-DB63vLR0.js → kanban-definition-QRCXZQQD-BBsgOii7.js} +1 -1
- package/dist/assets/{layout-BiYH5x6Q.js → layout-D7vBs_Wy.js} +1 -1
- package/dist/assets/{linear-CLyGW2s0.js → linear-CEOF9oJz.js} +1 -1
- package/dist/assets/{main-CEKkUqZb.js → main-Bx1nZ7_p.js} +278 -273
- package/dist/assets/main-C4ebvOIJ.css +10 -0
- package/dist/assets/{min-ChJMFU2N.js → min-RK9J5Utn.js} +1 -1
- package/dist/assets/{mindmap-definition-GWI6TPTV-CtADqQgd.js → mindmap-definition-GWI6TPTV-BXvEU7qC.js} +1 -1
- package/dist/assets/{pieDiagram-YF2LJOPJ-BSOfzo3O.js → pieDiagram-YF2LJOPJ-TrXqcpni.js} +1 -1
- package/dist/assets/{quadrantDiagram-OS5C2QUG-BLBQNFVb.js → quadrantDiagram-OS5C2QUG-B-chTEU4.js} +1 -1
- package/dist/assets/{requirementDiagram-MIRIMTAZ-DqorvuS6.js → requirementDiagram-MIRIMTAZ-BgJhNLp_.js} +1 -1
- package/dist/assets/{sankeyDiagram-Y46BX6SQ-4NDcrLkB.js → sankeyDiagram-Y46BX6SQ-BVsgYKK7.js} +1 -1
- package/dist/assets/{sequenceDiagram-G6AWOVSC-yha6BxK2.js → sequenceDiagram-G6AWOVSC-ByJOpkq3.js} +1 -1
- package/dist/assets/{stateDiagram-MAYHULR4-XJ_I41ez.js → stateDiagram-MAYHULR4-Dw7lUL1B.js} +1 -1
- package/dist/assets/stateDiagram-v2-4JROLMXI-DYJiM3bF.js +1 -0
- package/dist/assets/{timeline-definition-U7ZMHBDA-DCNrmvE7.js → timeline-definition-U7ZMHBDA-CSoEYs60.js} +1 -1
- package/dist/assets/{xychartDiagram-6QU3TZC5-9N-Ohhdp.js → xychartDiagram-6QU3TZC5-0_rG7p3L.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +8 -8
- package/packages/cli/package.json +1 -1
- package/dist/assets/_baseUniq-DxEFlwNt.js +0 -1
- package/dist/assets/channel-DNLHkiNp.js +0 -1
- package/dist/assets/classDiagram-LNE6IOMH-B430Onym.js +0 -1
- package/dist/assets/classDiagram-v2-MQ7JQ4JX-B430Onym.js +0 -1
- package/dist/assets/clone-B9O3E3P1.js +0 -1
- package/dist/assets/main-D3YeRndF.css +0 -10
- package/dist/assets/stateDiagram-v2-4JROLMXI-CxcyPJO2.js +0 -1
- package/dist-server/adapters/adapter.module.js +0 -35
- package/dist-server/adapters/adapter.service.js +0 -79
- package/dist-server/adapters/http-router.service.js +0 -91
- package/dist-server/app.module.js +0 -111
- package/dist-server/bootstrap/crewx-server.js +0 -80
- package/dist-server/bootstrap/tls.js +0 -138
- package/dist-server/common/analytics.client.js +0 -180
- package/dist-server/common/analytics.module.js +0 -21
- package/dist-server/common/cors.js +0 -15
- package/dist-server/common/decorators/project.decorator.js +0 -21
- package/dist-server/common/decorators/workspace.decorator.js +0 -24
- package/dist-server/common/device-id.js +0 -33
- package/dist-server/common/interceptor/api-id-header.interceptor.js +0 -53
- package/dist-server/common/interceptor/http-logging.interceptor.js +0 -124
- package/dist-server/common/limits/defaults.js +0 -13
- package/dist-server/common/limits/limits-provider.js +0 -6
- package/dist-server/common/limits/limits.controller.js +0 -38
- package/dist-server/common/limits/limits.module.js +0 -24
- package/dist-server/common/limits/local-limits.provider.js +0 -27
- package/dist-server/common/middleware/workspace.middleware.js +0 -210
- package/dist-server/common/repository.exception-filter.js +0 -48
- package/dist-server/common/workspace-context.store.js +0 -25
- package/dist-server/domain/agent/agent.controller.js +0 -96
- package/dist-server/domain/agent/agent.module.js +0 -27
- package/dist-server/domain/agent/agent.service.js +0 -335
- package/dist-server/domain/agent/agent.types.js +0 -3
- package/dist-server/domain/agent/dto/create-agent.dto.js +0 -80
- package/dist-server/domain/agent/dto/preview-prompt.dto.js +0 -77
- package/dist-server/domain/agent/dto/provider-meta.dto.js +0 -2
- package/dist-server/domain/agent/dto/update-agent.dto.js +0 -92
- package/dist-server/domain/agent/provider.controller.js +0 -38
- package/dist-server/domain/agent/template-processor.service.js +0 -71
- package/dist-server/domain/auth/auth.constants.js +0 -4
- package/dist-server/domain/auth/auth.controller.js +0 -123
- package/dist-server/domain/auth/auth.module.js +0 -47
- package/dist-server/domain/auth/decorators/public.decorator.js +0 -7
- package/dist-server/domain/auth/guards/base-auth.guard.js +0 -66
- package/dist-server/domain/auth/session-store.js +0 -26
- package/dist-server/domain/auth/utils/ip.utils.js +0 -31
- package/dist-server/domain/box/box.controller.js +0 -77
- package/dist-server/domain/box/box.module.js +0 -21
- package/dist-server/domain/box/box.service.js +0 -97
- package/dist-server/domain/box/dto/create-box.dto.js +0 -74
- package/dist-server/domain/cli/cli.controller.js +0 -136
- package/dist-server/domain/cli/cli.module.js +0 -21
- package/dist-server/domain/cli/cli.service.js +0 -598
- package/dist-server/domain/cli/dto/login-cli.dto.js +0 -25
- package/dist-server/domain/cli/dto/update-cli.dto.js +0 -31
- package/dist-server/domain/doc/doc.controller.js +0 -95
- package/dist-server/domain/doc/doc.module.js +0 -21
- package/dist-server/domain/doc/doc.service.js +0 -368
- package/dist-server/domain/doc/dto/doc.dto.js +0 -64
- package/dist-server/domain/document/document.controller.js +0 -57
- package/dist-server/domain/document/document.module.js +0 -22
- package/dist-server/domain/document/document.service.js +0 -274
- package/dist-server/domain/document/dto/register-document.dto.js +0 -24
- package/dist-server/domain/fs/dto/mkdir-request.dto.js +0 -47
- package/dist-server/domain/fs/dto/mkdir-response.dto.js +0 -2
- package/dist-server/domain/fs/dto/quick-access.dto.js +0 -2
- package/dist-server/domain/fs/dto/tree-node.dto.js +0 -2
- package/dist-server/domain/fs/dto/tree-query.dto.js +0 -35
- package/dist-server/domain/fs/fs.controller.js +0 -63
- package/dist-server/domain/fs/fs.module.js +0 -22
- package/dist-server/domain/fs/fs.service.js +0 -303
- package/dist-server/domain/git/git.module.js +0 -20
- package/dist-server/domain/git/git.service.js +0 -222
- package/dist-server/domain/goal/dto/goal.dto.js +0 -49
- package/dist-server/domain/goal/goal.controller.js +0 -86
- package/dist-server/domain/goal/goal.module.js +0 -22
- package/dist-server/domain/goal/goal.service.js +0 -197
- package/dist-server/domain/goal/parser/goal-md-parser.js +0 -166
- package/dist-server/domain/goal/parser/goal-md-serializer.js +0 -110
- package/dist-server/domain/health/health.controller.js +0 -57
- package/dist-server/domain/health/health.module.js +0 -19
- package/dist-server/domain/knowledge/dto/graph-knowledge.dto.js +0 -27
- package/dist-server/domain/knowledge/dto/knowledge.dto.js +0 -71
- package/dist-server/domain/knowledge/knowledge.controller.js +0 -122
- package/dist-server/domain/knowledge/knowledge.module.js +0 -21
- package/dist-server/domain/knowledge/knowledge.service.js +0 -538
- package/dist-server/domain/market/dto/add-registry.dto.js +0 -32
- package/dist-server/domain/market/dto/install-market.dto.js +0 -30
- package/dist-server/domain/market/market.controller.js +0 -163
- package/dist-server/domain/market/market.module.js +0 -22
- package/dist-server/domain/market/market.service.js +0 -1447
- package/dist-server/domain/mcp/browser-session.store.js +0 -247
- package/dist-server/domain/mcp/crewx-tool.factory.js +0 -119
- package/dist-server/domain/mcp/mcp-auth.guard.js +0 -61
- package/dist-server/domain/mcp/mcp.constants.js +0 -4
- package/dist-server/domain/mcp/mcp.controller.js +0 -125
- package/dist-server/domain/mcp/mcp.dto.js +0 -12
- package/dist-server/domain/mcp/mcp.module.js +0 -49
- package/dist-server/domain/mcp/mcp.service.js +0 -684
- package/dist-server/domain/mcp/tool-router.service.js +0 -120
- package/dist-server/domain/message/dto/list-messages.dto.js +0 -57
- package/dist-server/domain/message/dto/send-message.dto.js +0 -45
- package/dist-server/domain/message/message.controller.js +0 -73
- package/dist-server/domain/message/message.module.js +0 -25
- package/dist-server/domain/message/message.service.js +0 -160
- package/dist-server/domain/onboarding/onboarding.controller.js +0 -97
- package/dist-server/domain/onboarding/onboarding.module.js +0 -23
- package/dist-server/domain/onboarding/onboarding.service.js +0 -106
- package/dist-server/domain/onboarding/onboarding.types.js +0 -2
- package/dist-server/domain/onboarding/presets/custom.js +0 -10
- package/dist-server/domain/onboarding/presets/dev-team.js +0 -41
- package/dist-server/domain/onboarding/presets/index.js +0 -15
- package/dist-server/domain/onboarding/presets/marketing-team.js +0 -29
- package/dist-server/domain/onboarding/presets/planning-team.js +0 -29
- package/dist-server/domain/onboarding/presets/solo.js +0 -17
- package/dist-server/domain/planner/dto/planner.dto.js +0 -58
- package/dist-server/domain/planner/planner.controller.js +0 -74
- package/dist-server/domain/planner/planner.module.js +0 -22
- package/dist-server/domain/planner/planner.service.js +0 -269
- package/dist-server/domain/project/dto/create-project.dto.js +0 -46
- package/dist-server/domain/project/dto/update-project.dto.js +0 -60
- package/dist-server/domain/project/project.controller.js +0 -129
- package/dist-server/domain/project/project.module.js +0 -22
- package/dist-server/domain/project/project.service.js +0 -173
- package/dist-server/domain/settings/settings.controller.js +0 -52
- package/dist-server/domain/settings/settings.module.js +0 -22
- package/dist-server/domain/settings/settings.service.js +0 -105
- package/dist-server/domain/task/dto/all-tasks.dto.js +0 -55
- package/dist-server/domain/task/dto/list-tasks.dto.js +0 -69
- package/dist-server/domain/task/dto/search-tasks.dto.js +0 -66
- package/dist-server/domain/task/dto/send-message.dto.js +0 -31
- package/dist-server/domain/task/dto/task-status.dto.js +0 -34
- package/dist-server/domain/task/dto/workspace-usage.dto.js +0 -38
- package/dist-server/domain/task/task.constants.js +0 -5
- package/dist-server/domain/task/task.controller.js +0 -169
- package/dist-server/domain/task/task.module.js +0 -23
- package/dist-server/domain/task/task.service.js +0 -775
- package/dist-server/domain/thread/dto/build-context.dto.js +0 -42
- package/dist-server/domain/thread/dto/list-messages.dto.js +0 -49
- package/dist-server/domain/thread/dto/list-threads.dto.js +0 -70
- package/dist-server/domain/thread/dto/search-threads.dto.js +0 -13
- package/dist-server/domain/thread/dto/update-thread.dto.js +0 -23
- package/dist-server/domain/thread/thread.controller.js +0 -160
- package/dist-server/domain/thread/thread.module.js +0 -23
- package/dist-server/domain/thread/thread.service.js +0 -419
- package/dist-server/domain/usage/usage.controller.js +0 -118
- package/dist-server/domain/usage/usage.module.js +0 -21
- package/dist-server/domain/usage/usage.service.js +0 -358
- package/dist-server/domain/usage/usage.types.js +0 -4
- package/dist-server/domain/wbs/wbs.controller.js +0 -51
- package/dist-server/domain/wbs/wbs.module.js +0 -21
- package/dist-server/domain/wbs/wbs.service.js +0 -94
- package/dist-server/domain/workflow/workflow.controller.js +0 -53
- package/dist-server/domain/workflow/workflow.module.js +0 -21
- package/dist-server/domain/workflow/workflow.service.js +0 -209
- package/dist-server/domain/workspace/dto/create-workspace.dto.js +0 -45
- package/dist-server/domain/workspace/dto/switch-workspace.dto.js +0 -32
- package/dist-server/domain/workspace/dto/workspace-info.dto.js +0 -2
- package/dist-server/domain/workspace/workspace.controller.js +0 -98
- package/dist-server/domain/workspace/workspace.module.js +0 -22
- package/dist-server/domain/workspace/workspace.service.js +0 -198
- package/dist-server/main.js +0 -204
- package/dist-server/modules/crewx-pool.service.js +0 -75
- package/dist-server/modules/crewx.module.js +0 -47
- package/dist-server/repository/base-sqlite.repository.js +0 -18
- package/dist-server/repository/box.repository.js +0 -99
- package/dist-server/repository/message.repository.js +0 -22
- package/dist-server/repository/project.repository.js +0 -51
- package/dist-server/repository/repository.module.js +0 -34
- package/dist-server/repository/request-log.repository.js +0 -96
- package/dist-server/repository/task.repository.js +0 -105
- package/dist-server/repository/thread.repository.js +0 -165
- package/dist-server/shared/crewx-home.js +0 -58
- package/dist-server/shared/crewx-state.js +0 -66
- package/dist-server/test-utils/compat-database.js +0 -30
- package/dist-server/utils/tokenizer.js +0 -8
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.TaskRepository = void 0;
|
|
10
|
-
const common_1 = require("@nestjs/common");
|
|
11
|
-
const repository_1 = require("@crewx/sdk/repository");
|
|
12
|
-
const base_sqlite_repository_js_1 = require("./base-sqlite.repository.js");
|
|
13
|
-
let TaskRepository = class TaskRepository extends base_sqlite_repository_js_1.BaseSqliteRepository {
|
|
14
|
-
sdk = new repository_1.TaskRepository();
|
|
15
|
-
/** Find a task by its internal UUID (primary) or by thread_id (fallback).
|
|
16
|
-
* When workspaceId is provided, results are restricted to that workspace. */
|
|
17
|
-
findTaskStatus(taskId, workspaceId) {
|
|
18
|
-
return this.sdk.findTaskStatus(taskId, workspaceId);
|
|
19
|
-
}
|
|
20
|
-
/** Get child tasks for a parent task.
|
|
21
|
-
* @deprecated db 파라미터는 무시됩니다. SDK findChildTasks(parentTaskId, workspaceId?)를 직접 사용하세요. */
|
|
22
|
-
findChildTasks(db, parentTaskId) {
|
|
23
|
-
void db; // SDK가 내부적으로 DB 핸들을 관리
|
|
24
|
-
return this.sdk.findChildTasks(parentTaskId);
|
|
25
|
-
}
|
|
26
|
-
/** Get workspace usage summary, optionally filtered by workspaceId. */
|
|
27
|
-
getWorkspaceUsageSummary(workspaceId) {
|
|
28
|
-
return this.sdk.getWorkspaceUsageSummary(workspaceId);
|
|
29
|
-
}
|
|
30
|
-
/** Aggregate token usage for a thread across all DB paths. */
|
|
31
|
-
getThreadTokenUsage(threadId, workspaceId) {
|
|
32
|
-
return this.sdk.getThreadTokenUsage(threadId, workspaceId);
|
|
33
|
-
}
|
|
34
|
-
/** Find tasks matching a thread by thread_id or command column. */
|
|
35
|
-
findTasksByThread(threadId, workspaceId) {
|
|
36
|
-
return this.sdk.findTasksByThread(threadId, workspaceId);
|
|
37
|
-
}
|
|
38
|
-
/** TSK.ALL: Find all tasks with filtering, search, and pagination. */
|
|
39
|
-
findAllTasks(params) {
|
|
40
|
-
const { rows, total } = this.sdk.findAllTasks({
|
|
41
|
-
workspaceId: params.workspaceId,
|
|
42
|
-
agents: params.agents,
|
|
43
|
-
statuses: params.statuses,
|
|
44
|
-
q: params.q,
|
|
45
|
-
limit: params.limit,
|
|
46
|
-
offset: params.offset,
|
|
47
|
-
sortDir: params.sortDir,
|
|
48
|
-
});
|
|
49
|
-
return { tasks: rows, total };
|
|
50
|
-
}
|
|
51
|
-
/** USG.AGENT: Aggregate per-agent usage within a date range. */
|
|
52
|
-
getAgentUsage(from, to, workspace) {
|
|
53
|
-
const sdkRows = this.sdk.getAgentUsage(from, to, workspace);
|
|
54
|
-
return sdkRows.map((r) => ({
|
|
55
|
-
agent_id: r.agentId,
|
|
56
|
-
workspace_id: r.workspaceId ?? null,
|
|
57
|
-
provider: 'cli',
|
|
58
|
-
input_tokens: r.inputTokens,
|
|
59
|
-
output_tokens: r.outputTokens,
|
|
60
|
-
total_tokens: r.inputTokens + r.outputTokens,
|
|
61
|
-
total_cost: r.costUsd,
|
|
62
|
-
task_count: r.totalTasks,
|
|
63
|
-
active_duration_ms: 0,
|
|
64
|
-
last_active_at: null,
|
|
65
|
-
}));
|
|
66
|
-
}
|
|
67
|
-
/** USG.AGENT.TREND: Get raw task rows for trend aggregation (tz conversion done in service). */
|
|
68
|
-
getAgentUsageTrendRaw(from, to, workspace) {
|
|
69
|
-
const sdkRows = this.sdk.getAgentUsageTrendRaw(from, to, workspace);
|
|
70
|
-
// SDK TrendRow.date → legacy AgentTrendRawRow.started_at 매핑
|
|
71
|
-
return sdkRows.map((r) => ({
|
|
72
|
-
started_at: r.date,
|
|
73
|
-
agent_id: r.agentId,
|
|
74
|
-
input_tokens: r.inputTokens,
|
|
75
|
-
output_tokens: r.outputTokens,
|
|
76
|
-
}));
|
|
77
|
-
}
|
|
78
|
-
/** Find a task by id with workspace isolation for stop operation. */
|
|
79
|
-
findTaskForStop(taskId, workspaceId) {
|
|
80
|
-
const row = this.sdk.findTaskForStop(taskId, workspaceId);
|
|
81
|
-
if (!row)
|
|
82
|
-
return undefined;
|
|
83
|
-
return { id: row.id, status: row.status, pid: row.pid ?? null };
|
|
84
|
-
}
|
|
85
|
-
/** Conditionally update task status to failed (race condition safe).
|
|
86
|
-
* Returns true if row was updated.
|
|
87
|
-
* Note: SDK markTaskFailed returns void; boolean return is preserved for backward compat. */
|
|
88
|
-
markTaskFailed(taskId, error, workspaceId) {
|
|
89
|
-
this.sdk.markTaskFailed(taskId, error, workspaceId);
|
|
90
|
-
// SDK performs status='running' guard internally; assume updated if task was running
|
|
91
|
-
return true;
|
|
92
|
-
}
|
|
93
|
-
/** Fallback: find tasks by prompt text hint. */
|
|
94
|
-
findTasksByPromptHint(hint, workspaceId) {
|
|
95
|
-
return this.sdk.findTasksByPromptHint(hint, workspaceId);
|
|
96
|
-
}
|
|
97
|
-
/** Transition orphaned running tasks (no live process) to failed. */
|
|
98
|
-
reapOrphanedTasks() {
|
|
99
|
-
return this.sdk.reapOrphanedTasks();
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
exports.TaskRepository = TaskRepository;
|
|
103
|
-
exports.TaskRepository = TaskRepository = __decorate([
|
|
104
|
-
(0, common_1.Injectable)()
|
|
105
|
-
], TaskRepository);
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.ThreadRepository = void 0;
|
|
10
|
-
const common_1 = require("@nestjs/common");
|
|
11
|
-
const repository_1 = require("@crewx/sdk/repository");
|
|
12
|
-
const base_sqlite_repository_js_1 = require("./base-sqlite.repository.js");
|
|
13
|
-
let ThreadRepository = class ThreadRepository extends base_sqlite_repository_js_1.BaseSqliteRepository {
|
|
14
|
-
sdkThread = new repository_1.ThreadRepository();
|
|
15
|
-
/** Fetch all threads from all DB paths, deduplicated by id.
|
|
16
|
-
* When workspaceId is provided, only threads matching that workspace
|
|
17
|
-
* (or with NULL workspace_id) are returned. */
|
|
18
|
-
findAllThreads(workspaceId) {
|
|
19
|
-
try {
|
|
20
|
-
return this.sdkThread.findAllThreads(workspaceId);
|
|
21
|
-
}
|
|
22
|
-
catch (e) {
|
|
23
|
-
if (e instanceof repository_1.RepositoryError)
|
|
24
|
-
return [];
|
|
25
|
-
throw e;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
/** Find a single thread row by id across all DB paths. */
|
|
29
|
-
findThreadById(threadId, workspaceId) {
|
|
30
|
-
try {
|
|
31
|
-
return this.sdkThread.findThreadById(threadId, workspaceId);
|
|
32
|
-
}
|
|
33
|
-
catch (e) {
|
|
34
|
-
if (e instanceof repository_1.RepositoryError)
|
|
35
|
-
return undefined;
|
|
36
|
-
throw e;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/** Check if a thread exists in any DB. */
|
|
40
|
-
threadExists(threadId, workspaceId) {
|
|
41
|
-
try {
|
|
42
|
-
return this.sdkThread.threadExists(threadId, workspaceId);
|
|
43
|
-
}
|
|
44
|
-
catch (e) {
|
|
45
|
-
if (e instanceof repository_1.RepositoryError)
|
|
46
|
-
return false;
|
|
47
|
-
throw e;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
/** Aggregate task stats for a thread across all DB paths. */
|
|
51
|
-
aggregateTaskStats(threadId, workspaceId) {
|
|
52
|
-
try {
|
|
53
|
-
const result = this.sdkThread.aggregateTaskStats(threadId, workspaceId);
|
|
54
|
-
return {
|
|
55
|
-
taskCount: result.taskCount,
|
|
56
|
-
inputTokens: result.inputTokens,
|
|
57
|
-
outputTokens: result.outputTokens,
|
|
58
|
-
costUsd: result.costUsd,
|
|
59
|
-
// SDK returns agentIds, legacy returns agents
|
|
60
|
-
agents: result.agentIds,
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
catch (e) {
|
|
64
|
-
if (e instanceof repository_1.RepositoryError) {
|
|
65
|
-
return { taskCount: 0, inputTokens: 0, outputTokens: 0, costUsd: 0, agents: [] };
|
|
66
|
-
}
|
|
67
|
-
throw e;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
/** Fetch top-level tasks for a thread (parent_task_id IS NULL/empty), deduplicated. */
|
|
71
|
-
findTopLevelTasks(threadId, workspaceId) {
|
|
72
|
-
try {
|
|
73
|
-
return this.sdkThread.findTopLevelTasks(threadId, workspaceId);
|
|
74
|
-
}
|
|
75
|
-
catch (e) {
|
|
76
|
-
if (e instanceof repository_1.RepositoryError)
|
|
77
|
-
return [];
|
|
78
|
-
throw e;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
/** Fetch ALL tasks for a thread (including children), deduplicated. */
|
|
82
|
-
findAllTasks(threadId, workspaceId) {
|
|
83
|
-
try {
|
|
84
|
-
return this.sdkThread.findAllTasks(threadId, workspaceId);
|
|
85
|
-
}
|
|
86
|
-
catch (e) {
|
|
87
|
-
if (e instanceof repository_1.RepositoryError)
|
|
88
|
-
return [];
|
|
89
|
-
throw e;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
/** Find a single task by id and threadId across all DB paths, with optional children. */
|
|
93
|
-
findTaskById(threadId, taskId, workspaceId) {
|
|
94
|
-
try {
|
|
95
|
-
return this.sdkThread.findTaskById(threadId, taskId, workspaceId);
|
|
96
|
-
}
|
|
97
|
-
catch (e) {
|
|
98
|
-
if (e instanceof repository_1.RepositoryError)
|
|
99
|
-
return undefined;
|
|
100
|
-
throw e;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
/** Batch fetch lightweight task summaries for multiple thread IDs. */
|
|
104
|
-
batchFetchTasks(threadIds, workspaceId) {
|
|
105
|
-
try {
|
|
106
|
-
return this.sdkThread.batchFetchTasks(threadIds, workspaceId);
|
|
107
|
-
}
|
|
108
|
-
catch (e) {
|
|
109
|
-
if (e instanceof repository_1.RepositoryError)
|
|
110
|
-
return new Map();
|
|
111
|
-
throw e;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
/** Update thread title and set title_locked=1 to prevent auto-overwrite.
|
|
115
|
-
* Returns true if the thread was found and updated, false if not found. */
|
|
116
|
-
updateThreadTitle(threadId, title, workspaceId) {
|
|
117
|
-
try {
|
|
118
|
-
const existing = this.sdkThread.findThreadById(threadId, workspaceId);
|
|
119
|
-
if (!existing)
|
|
120
|
-
return false;
|
|
121
|
-
this.sdkThread.updateThreadTitle(threadId, title, workspaceId);
|
|
122
|
-
return true;
|
|
123
|
-
}
|
|
124
|
-
catch (e) {
|
|
125
|
-
if (e instanceof repository_1.RepositoryError && e.code === 'NOT_FOUND')
|
|
126
|
-
return false;
|
|
127
|
-
throw e;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
/** Toggle pinned 0↔1 for a thread. Returns new state or null if not found. */
|
|
131
|
-
togglePin(threadId, workspaceId) {
|
|
132
|
-
try {
|
|
133
|
-
return this.sdkThread.togglePin(threadId, workspaceId);
|
|
134
|
-
}
|
|
135
|
-
catch (e) {
|
|
136
|
-
if (e instanceof repository_1.RepositoryError)
|
|
137
|
-
return null;
|
|
138
|
-
throw e;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
/** Toggle starred 0↔1 for a thread. Returns new state or null if not found. */
|
|
142
|
-
toggleStar(threadId, workspaceId) {
|
|
143
|
-
try {
|
|
144
|
-
return this.sdkThread.toggleStar(threadId, workspaceId);
|
|
145
|
-
}
|
|
146
|
-
catch (e) {
|
|
147
|
-
if (e instanceof repository_1.RepositoryError)
|
|
148
|
-
return null;
|
|
149
|
-
throw e;
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
/** UPSERT thread (used by MSG.SEND).
|
|
153
|
-
* workspace_id is required on INSERT to prevent NULL workspace rows. */
|
|
154
|
-
upsertThread(threadId, opts) {
|
|
155
|
-
this.sdkThread.upsertThread(threadId, {
|
|
156
|
-
platform: opts.platform ?? 'cli',
|
|
157
|
-
workspaceId: opts.workspaceId,
|
|
158
|
-
title: opts.title,
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
|
-
exports.ThreadRepository = ThreadRepository;
|
|
163
|
-
exports.ThreadRepository = ThreadRepository = __decorate([
|
|
164
|
-
(0, common_1.Injectable)()
|
|
165
|
-
], ThreadRepository);
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.getCrewxHome = getCrewxHome;
|
|
37
|
-
const os = __importStar(require("os"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
|
-
const fs = __importStar(require("fs"));
|
|
40
|
-
/**
|
|
41
|
-
* Returns the canonical path to the crewx home directory (~/.crewx/).
|
|
42
|
-
* Priority: CREWX_HOME env > XDG_CONFIG_HOME/crewx (non-Windows) > ~/.crewx/
|
|
43
|
-
*/
|
|
44
|
-
function getCrewxHome() {
|
|
45
|
-
if (process.env.CREWX_HOME) {
|
|
46
|
-
try {
|
|
47
|
-
return fs.realpathSync(process.env.CREWX_HOME);
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
// CREWX_HOME path doesn't exist yet — fall back to default
|
|
51
|
-
return path.join(os.homedir(), '.crewx');
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
if (process.platform !== 'win32' && process.env.XDG_CONFIG_HOME) {
|
|
55
|
-
return path.join(process.env.XDG_CONFIG_HOME, 'crewx');
|
|
56
|
-
}
|
|
57
|
-
return path.join(os.homedir(), '.crewx');
|
|
58
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.readCrewxState = readCrewxState;
|
|
37
|
-
exports.writeCrewxState = writeCrewxState;
|
|
38
|
-
const fs = __importStar(require("fs"));
|
|
39
|
-
const path = __importStar(require("path"));
|
|
40
|
-
const crewx_home_js_1 = require("./crewx-home.js");
|
|
41
|
-
const STATE_FILE = 'state.json';
|
|
42
|
-
function readCrewxState() {
|
|
43
|
-
try {
|
|
44
|
-
const filePath = path.join((0, crewx_home_js_1.getCrewxHome)(), STATE_FILE);
|
|
45
|
-
if (!fs.existsSync(filePath))
|
|
46
|
-
return {};
|
|
47
|
-
const raw = fs.readFileSync(filePath, 'utf-8');
|
|
48
|
-
return JSON.parse(raw);
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
return {};
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
function writeCrewxState(state) {
|
|
55
|
-
try {
|
|
56
|
-
const dir = (0, crewx_home_js_1.getCrewxHome)();
|
|
57
|
-
if (!fs.existsSync(dir)) {
|
|
58
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
59
|
-
}
|
|
60
|
-
const filePath = path.join(dir, STATE_FILE);
|
|
61
|
-
fs.writeFileSync(filePath, JSON.stringify(state, null, 2), 'utf-8');
|
|
62
|
-
}
|
|
63
|
-
catch {
|
|
64
|
-
// read-only FS etc — fail silently (fail-open)
|
|
65
|
-
}
|
|
66
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.CompatDatabase = void 0;
|
|
7
|
-
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
8
|
-
class CompatDatabase {
|
|
9
|
-
inner;
|
|
10
|
-
constructor(path, options) {
|
|
11
|
-
const readonly = options?.readonly ?? options?.readOnly ?? false;
|
|
12
|
-
this.inner = new better_sqlite3_1.default(path, { readonly });
|
|
13
|
-
}
|
|
14
|
-
run(sql, values) {
|
|
15
|
-
return this.inner.prepare(sql).run(...(values ?? []));
|
|
16
|
-
}
|
|
17
|
-
get(sql, values) {
|
|
18
|
-
return (this.inner.prepare(sql).get(...(values ?? [])) ?? null);
|
|
19
|
-
}
|
|
20
|
-
all(sql, values) {
|
|
21
|
-
return this.inner.prepare(sql).all(...(values ?? []));
|
|
22
|
-
}
|
|
23
|
-
exec(sql) {
|
|
24
|
-
this.inner.exec(sql);
|
|
25
|
-
}
|
|
26
|
-
close() {
|
|
27
|
-
this.inner.close();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
exports.CompatDatabase = CompatDatabase;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.countTokens = countTokens;
|
|
4
|
-
const js_tiktoken_1 = require("js-tiktoken");
|
|
5
|
-
const enc = (0, js_tiktoken_1.encodingForModel)('gpt-4o');
|
|
6
|
-
function countTokens(text) {
|
|
7
|
-
return enc.encode(text).length;
|
|
8
|
-
}
|