@crewx/cli 0.8.3-rc.9 → 0.8.4-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -33
- package/bin/crewx +2 -2
- package/dist/ai-provider.service.d.ts +34 -0
- package/dist/ai-provider.service.js +311 -0
- package/dist/ai-provider.service.js.map +1 -0
- package/dist/ai.service.d.ts +17 -0
- package/dist/ai.service.js +51 -0
- package/dist/ai.service.js.map +1 -0
- package/dist/app.module.d.ts +5 -0
- package/dist/app.module.js +165 -0
- package/dist/app.module.js.map +1 -0
- package/dist/cli/agent.handler.d.ts +2 -0
- package/dist/cli/agent.handler.js +186 -0
- package/dist/cli/agent.handler.js.map +1 -0
- package/dist/cli/builtin.handler.d.ts +3 -0
- package/dist/cli/builtin.handler.js +110 -0
- package/dist/cli/builtin.handler.js.map +1 -0
- package/dist/cli/chat.handler.d.ts +20 -0
- package/dist/cli/chat.handler.js +446 -0
- package/dist/cli/chat.handler.js.map +1 -0
- package/dist/cli/cli.handler.d.ts +4 -0
- package/dist/cli/cli.handler.js +119 -0
- package/dist/cli/cli.handler.js.map +1 -0
- package/dist/cli/doctor.handler.d.ts +38 -0
- package/dist/cli/doctor.handler.js +495 -0
- package/dist/cli/doctor.handler.js.map +1 -0
- package/dist/cli/execute.handler.d.ts +2 -0
- package/dist/cli/execute.handler.js +321 -0
- package/dist/cli/execute.handler.js.map +1 -0
- package/dist/cli/help.handler.d.ts +2 -0
- package/dist/cli/help.handler.js +10 -0
- package/dist/cli/help.handler.js.map +1 -0
- package/dist/cli/init.handler.d.ts +26 -0
- package/dist/cli/init.handler.js +450 -0
- package/dist/cli/init.handler.js.map +1 -0
- package/dist/cli/log.handler.d.ts +2 -0
- package/dist/cli/log.handler.js +69 -0
- package/dist/cli/log.handler.js.map +1 -0
- package/dist/cli/mcp.handler.d.ts +3 -0
- package/dist/cli/mcp.handler.js +121 -0
- package/dist/cli/mcp.handler.js.map +1 -0
- package/dist/cli/query.handler.d.ts +2 -0
- package/dist/cli/query.handler.js +379 -0
- package/dist/cli/query.handler.js.map +1 -0
- package/dist/cli/skill.handler.d.ts +2 -0
- package/dist/cli/skill.handler.js +252 -0
- package/dist/cli/skill.handler.js.map +1 -0
- package/dist/cli/slack-files.handler.d.ts +2 -0
- package/dist/cli/slack-files.handler.js +291 -0
- package/dist/cli/slack-files.handler.js.map +1 -0
- package/dist/cli/template.handler.d.ts +2 -0
- package/dist/cli/template.handler.js +188 -0
- package/dist/cli/template.handler.js.map +1 -0
- package/dist/cli/templates.handler.d.ts +2 -0
- package/dist/cli/templates.handler.js +100 -0
- package/dist/cli/templates.handler.js.map +1 -0
- package/dist/cli-options.d.ts +39 -0
- package/dist/cli-options.js +355 -0
- package/dist/cli-options.js.map +1 -0
- package/dist/commands/agent.js +23 -23
- package/dist/commands/init.js +36 -28
- package/dist/commands/resolve-prompt.d.ts +4 -4
- package/dist/commands/resolve-prompt.js +5 -5
- package/dist/config/timeout.config.d.ts +14 -0
- package/dist/config/timeout.config.js +34 -0
- package/dist/config/timeout.config.js.map +1 -0
- package/dist/conversation/base-conversation-history.provider.d.ts +12 -0
- package/dist/conversation/base-conversation-history.provider.js +45 -0
- package/dist/conversation/base-conversation-history.provider.js.map +1 -0
- package/dist/conversation/cli-conversation-history.provider.d.ts +16 -0
- package/dist/conversation/cli-conversation-history.provider.js +111 -0
- package/dist/conversation/cli-conversation-history.provider.js.map +1 -0
- package/dist/conversation/conversation-provider.factory.d.ts +10 -0
- package/dist/conversation/conversation-provider.factory.js +50 -0
- package/dist/conversation/conversation-provider.factory.js.map +1 -0
- package/dist/conversation/index.d.ts +6 -0
- package/dist/conversation/index.js +27 -0
- package/dist/conversation/index.js.map +1 -0
- package/dist/conversation/slack-conversation-history.provider.d.ts +29 -0
- package/dist/conversation/slack-conversation-history.provider.js +302 -0
- package/dist/conversation/slack-conversation-history.provider.js.map +1 -0
- package/dist/crewx.tool.d.ts +359 -0
- package/dist/crewx.tool.js +2501 -0
- package/dist/crewx.tool.js.map +1 -0
- package/dist/crewx.tool.spec.d.ts +1 -0
- package/dist/crewx.tool.spec.js +158 -0
- package/dist/crewx.tool.spec.js.map +1 -0
- package/dist/guards/bearer-auth.guard.d.ts +7 -0
- package/dist/guards/bearer-auth.guard.js +44 -0
- package/dist/guards/bearer-auth.guard.js.map +1 -0
- package/dist/health.controller.d.ts +6 -0
- package/dist/health.controller.js +32 -0
- package/dist/health.controller.js.map +1 -0
- package/dist/main.js +72 -71
- package/dist/main.js.map +1 -0
- package/dist/mcp.controller.d.ts +8 -0
- package/dist/mcp.controller.js +62 -0
- package/dist/mcp.controller.js.map +1 -0
- package/dist/package.json +3 -0
- package/dist/providers/dynamic-provider.factory.d.ts +15 -0
- package/dist/providers/dynamic-provider.factory.js +133 -0
- package/dist/providers/dynamic-provider.factory.js.map +1 -0
- package/dist/providers/logger.adapter.d.ts +6 -0
- package/dist/providers/logger.adapter.js +102 -0
- package/dist/providers/logger.adapter.js.map +1 -0
- package/dist/services/agent-loader.service.d.ts +35 -0
- package/dist/services/agent-loader.service.js +622 -0
- package/dist/services/agent-loader.service.js.map +1 -0
- package/dist/services/auth.service.d.ts +9 -0
- package/dist/services/auth.service.js +47 -0
- package/dist/services/auth.service.js.map +1 -0
- package/dist/services/config-validator.service.d.ts +29 -0
- package/dist/services/config-validator.service.js +483 -0
- package/dist/services/config-validator.service.js.map +1 -0
- package/dist/services/config.service.d.ts +45 -0
- package/dist/services/config.service.js +352 -0
- package/dist/services/config.service.js.map +1 -0
- package/dist/services/document-loader.service.d.ts +21 -0
- package/dist/services/document-loader.service.js +156 -0
- package/dist/services/document-loader.service.js.map +1 -0
- package/dist/services/help.service.d.ts +5 -0
- package/dist/services/help.service.js +139 -0
- package/dist/services/help.service.js.map +1 -0
- package/dist/services/intelligent-compression.service.d.ts +20 -0
- package/dist/services/intelligent-compression.service.js +179 -0
- package/dist/services/intelligent-compression.service.js.map +1 -0
- package/dist/services/mcp-client.service.d.ts +26 -0
- package/dist/services/mcp-client.service.js +81 -0
- package/dist/services/mcp-client.service.js.map +1 -0
- package/dist/services/parallel-processing.service.d.ts +108 -0
- package/dist/services/parallel-processing.service.js +333 -0
- package/dist/services/parallel-processing.service.js.map +1 -0
- package/dist/services/provider-bridge.service.d.ts +35 -0
- package/dist/services/provider-bridge.service.js +224 -0
- package/dist/services/provider-bridge.service.js.map +1 -0
- package/dist/services/remote-agent.service.d.ts +50 -0
- package/dist/services/remote-agent.service.js +171 -0
- package/dist/services/remote-agent.service.js.map +1 -0
- package/dist/services/result-formatter.service.d.ts +27 -0
- package/dist/services/result-formatter.service.js +126 -0
- package/dist/services/result-formatter.service.js.map +1 -0
- package/dist/services/skill-loader.service.d.ts +15 -0
- package/dist/services/skill-loader.service.js +278 -0
- package/dist/services/skill-loader.service.js.map +1 -0
- package/dist/services/skill.service.d.ts +67 -0
- package/dist/services/skill.service.js +670 -0
- package/dist/services/skill.service.js.map +1 -0
- package/dist/services/skill.service.spec.d.ts +1 -0
- package/dist/services/skill.service.spec.js +35 -0
- package/dist/services/skill.service.spec.js.map +1 -0
- package/dist/services/task-management.service.d.ts +65 -0
- package/dist/services/task-management.service.js +288 -0
- package/dist/services/task-management.service.js.map +1 -0
- package/dist/services/template.service.d.ts +61 -0
- package/dist/services/template.service.js +416 -0
- package/dist/services/template.service.js.map +1 -0
- package/dist/services/tool-call.service.d.ts +19 -0
- package/dist/services/tool-call.service.js +1061 -0
- package/dist/services/tool-call.service.js.map +1 -0
- package/dist/services/tracing.service.d.ts +200 -0
- package/dist/services/tracing.service.js +1290 -0
- package/dist/services/tracing.service.js.map +1 -0
- package/dist/slack/formatters/message.formatter.d.ts +32 -0
- package/dist/slack/formatters/message.formatter.js +352 -0
- package/dist/slack/formatters/message.formatter.js.map +1 -0
- package/dist/slack/services/slack-file-download.service.d.ts +58 -0
- package/dist/slack/services/slack-file-download.service.js +558 -0
- package/dist/slack/services/slack-file-download.service.js.map +1 -0
- package/dist/slack/slack-bot.d.ts +33 -0
- package/dist/slack/slack-bot.js +567 -0
- package/dist/slack/slack-bot.js.map +1 -0
- package/dist/stderr.logger.d.ts +8 -0
- package/dist/stderr.logger.js +26 -0
- package/dist/stderr.logger.js.map +1 -0
- package/dist/types/usage.types.d.ts +107 -0
- package/dist/types/usage.types.js +3 -0
- package/dist/types/usage.types.js.map +1 -0
- package/dist/utils/config-utils.d.ts +15 -0
- package/dist/utils/config-utils.js +69 -0
- package/dist/utils/config-utils.js.map +1 -0
- package/dist/utils/extract-text.d.ts +1 -0
- package/dist/utils/extract-text.js +15 -0
- package/dist/utils/extract-text.js.map +1 -0
- package/dist/utils/mcp-installer.d.ts +20 -0
- package/dist/utils/mcp-installer.js +199 -0
- package/dist/utils/mcp-installer.js.map +1 -0
- package/dist/utils/project-hash.d.ts +6 -0
- package/dist/utils/project-hash.js +70 -0
- package/dist/utils/project-hash.js.map +1 -0
- package/dist/utils/simple-security.d.ts +3 -0
- package/dist/utils/simple-security.js +20 -0
- package/dist/utils/simple-security.js.map +1 -0
- package/dist/utils/stdin-utils.d.ts +6 -0
- package/dist/utils/stdin-utils.js +109 -0
- package/dist/utils/stdin-utils.js.map +1 -0
- package/dist/utils/template-processor.d.ts +4 -0
- package/dist/utils/template-processor.js +266 -0
- package/dist/utils/template-processor.js.map +1 -0
- package/dist/utils/terminal-message-formatter.d.ts +23 -0
- package/dist/utils/terminal-message-formatter.js +136 -0
- package/dist/utils/terminal-message-formatter.js.map +1 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +17 -0
- package/dist/version.js.map +1 -0
- package/dist/workspace.service.d.ts +44 -0
- package/dist/workspace.service.js +299 -0
- package/dist/workspace.service.js.map +1 -0
- package/package.json +18 -18
- package/dist/commands/task-db.d.ts +0 -33
- package/dist/commands/task-db.js +0 -107
- package/dist/examples/deny-secrets-plugin.d.ts +0 -22
- package/dist/examples/deny-secrets-plugin.js +0 -40
- package/dist/plugins/examples/echo-hook.d.ts +0 -24
- package/dist/plugins/examples/echo-hook.js +0 -60
- package/dist/plugins/examples/verify-echo-hook.d.ts +0 -8
- package/dist/plugins/examples/verify-echo-hook.js +0 -47
- package/dist/plugins/sqlite-tracing.d.ts +0 -11
- package/dist/plugins/sqlite-tracing.js +0 -19
- package/dist/repository/workspace.repository.d.ts +0 -26
- package/dist/repository/workspace.repository.js +0 -111
- package/dist/schema/tasks.d.ts +0 -7
- package/dist/schema/tasks.js +0 -48
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env npx tsx
|
|
2
|
-
"use strict";
|
|
3
|
-
/**
|
|
4
|
-
* Phase 0 e2e verification — EchoHookPlugin logs Claude Code tool calls.
|
|
5
|
-
*
|
|
6
|
-
* Run: npx tsx packages/cli/src/plugins/examples/verify-echo-hook.ts
|
|
7
|
-
* Prereq: claude CLI installed, crewx.yaml with @claude agent
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
const sdk_1 = require("@crewx/sdk");
|
|
11
|
-
const echo_hook_1 = require("./echo-hook");
|
|
12
|
-
const fs_1 = require("fs");
|
|
13
|
-
const path_1 = require("path");
|
|
14
|
-
const os_1 = require("os");
|
|
15
|
-
const LOG_PATH = (0, path_1.join)((0, os_1.homedir)(), '.crewx', 'logs', 'echo-hook.log');
|
|
16
|
-
async function main() {
|
|
17
|
-
if ((0, fs_1.existsSync)(LOG_PATH))
|
|
18
|
-
(0, fs_1.unlinkSync)(LOG_PATH);
|
|
19
|
-
const crewx = await sdk_1.Crewx.loadYaml('crewx.yaml');
|
|
20
|
-
await crewx.use(new echo_hook_1.EchoHookPlugin());
|
|
21
|
-
console.log('[verify] querying @claude with "ls"...');
|
|
22
|
-
await crewx.query('@claude', 'Run ls in the current directory. Use the Bash tool.');
|
|
23
|
-
await crewx.close();
|
|
24
|
-
if (!(0, fs_1.existsSync)(LOG_PATH)) {
|
|
25
|
-
console.error('[FAIL] echo-hook.log not created');
|
|
26
|
-
process.exit(1);
|
|
27
|
-
}
|
|
28
|
-
const lines = (0, fs_1.readFileSync)(LOG_PATH, 'utf8').trim().split('\n');
|
|
29
|
-
const entries = lines.map((l) => JSON.parse(l));
|
|
30
|
-
const hasBeforeTool = entries.some((e) => e.event === 'beforeTool');
|
|
31
|
-
const hasTraceId = entries.every((e) => e.traceId?.startsWith('tsk_'));
|
|
32
|
-
const hasToolName = entries
|
|
33
|
-
.filter((e) => e.event === 'beforeTool')
|
|
34
|
-
.every((e) => typeof e.tool?.rawName === 'string' && e.tool.rawName.length > 0);
|
|
35
|
-
console.log(`[verify] entries: ${entries.length}`);
|
|
36
|
-
console.log(`[verify] beforeTool: ${hasBeforeTool}`);
|
|
37
|
-
console.log(`[verify] traceId: ${hasTraceId}`);
|
|
38
|
-
console.log(`[verify] toolName: ${hasToolName}`);
|
|
39
|
-
if (hasBeforeTool && hasTraceId && hasToolName) {
|
|
40
|
-
console.log('[PASS] Phase 0 e2e verification passed');
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
console.error('[FAIL] Some checks failed');
|
|
44
|
-
process.exit(1);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
main().catch((err) => { console.error(err); process.exit(1); });
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Re-export of SqliteTracingPlugin with a CLI-friendly constructor that
|
|
3
|
-
* accepts a plain dbRoot string (in addition to the SDK's options-object form).
|
|
4
|
-
*/
|
|
5
|
-
import { SqliteTracingPlugin as SdkSqliteTracingPlugin } from '@crewx/sdk/plugins';
|
|
6
|
-
export declare class SqliteTracingPlugin extends SdkSqliteTracingPlugin {
|
|
7
|
-
constructor(dbRootOrOpts?: string | {
|
|
8
|
-
dbRoot?: string;
|
|
9
|
-
version?: string;
|
|
10
|
-
});
|
|
11
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SqliteTracingPlugin = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Re-export of SqliteTracingPlugin with a CLI-friendly constructor that
|
|
6
|
-
* accepts a plain dbRoot string (in addition to the SDK's options-object form).
|
|
7
|
-
*/
|
|
8
|
-
const plugins_1 = require("@crewx/sdk/plugins");
|
|
9
|
-
class SqliteTracingPlugin extends plugins_1.SqliteTracingPlugin {
|
|
10
|
-
constructor(dbRootOrOpts) {
|
|
11
|
-
if (typeof dbRootOrOpts === 'string') {
|
|
12
|
-
super({ dbRoot: dbRootOrOpts });
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
super(dbRootOrOpts);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
exports.SqliteTracingPlugin = SqliteTracingPlugin;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import BetterSqlite3 from 'better-sqlite3';
|
|
2
|
-
export interface WorkspaceRepositoryOptions {
|
|
3
|
-
/** Root directory under which `.crewx/crewx.db` lives. Defaults to `os.homedir()`. */
|
|
4
|
-
dbRoot?: string;
|
|
5
|
-
}
|
|
6
|
-
export declare class WorkspaceRepository {
|
|
7
|
-
private readonly dbPath;
|
|
8
|
-
constructor(opts?: WorkspaceRepositoryOptions);
|
|
9
|
-
/**
|
|
10
|
-
* Register a CLI workspace in the global CrewX DB.
|
|
11
|
-
*
|
|
12
|
-
* This is intentionally CLI-owned, not SDK-owned: workspace registration is
|
|
13
|
-
* CrewX application metadata, while the SDK only needs pure workspace helpers.
|
|
14
|
-
* Registration is best-effort so `crewx init` remains usable even if tracing
|
|
15
|
-
* DB setup fails.
|
|
16
|
-
*/
|
|
17
|
-
registerWorkspace(workspacePath: string): void;
|
|
18
|
-
ensureSchema(db: InstanceType<typeof BetterSqlite3>): void;
|
|
19
|
-
resolveSlug(db: InstanceType<typeof BetterSqlite3>, workspaceId: string, workspacePath: string): string;
|
|
20
|
-
ensureRow(db: InstanceType<typeof BetterSqlite3>, opts: {
|
|
21
|
-
id: string;
|
|
22
|
-
slug: string;
|
|
23
|
-
name: string;
|
|
24
|
-
workspacePath: string;
|
|
25
|
-
}): void;
|
|
26
|
-
}
|
|
@@ -1,111 +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.WorkspaceRepository = void 0;
|
|
7
|
-
const fs_1 = require("fs");
|
|
8
|
-
const path_1 = require("path");
|
|
9
|
-
const os_1 = require("os");
|
|
10
|
-
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
11
|
-
const sdk_1 = require("@crewx/sdk");
|
|
12
|
-
class WorkspaceRepository {
|
|
13
|
-
dbPath;
|
|
14
|
-
constructor(opts = {}) {
|
|
15
|
-
this.dbPath = (0, path_1.join)(opts.dbRoot ?? (0, os_1.homedir)(), '.crewx', 'crewx.db');
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Register a CLI workspace in the global CrewX DB.
|
|
19
|
-
*
|
|
20
|
-
* This is intentionally CLI-owned, not SDK-owned: workspace registration is
|
|
21
|
-
* CrewX application metadata, while the SDK only needs pure workspace helpers.
|
|
22
|
-
* Registration is best-effort so `crewx init` remains usable even if tracing
|
|
23
|
-
* DB setup fails.
|
|
24
|
-
*/
|
|
25
|
-
registerWorkspace(workspacePath) {
|
|
26
|
-
const normalizedPath = (0, sdk_1.normalizeWorkspacePath)(workspacePath);
|
|
27
|
-
try {
|
|
28
|
-
const dbDir = (0, path_1.dirname)(this.dbPath);
|
|
29
|
-
if (!(0, fs_1.existsSync)(dbDir)) {
|
|
30
|
-
(0, fs_1.mkdirSync)(dbDir, { recursive: true });
|
|
31
|
-
}
|
|
32
|
-
const db = new better_sqlite3_1.default(this.dbPath);
|
|
33
|
-
try {
|
|
34
|
-
this.ensureSchema(db);
|
|
35
|
-
const id = (0, sdk_1.hashWorkspaceId)(normalizedPath);
|
|
36
|
-
const name = (0, path_1.basename)(normalizedPath);
|
|
37
|
-
const slug = this.resolveSlug(db, id, normalizedPath);
|
|
38
|
-
this.ensureRow(db, { id, slug, name, workspacePath: normalizedPath });
|
|
39
|
-
}
|
|
40
|
-
finally {
|
|
41
|
-
db.close();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
catch {
|
|
45
|
-
// Non-fatal: workspace registration must never crash `crewx init`.
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
ensureSchema(db) {
|
|
49
|
-
db.exec(`
|
|
50
|
-
CREATE TABLE IF NOT EXISTS workspaces (
|
|
51
|
-
id TEXT PRIMARY KEY,
|
|
52
|
-
slug TEXT NOT NULL UNIQUE,
|
|
53
|
-
name TEXT NOT NULL,
|
|
54
|
-
workspace_path TEXT,
|
|
55
|
-
is_active INTEGER NOT NULL DEFAULT 1,
|
|
56
|
-
created_at TEXT NOT NULL,
|
|
57
|
-
updated_at TEXT NOT NULL
|
|
58
|
-
)
|
|
59
|
-
`);
|
|
60
|
-
db.exec(`
|
|
61
|
-
CREATE TABLE IF NOT EXISTS threads (
|
|
62
|
-
id TEXT PRIMARY KEY,
|
|
63
|
-
workspace_id TEXT,
|
|
64
|
-
platform TEXT NOT NULL DEFAULT 'cli',
|
|
65
|
-
title TEXT,
|
|
66
|
-
first_message TEXT,
|
|
67
|
-
last_message TEXT,
|
|
68
|
-
message_count INTEGER NOT NULL DEFAULT 0,
|
|
69
|
-
created_at TEXT NOT NULL,
|
|
70
|
-
updated_at TEXT NOT NULL,
|
|
71
|
-
metadata TEXT,
|
|
72
|
-
FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE SET NULL
|
|
73
|
-
)
|
|
74
|
-
`);
|
|
75
|
-
}
|
|
76
|
-
resolveSlug(db, workspaceId, workspacePath) {
|
|
77
|
-
const basenameSlug = (0, path_1.basename)(workspacePath);
|
|
78
|
-
const parentSlug = `${(0, path_1.basename)((0, path_1.dirname)(workspacePath))}/${basenameSlug}`;
|
|
79
|
-
const candidates = [basenameSlug, parentSlug];
|
|
80
|
-
try {
|
|
81
|
-
const slugExistsForOtherWorkspace = (slug) => !!db
|
|
82
|
-
.prepare('SELECT id FROM workspaces WHERE slug = ? AND id != ?')
|
|
83
|
-
.get(slug, workspaceId);
|
|
84
|
-
for (const slug of candidates) {
|
|
85
|
-
if (!slugExistsForOtherWorkspace(slug))
|
|
86
|
-
return slug;
|
|
87
|
-
}
|
|
88
|
-
for (let suffix = 2; suffix < 1000; suffix += 1) {
|
|
89
|
-
const slug = `${parentSlug}-${suffix}`;
|
|
90
|
-
if (!slugExistsForOtherWorkspace(slug))
|
|
91
|
-
return slug;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
catch {
|
|
95
|
-
// workspaces table may not yet exist during early migration.
|
|
96
|
-
}
|
|
97
|
-
return basenameSlug;
|
|
98
|
-
}
|
|
99
|
-
ensureRow(db, opts) {
|
|
100
|
-
const { id, slug, name, workspacePath } = opts;
|
|
101
|
-
const now = new Date().toISOString();
|
|
102
|
-
db.prepare(`
|
|
103
|
-
INSERT OR IGNORE INTO workspaces (id, slug, name, workspace_path, is_active, created_at, updated_at)
|
|
104
|
-
VALUES (?, ?, ?, ?, 1, ?, ?)
|
|
105
|
-
`).run(id, slug, name, workspacePath, now, now);
|
|
106
|
-
db.prepare(`
|
|
107
|
-
UPDATE workspaces SET workspace_path = ?, updated_at = ? WHERE id = ? AND workspace_path IS NULL
|
|
108
|
-
`).run(workspacePath, now, id);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
exports.WorkspaceRepository = WorkspaceRepository;
|
package/dist/schema/tasks.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type BetterSqlite3 from 'better-sqlite3';
|
|
2
|
-
/**
|
|
3
|
-
* Ensure the `tasks` table exists in the given database.
|
|
4
|
-
* Safe to call multiple times — CREATE TABLE IF NOT EXISTS is idempotent.
|
|
5
|
-
* Owns the canonical schema for the CLI-side tasks table.
|
|
6
|
-
*/
|
|
7
|
-
export declare function ensureTasksSchema(db: InstanceType<typeof BetterSqlite3>): void;
|
package/dist/schema/tasks.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ensureTasksSchema = ensureTasksSchema;
|
|
4
|
-
/**
|
|
5
|
-
* Ensure the `tasks` table exists in the given database.
|
|
6
|
-
* Safe to call multiple times — CREATE TABLE IF NOT EXISTS is idempotent.
|
|
7
|
-
* Owns the canonical schema for the CLI-side tasks table.
|
|
8
|
-
*/
|
|
9
|
-
function ensureTasksSchema(db) {
|
|
10
|
-
db.exec(`
|
|
11
|
-
CREATE TABLE IF NOT EXISTS tasks (
|
|
12
|
-
id TEXT PRIMARY KEY,
|
|
13
|
-
agent_id TEXT,
|
|
14
|
-
user_id TEXT,
|
|
15
|
-
prompt TEXT,
|
|
16
|
-
mode TEXT,
|
|
17
|
-
status TEXT NOT NULL,
|
|
18
|
-
result TEXT,
|
|
19
|
-
error TEXT,
|
|
20
|
-
started_at TEXT NOT NULL,
|
|
21
|
-
completed_at TEXT,
|
|
22
|
-
duration_ms INTEGER,
|
|
23
|
-
metadata TEXT,
|
|
24
|
-
project_id TEXT,
|
|
25
|
-
project_name TEXT,
|
|
26
|
-
trace_id TEXT,
|
|
27
|
-
parent_task_id TEXT,
|
|
28
|
-
caller_agent_id TEXT,
|
|
29
|
-
model TEXT,
|
|
30
|
-
platform TEXT,
|
|
31
|
-
crewx_version TEXT,
|
|
32
|
-
input_tokens INTEGER DEFAULT 0,
|
|
33
|
-
output_tokens INTEGER DEFAULT 0,
|
|
34
|
-
cost_usd REAL,
|
|
35
|
-
pid INTEGER,
|
|
36
|
-
rendered_prompt TEXT,
|
|
37
|
-
command TEXT,
|
|
38
|
-
coding_agent_command TEXT,
|
|
39
|
-
exit_code INTEGER,
|
|
40
|
-
logs TEXT,
|
|
41
|
-
thread_id TEXT,
|
|
42
|
-
project_ref TEXT,
|
|
43
|
-
workspace_id TEXT,
|
|
44
|
-
workspace_name TEXT,
|
|
45
|
-
cached_input_tokens INTEGER DEFAULT 0
|
|
46
|
-
)
|
|
47
|
-
`);
|
|
48
|
-
}
|