@crewx/cli 0.9.0-rc.8 → 0.9.0-rc.80
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/bootstrap/codex-writable-roots.d.ts +13 -0
- package/dist/bootstrap/codex-writable-roots.js +25 -0
- package/dist/bootstrap/crewx-cli.js +2 -1
- package/dist/builtin.js +1 -0
- package/dist/commands/agent.js +0 -58
- package/dist/commands/db.d.ts +1 -0
- package/dist/commands/db.js +191 -1
- package/dist/commands/doctor.d.ts +17 -0
- package/dist/commands/doctor.js +21 -11
- package/dist/commands/execute.d.ts +4 -0
- package/dist/commands/execute.js +103 -3
- package/dist/commands/init.js +22 -1
- package/dist/commands/log.js +4 -3
- package/dist/commands/parse-common-flags.d.ts +5 -1
- package/dist/commands/parse-common-flags.js +6 -2
- package/dist/commands/ps.js +7 -6
- package/dist/commands/publish.d.ts +1 -0
- package/dist/commands/publish.js +270 -0
- package/dist/commands/query.d.ts +1 -0
- package/dist/commands/query.js +11 -2
- package/dist/commands/registry.js +3 -1
- package/dist/commands/result.d.ts +7 -3
- package/dist/commands/result.js +41 -6
- package/dist/commands/shortcut.d.ts +1 -0
- package/dist/commands/shortcut.js +267 -0
- package/dist/commands/slack.js +2 -1
- package/dist/commands/write-output.d.ts +3 -0
- package/dist/commands/write-output.js +24 -0
- package/dist/logging.d.ts +1 -1
- package/dist/logging.js +3 -2
- package/dist/main.d.ts +3 -2
- package/dist/main.js +49 -7
- package/dist/utils/env-defaults.d.ts +2 -5
- package/dist/utils/env-defaults.js +10 -5
- package/dist/utils/sdk-compat.d.ts +21 -0
- package/dist/utils/sdk-compat.js +72 -0
- package/package.json +13 -11
package/dist/main.js
CHANGED
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Boot sequence:
|
|
8
8
|
* 1. Inject CREWX_CLI / CREWX_WORKSPACE env defaults (must be first)
|
|
9
|
-
* 2.
|
|
10
|
-
* 3.
|
|
9
|
+
* 2. Load workspace .env (does not override existing process.env values)
|
|
10
|
+
* 3. Parse command
|
|
11
|
+
* 4. Dispatch to handler
|
|
11
12
|
*/
|
|
12
13
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
13
14
|
if (k2 === undefined) k2 = k;
|
|
@@ -45,15 +46,21 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
45
46
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
47
|
// ─── P0-1: Env Bootstrap ─────────────────────────────────────────────────────
|
|
47
48
|
// Must run before any other code that might use process.env.CREWX_CLI.
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
process.env.
|
|
49
|
+
const sdk_compat_1 = require("./utils/sdk-compat");
|
|
50
|
+
const dotenv = __importStar(require("dotenv"));
|
|
51
|
+
const path_1 = require("path");
|
|
52
|
+
process.env.CREWX_CLI ??= sdk_compat_1.sdkCompat.resolveCrewxCli();
|
|
53
|
+
process.env.CREWX_WORKSPACE ??= sdk_compat_1.sdkCompat.resolveCrewxWorkspace();
|
|
54
|
+
// Load the workspace .env (WI-20260725-010): keeps CLI (crewx q/x) in parity with
|
|
55
|
+
// the server's ConfigModule, which already reads cwd/.env. override:false so a
|
|
56
|
+
// value already present in the shell/environment always wins over the file.
|
|
57
|
+
// quiet:true suppresses dotenv's injected-keys log and tip banner on stdout.
|
|
58
|
+
dotenv.config({ path: (0, path_1.join)(process.env.CREWX_WORKSPACE, '.env'), override: false, quiet: true });
|
|
52
59
|
// ─── Pricing remote override (WI-20260701-002) ───────────────────────────────
|
|
53
60
|
// Best-effort, non-blocking: fetch remote model registry so new models get
|
|
54
61
|
// accurate pricing without a CLI republish. Falls back to bundled table on
|
|
55
62
|
// failure / offline. Browser entry does not call this automatically.
|
|
56
|
-
|
|
63
|
+
sdk_compat_1.sdkCompat.initPricingRemote();
|
|
57
64
|
// ─── Command Imports ──────────────────────────────────────────────────────────
|
|
58
65
|
const query_1 = require("./commands/query");
|
|
59
66
|
const execute_1 = require("./commands/execute");
|
|
@@ -65,6 +72,8 @@ const restart_1 = require("./commands/restart");
|
|
|
65
72
|
const log_1 = require("./commands/log");
|
|
66
73
|
const doctor_1 = require("./commands/doctor");
|
|
67
74
|
const init_1 = require("./commands/init");
|
|
75
|
+
const shortcut_1 = require("./commands/shortcut");
|
|
76
|
+
const publish_1 = require("./commands/publish");
|
|
68
77
|
const builtin_1 = require("./builtin");
|
|
69
78
|
const slack_1 = require("./commands/slack");
|
|
70
79
|
const install_1 = require("./commands/hook/install");
|
|
@@ -181,6 +190,14 @@ async function main() {
|
|
|
181
190
|
case 'db':
|
|
182
191
|
await (0, db_1.handleDb)(args.slice(1));
|
|
183
192
|
return;
|
|
193
|
+
// Windows Desktop shortcut: crewx shortcut status|install|uninstall
|
|
194
|
+
case 'shortcut':
|
|
195
|
+
await (0, shortcut_1.handleShortcut)(args.slice(1));
|
|
196
|
+
return;
|
|
197
|
+
// WI-20260803-004: crewx publish [dir] [--dry-run] [--version <semver>] [--json]
|
|
198
|
+
case 'publish':
|
|
199
|
+
await (0, publish_1.handlePublish)(args.slice(1));
|
|
200
|
+
return;
|
|
184
201
|
// SDK-009: slack / slack:files
|
|
185
202
|
case 'slack':
|
|
186
203
|
case 'slack:files':
|
|
@@ -262,12 +279,19 @@ Query / Execute:
|
|
|
262
279
|
--verbose Debug output mode (default: raw response only)
|
|
263
280
|
--config/-c <path> Config file path (default: CREWX_CONFIG or crewx.yaml)
|
|
264
281
|
--output-format <fmt> Output format (json|text|stream-json)
|
|
282
|
+
--out/-o <path> Save result to file (stdout suppressed)
|
|
265
283
|
--effort <level> Model effort (high|medium|low)
|
|
266
284
|
-f/--prompt-file <path> Read task body from file (bypasses argv length limits)
|
|
267
285
|
--var key=value Template variable (repeatable). Accessible as {{key}} in agent prompt.
|
|
268
286
|
-- End of flags; remaining tokens treated as message text
|
|
269
287
|
e.g. crewx q "@agent label" -- --flag-in-message
|
|
270
288
|
|
|
289
|
+
x/execute only:
|
|
290
|
+
--detach Re-spawn as a detached background runner; print task-id
|
|
291
|
+
and exit 0 immediately. Ignored if CREWX_TRACE_ID is
|
|
292
|
+
already set (recursive-spawn guard). Unsupported on win32.
|
|
293
|
+
e.g. crewx x "@agent label" --detach
|
|
294
|
+
|
|
271
295
|
Agent Management:
|
|
272
296
|
agent ls [options] List configured agents
|
|
273
297
|
--role <value> Filter by role (comma-separated for OR match)
|
|
@@ -280,6 +304,8 @@ Task Management:
|
|
|
280
304
|
kill <task-id> Kill a running task
|
|
281
305
|
kill --all Kill all running tasks
|
|
282
306
|
result [task-id] Get task result (or list recent tasks)
|
|
307
|
+
--wait=N Poll (1s interval) up to N seconds for the task to
|
|
308
|
+
finish. Exit 124 on timeout. --wait=0 = single check.
|
|
283
309
|
restart <task-id> Restart a failed task as a new task
|
|
284
310
|
|
|
285
311
|
Logs & Diagnostics:
|
|
@@ -291,6 +317,22 @@ Database:
|
|
|
291
317
|
db push Sync DB schema to current code (additive only)
|
|
292
318
|
--force Reset migration history + skip confirmation
|
|
293
319
|
--dry-run Preview changes without applying
|
|
320
|
+
db migrate-task-logs Backfill legacy tasks.logs into task_log_events
|
|
321
|
+
--dry-run Validate and estimate without writing
|
|
322
|
+
--apply Consistent backup + resumable task-by-task apply
|
|
323
|
+
--verify Check event/source invariants and parity
|
|
324
|
+
|
|
325
|
+
Desktop Shortcut (Windows only):
|
|
326
|
+
shortcut status [--json] Show current shortcut status
|
|
327
|
+
shortcut install [--force] [--json] Install/repair the Desktop shortcut
|
|
328
|
+
shortcut uninstall [--json] Remove the Desktop shortcut
|
|
329
|
+
|
|
330
|
+
Publish:
|
|
331
|
+
publish [dir] [options] Package a workspace as a distributable template archive
|
|
332
|
+
--dry-run Scan + build manifest only; do not write a .tgz
|
|
333
|
+
--version <ver> Override manifest version (semver)
|
|
334
|
+
--json Print machine-readable JSON to stdout
|
|
335
|
+
(marketplace upload is not yet supported by this command)
|
|
294
336
|
|
|
295
337
|
Built-in Tools:
|
|
296
338
|
memory <args> Memory tool
|
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* Re-exported from @crewx/sdk for convenience.
|
|
4
|
-
*/
|
|
5
|
-
export { resolveCrewxCli, resolveCrewxWorkspace } from '@crewx/sdk';
|
|
1
|
+
export declare function resolveCrewxCli(): string;
|
|
2
|
+
export declare function resolveCrewxWorkspace(): string;
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.resolveCrewxCli = resolveCrewxCli;
|
|
4
|
+
exports.resolveCrewxWorkspace = resolveCrewxWorkspace;
|
|
4
5
|
/**
|
|
5
6
|
* CREWX_* environment variable defaults for CLI bootstrap.
|
|
6
|
-
*
|
|
7
|
+
* Routed through the SDK compatibility accessor for older SDK installations.
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
const sdk_compat_1 = require("./sdk-compat");
|
|
10
|
+
function resolveCrewxCli() {
|
|
11
|
+
return sdk_compat_1.sdkCompat.resolveCrewxCli();
|
|
12
|
+
}
|
|
13
|
+
function resolveCrewxWorkspace() {
|
|
14
|
+
return sdk_compat_1.sdkCompat.resolveCrewxWorkspace();
|
|
15
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type PricingInitializer = () => Promise<unknown> | unknown;
|
|
2
|
+
export interface SdkLike {
|
|
3
|
+
resolveCrewxCli?: () => string;
|
|
4
|
+
resolveCrewxWorkspace?: () => string;
|
|
5
|
+
initPricingRemote?: PricingInitializer;
|
|
6
|
+
}
|
|
7
|
+
export interface SdkCompat {
|
|
8
|
+
resolveCrewxCli(): string;
|
|
9
|
+
resolveCrewxWorkspace(): string;
|
|
10
|
+
initPricingRemote(): void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Create the CLI bootstrap capability accessor for the installed SDK.
|
|
14
|
+
*
|
|
15
|
+
* SDK exports are additive across compatible majors, so an older SDK may not
|
|
16
|
+
* expose every capability that a newer CLI knows about. Optional capabilities
|
|
17
|
+
* are checked here rather than at each bootstrap call site.
|
|
18
|
+
*/
|
|
19
|
+
export declare function createSdkCompat(sdkLike?: SdkLike): SdkCompat;
|
|
20
|
+
export declare const sdkCompat: SdkCompat;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
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.sdkCompat = void 0;
|
|
37
|
+
exports.createSdkCompat = createSdkCompat;
|
|
38
|
+
const sdk = __importStar(require("@crewx/sdk"));
|
|
39
|
+
/**
|
|
40
|
+
* Create the CLI bootstrap capability accessor for the installed SDK.
|
|
41
|
+
*
|
|
42
|
+
* SDK exports are additive across compatible majors, so an older SDK may not
|
|
43
|
+
* expose every capability that a newer CLI knows about. Optional capabilities
|
|
44
|
+
* are checked here rather than at each bootstrap call site.
|
|
45
|
+
*/
|
|
46
|
+
function createSdkCompat(sdkLike = sdk) {
|
|
47
|
+
return {
|
|
48
|
+
resolveCrewxCli: () => {
|
|
49
|
+
if (typeof sdkLike.resolveCrewxCli === 'function') {
|
|
50
|
+
return sdkLike.resolveCrewxCli();
|
|
51
|
+
}
|
|
52
|
+
return process.env.CREWX_CLI || 'npx crewx';
|
|
53
|
+
},
|
|
54
|
+
resolveCrewxWorkspace: () => {
|
|
55
|
+
if (typeof sdkLike.resolveCrewxWorkspace === 'function') {
|
|
56
|
+
return sdkLike.resolveCrewxWorkspace();
|
|
57
|
+
}
|
|
58
|
+
return process.env.CREWX_WORKSPACE || process.cwd();
|
|
59
|
+
},
|
|
60
|
+
initPricingRemote: () => {
|
|
61
|
+
if (typeof sdkLike.initPricingRemote !== 'function')
|
|
62
|
+
return;
|
|
63
|
+
try {
|
|
64
|
+
void Promise.resolve(sdkLike.initPricingRemote()).catch(() => undefined);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
// Remote pricing is optional and must not block CLI startup.
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
exports.sdkCompat = createSdkCompat();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crewx/cli",
|
|
3
|
-
"version": "0.9.0-rc.
|
|
3
|
+
"version": "0.9.0-rc.80",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=20.19.0"
|
|
@@ -23,18 +23,20 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@crewx/adapter-slack": "0.1.4",
|
|
25
25
|
"better-sqlite3": "*",
|
|
26
|
+
"dotenv": "17.2.3",
|
|
26
27
|
"isomorphic-git": "1.37.1",
|
|
27
|
-
"@crewx/sdk": "0.9.0-rc.
|
|
28
|
-
"@crewx/
|
|
29
|
-
"@crewx/search": "0.1.10",
|
|
30
|
-
"@crewx/
|
|
31
|
-
"@crewx/
|
|
28
|
+
"@crewx/sdk": "0.9.0-rc.80",
|
|
29
|
+
"@crewx/memory": "0.1.23-rc.97",
|
|
30
|
+
"@crewx/search": "0.1.10-rc.76",
|
|
31
|
+
"@crewx/doc": "0.1.9-rc.73",
|
|
32
|
+
"@crewx/wbs": "0.1.10-rc.106",
|
|
33
|
+
"@crewx/cron": "0.1.10-rc.115",
|
|
32
34
|
"@crewx/skill": "0.1.20",
|
|
33
|
-
"@crewx/
|
|
34
|
-
"@crewx/
|
|
35
|
-
"@crewx/
|
|
36
|
-
"@crewx/
|
|
37
|
-
"@crewx/
|
|
35
|
+
"@crewx/workflow": "0.3.22-rc.126",
|
|
36
|
+
"@crewx/wi": "0.1.10-rc.100",
|
|
37
|
+
"@crewx/shared": "0.0.6",
|
|
38
|
+
"@crewx/chromex": "0.1.0-rc.113",
|
|
39
|
+
"@crewx/notify": "0.1.0-rc.51"
|
|
38
40
|
},
|
|
39
41
|
"devDependencies": {
|
|
40
42
|
"@types/better-sqlite3": "*",
|