prjct-cli 0.35.1 → 0.35.2
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/CHANGELOG.md +15 -0
- package/core/commands/workflow.ts +24 -9
- package/dist/bin/prjct.mjs +20 -7
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.35.2] - 2026-01-17
|
|
4
|
+
|
|
5
|
+
### Fix: CLI Workflow Now Uses CommandExecutor
|
|
6
|
+
|
|
7
|
+
The `workflow.ts` was calling `templateExecutor` directly, bypassing the orchestrator.
|
|
8
|
+
Now properly routes through `commandExecutor.execute()` which triggers:
|
|
9
|
+
- Domain detection
|
|
10
|
+
- Agent loading
|
|
11
|
+
- Skill loading
|
|
12
|
+
- Task fragmentation
|
|
13
|
+
|
|
14
|
+
**Files Changed:**
|
|
15
|
+
- `core/commands/workflow.ts` - Uses `commandExecutor.execute()` instead of `templateExecutor`
|
|
16
|
+
|
|
3
17
|
## [0.35.1] - 2026-01-17
|
|
4
18
|
|
|
5
19
|
### Fix: Orchestrator Now Actually Executes
|
|
@@ -34,6 +48,7 @@ ALL COMPLETE (100%)
|
|
|
34
48
|
- `core/agentic/command-executor.ts` - Calls orchestrator
|
|
35
49
|
- `core/agentic/prompt-builder.ts` - Injects orchestrator context
|
|
36
50
|
- `core/types/agentic.ts` - Added orchestrator types
|
|
51
|
+
- `core/commands/workflow.ts` - **Connects CLI to CommandExecutor** (was bypassing orchestrator)
|
|
37
52
|
|
|
38
53
|
## [0.34.0] - 2026-01-15
|
|
39
54
|
|
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
} from './base'
|
|
20
20
|
import { stateStorage, queueStorage } from '../storage'
|
|
21
21
|
import { templateExecutor } from '../agentic/template-executor'
|
|
22
|
+
import commandExecutor from '../agentic/command-executor'
|
|
22
23
|
|
|
23
24
|
export class WorkflowCommands extends PrjctCommandsBase {
|
|
24
25
|
/**
|
|
@@ -36,12 +37,13 @@ export class WorkflowCommands extends PrjctCommandsBase {
|
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
if (task) {
|
|
39
|
-
// AGENTIC:
|
|
40
|
-
const
|
|
41
|
-
const agenticInfo = templateExecutor.buildAgenticPrompt(execContext)
|
|
40
|
+
// AGENTIC: Use CommandExecutor for full orchestration support
|
|
41
|
+
const result = await commandExecutor.execute('task', { task }, projectPath)
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
if (!result.success) {
|
|
44
|
+
out.fail(result.error || 'Failed to execute task')
|
|
45
|
+
return { success: false, error: result.error }
|
|
46
|
+
}
|
|
45
47
|
|
|
46
48
|
// Write-through: JSON → MD → Event
|
|
47
49
|
await stateStorage.startTask(projectId, {
|
|
@@ -50,18 +52,31 @@ export class WorkflowCommands extends PrjctCommandsBase {
|
|
|
50
52
|
sessionId: generateUUID()
|
|
51
53
|
})
|
|
52
54
|
|
|
53
|
-
//
|
|
55
|
+
// Log orchestrator results if available
|
|
56
|
+
if (result.orchestratorContext) {
|
|
57
|
+
const oc = result.orchestratorContext
|
|
58
|
+
const agentsList = oc.agents.map((a: { name: string }) => a.name).join(', ') || 'none'
|
|
59
|
+
const domainsList = oc.detectedDomains.join(', ')
|
|
60
|
+
console.log(`🎯 Orchestrator: ${domainsList} → [${agentsList}]`)
|
|
61
|
+
|
|
62
|
+
if (oc.requiresFragmentation && oc.subtasks) {
|
|
63
|
+
console.log(` → ${oc.subtasks.length} subtasks created`)
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Get available agents for backward compatibility
|
|
68
|
+
const availableAgents = await templateExecutor.getAvailableAgents(projectPath)
|
|
54
69
|
const agentsList = availableAgents.length > 0
|
|
55
70
|
? availableAgents.join(', ')
|
|
56
71
|
: 'none (run p. sync)'
|
|
57
72
|
|
|
58
|
-
console.log(`🤖 Agentic mode: Claude will read templates and decide`)
|
|
59
73
|
out.done(`${task} [specialists: ${agentsList}]`)
|
|
60
74
|
|
|
61
75
|
await this.logToMemory(projectPath, 'task_started', {
|
|
62
76
|
task,
|
|
63
77
|
agenticMode: true,
|
|
64
78
|
availableAgents,
|
|
79
|
+
orchestratorContext: result.orchestratorContext,
|
|
65
80
|
timestamp: dateHelper.getTimestamp(),
|
|
66
81
|
})
|
|
67
82
|
|
|
@@ -70,8 +85,8 @@ export class WorkflowCommands extends PrjctCommandsBase {
|
|
|
70
85
|
task,
|
|
71
86
|
agenticMode: true,
|
|
72
87
|
availableAgents,
|
|
73
|
-
|
|
74
|
-
|
|
88
|
+
// Include full CommandExecutor result (orchestratorContext, prompt, etc.)
|
|
89
|
+
...result,
|
|
75
90
|
}
|
|
76
91
|
} else {
|
|
77
92
|
// Read from storage (JSON is source of truth)
|
package/dist/bin/prjct.mjs
CHANGED
|
@@ -11471,6 +11471,7 @@ var init_workflow = __esm({
|
|
|
11471
11471
|
init_base();
|
|
11472
11472
|
init_storage2();
|
|
11473
11473
|
init_template_executor();
|
|
11474
|
+
init_command_executor();
|
|
11474
11475
|
WorkflowCommands = class extends PrjctCommandsBase {
|
|
11475
11476
|
static {
|
|
11476
11477
|
__name(this, "WorkflowCommands");
|
|
@@ -11488,21 +11489,33 @@ var init_workflow = __esm({
|
|
|
11488
11489
|
return { success: false, error: "No project ID found" };
|
|
11489
11490
|
}
|
|
11490
11491
|
if (task) {
|
|
11491
|
-
const
|
|
11492
|
-
|
|
11493
|
-
|
|
11492
|
+
const result = await command_executor_default.execute("task", { task }, projectPath);
|
|
11493
|
+
if (!result.success) {
|
|
11494
|
+
output_default.fail(result.error || "Failed to execute task");
|
|
11495
|
+
return { success: false, error: result.error };
|
|
11496
|
+
}
|
|
11494
11497
|
await stateStorage.startTask(projectId, {
|
|
11495
11498
|
id: generateUUID(),
|
|
11496
11499
|
description: task,
|
|
11497
11500
|
sessionId: generateUUID()
|
|
11498
11501
|
});
|
|
11502
|
+
if (result.orchestratorContext) {
|
|
11503
|
+
const oc = result.orchestratorContext;
|
|
11504
|
+
const agentsList2 = oc.agents.map((a) => a.name).join(", ") || "none";
|
|
11505
|
+
const domainsList = oc.detectedDomains.join(", ");
|
|
11506
|
+
console.log(`\u{1F3AF} Orchestrator: ${domainsList} \u2192 [${agentsList2}]`);
|
|
11507
|
+
if (oc.requiresFragmentation && oc.subtasks) {
|
|
11508
|
+
console.log(` \u2192 ${oc.subtasks.length} subtasks created`);
|
|
11509
|
+
}
|
|
11510
|
+
}
|
|
11511
|
+
const availableAgents = await templateExecutor.getAvailableAgents(projectPath);
|
|
11499
11512
|
const agentsList = availableAgents.length > 0 ? availableAgents.join(", ") : "none (run p. sync)";
|
|
11500
|
-
console.log(`\u{1F916} Agentic mode: Claude will read templates and decide`);
|
|
11501
11513
|
output_default.done(`${task} [specialists: ${agentsList}]`);
|
|
11502
11514
|
await this.logToMemory(projectPath, "task_started", {
|
|
11503
11515
|
task,
|
|
11504
11516
|
agenticMode: true,
|
|
11505
11517
|
availableAgents,
|
|
11518
|
+
orchestratorContext: result.orchestratorContext,
|
|
11506
11519
|
timestamp: date_helper_default.getTimestamp()
|
|
11507
11520
|
});
|
|
11508
11521
|
return {
|
|
@@ -11510,8 +11523,8 @@ var init_workflow = __esm({
|
|
|
11510
11523
|
task,
|
|
11511
11524
|
agenticMode: true,
|
|
11512
11525
|
availableAgents,
|
|
11513
|
-
|
|
11514
|
-
|
|
11526
|
+
// Include full CommandExecutor result (orchestratorContext, prompt, etc.)
|
|
11527
|
+
...result
|
|
11515
11528
|
};
|
|
11516
11529
|
} else {
|
|
11517
11530
|
const currentTask = await stateStorage.getCurrentTask(projectId);
|
|
@@ -13846,7 +13859,7 @@ var require_package = __commonJS({
|
|
|
13846
13859
|
"package.json"(exports, module) {
|
|
13847
13860
|
module.exports = {
|
|
13848
13861
|
name: "prjct-cli",
|
|
13849
|
-
version: "0.35.
|
|
13862
|
+
version: "0.35.1",
|
|
13850
13863
|
description: "Built for Claude - Ship fast, track progress, stay focused. Developer momentum tool for indie hackers.",
|
|
13851
13864
|
main: "core/index.ts",
|
|
13852
13865
|
bin: {
|