prjct-cli 0.44.1 → 0.45.3
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 +114 -0
- package/bin/prjct.ts +131 -10
- package/core/__tests__/agentic/memory-system.test.ts +39 -26
- package/core/__tests__/agentic/plan-mode.test.ts +64 -46
- package/core/__tests__/agentic/prompt-builder.test.ts +14 -14
- package/core/__tests__/services/project-index.test.ts +353 -0
- package/core/__tests__/types/fs.test.ts +3 -3
- package/core/__tests__/utils/date-helper.test.ts +10 -10
- package/core/__tests__/utils/output.test.ts +9 -6
- package/core/__tests__/utils/project-commands.test.ts +5 -6
- package/core/agentic/agent-router.ts +9 -10
- package/core/agentic/chain-of-thought.ts +16 -4
- package/core/agentic/command-executor.ts +66 -40
- package/core/agentic/context-builder.ts +8 -5
- package/core/agentic/ground-truth.ts +15 -9
- package/core/agentic/index.ts +145 -152
- package/core/agentic/loop-detector.ts +40 -11
- package/core/agentic/memory-system.ts +98 -35
- package/core/agentic/orchestrator-executor.ts +135 -71
- package/core/agentic/plan-mode.ts +46 -16
- package/core/agentic/prompt-builder.ts +108 -42
- package/core/agentic/services.ts +10 -9
- package/core/agentic/skill-loader.ts +9 -15
- package/core/agentic/smart-context.ts +129 -79
- package/core/agentic/template-executor.ts +13 -12
- package/core/agentic/template-loader.ts +7 -4
- package/core/agentic/tool-registry.ts +16 -13
- package/core/agents/index.ts +1 -1
- package/core/agents/performance.ts +10 -27
- package/core/ai-tools/formatters.ts +8 -6
- package/core/ai-tools/generator.ts +4 -4
- package/core/ai-tools/index.ts +1 -1
- package/core/ai-tools/registry.ts +21 -11
- package/core/bus/bus.ts +23 -16
- package/core/bus/index.ts +2 -2
- package/core/cli/linear.ts +3 -5
- package/core/cli/start.ts +28 -25
- package/core/commands/analysis.ts +287 -29
- package/core/commands/analytics.ts +52 -44
- package/core/commands/base.ts +15 -13
- package/core/commands/cleanup.ts +6 -13
- package/core/commands/command-data.ts +49 -8
- package/core/commands/commands.ts +60 -23
- package/core/commands/context.ts +4 -4
- package/core/commands/design.ts +3 -10
- package/core/commands/index.ts +5 -8
- package/core/commands/maintenance.ts +7 -4
- package/core/commands/planning.ts +179 -56
- package/core/commands/register.ts +14 -9
- package/core/commands/registry.ts +15 -14
- package/core/commands/setup.ts +26 -14
- package/core/commands/shipping.ts +11 -16
- package/core/commands/snapshots.ts +16 -32
- package/core/commands/uninstall.ts +541 -0
- package/core/commands/workflow.ts +24 -28
- package/core/constants/index.ts +10 -22
- package/core/context/generator.ts +82 -33
- package/core/context-tools/files-tool.ts +583 -0
- package/core/context-tools/imports-tool.ts +403 -0
- package/core/context-tools/index.ts +433 -0
- package/core/context-tools/recent-tool.ts +307 -0
- package/core/context-tools/signatures-tool.ts +501 -0
- package/core/context-tools/summary-tool.ts +307 -0
- package/core/context-tools/token-counter.ts +284 -0
- package/core/context-tools/types.ts +253 -0
- package/core/domain/agent-generator.ts +7 -5
- package/core/domain/agent-loader.ts +2 -2
- package/core/domain/analyzer.ts +19 -16
- package/core/domain/architecture-generator.ts +6 -3
- package/core/domain/context-estimator.ts +3 -4
- package/core/domain/snapshot-manager.ts +25 -22
- package/core/domain/task-stack.ts +24 -14
- package/core/errors.ts +1 -1
- package/core/events/events.ts +2 -4
- package/core/events/index.ts +1 -2
- package/core/index.ts +28 -12
- package/core/infrastructure/agent-detector.ts +3 -3
- package/core/infrastructure/ai-provider.ts +23 -20
- package/core/infrastructure/author-detector.ts +16 -10
- package/core/infrastructure/capability-installer.ts +2 -2
- package/core/infrastructure/claude-agent.ts +6 -6
- package/core/infrastructure/command-installer.ts +22 -17
- package/core/infrastructure/config-manager.ts +18 -14
- package/core/infrastructure/editors-config.ts +8 -4
- package/core/infrastructure/path-manager.ts +8 -6
- package/core/infrastructure/permission-manager.ts +20 -17
- package/core/infrastructure/setup.ts +42 -38
- package/core/infrastructure/update-checker.ts +5 -5
- package/core/integrations/issue-tracker/enricher.ts +8 -19
- package/core/integrations/issue-tracker/index.ts +2 -2
- package/core/integrations/issue-tracker/manager.ts +15 -15
- package/core/integrations/issue-tracker/types.ts +5 -22
- package/core/integrations/jira/client.ts +67 -59
- package/core/integrations/jira/index.ts +11 -14
- package/core/integrations/jira/mcp-adapter.ts +5 -10
- package/core/integrations/jira/service.ts +10 -10
- package/core/integrations/linear/client.ts +27 -18
- package/core/integrations/linear/index.ts +9 -12
- package/core/integrations/linear/service.ts +11 -11
- package/core/integrations/linear/sync.ts +8 -8
- package/core/outcomes/analyzer.ts +5 -18
- package/core/outcomes/index.ts +2 -2
- package/core/outcomes/recorder.ts +3 -3
- package/core/plugin/builtin/webhook.ts +19 -15
- package/core/plugin/hooks.ts +29 -21
- package/core/plugin/index.ts +7 -7
- package/core/plugin/loader.ts +19 -19
- package/core/plugin/registry.ts +12 -23
- package/core/schemas/agents.ts +1 -1
- package/core/schemas/analysis.ts +1 -1
- package/core/schemas/enriched-task.ts +62 -49
- package/core/schemas/ideas.ts +13 -13
- package/core/schemas/index.ts +17 -27
- package/core/schemas/issues.ts +40 -25
- package/core/schemas/metrics.ts +143 -0
- package/core/schemas/outcomes.ts +70 -62
- package/core/schemas/permissions.ts +15 -12
- package/core/schemas/prd.ts +27 -14
- package/core/schemas/project.ts +3 -3
- package/core/schemas/roadmap.ts +47 -34
- package/core/schemas/schemas.ts +3 -4
- package/core/schemas/shipped.ts +3 -3
- package/core/schemas/state.ts +43 -29
- package/core/server/index.ts +5 -6
- package/core/server/routes-extended.ts +68 -72
- package/core/server/routes.ts +3 -3
- package/core/server/server.ts +31 -26
- package/core/services/agent-generator.ts +237 -0
- package/core/services/agent-service.ts +2 -2
- package/core/services/breakdown-service.ts +2 -4
- package/core/services/context-generator.ts +299 -0
- package/core/services/context-selector.ts +420 -0
- package/core/services/doctor-service.ts +426 -0
- package/core/services/file-categorizer.ts +448 -0
- package/core/services/file-scorer.ts +270 -0
- package/core/services/git-analyzer.ts +267 -0
- package/core/services/index.ts +27 -10
- package/core/services/memory-service.ts +3 -4
- package/core/services/project-index.ts +911 -0
- package/core/services/project-service.ts +4 -4
- package/core/services/skill-installer.ts +14 -17
- package/core/services/skill-lock.ts +3 -3
- package/core/services/skill-service.ts +12 -6
- package/core/services/stack-detector.ts +245 -0
- package/core/services/sync-service.ts +170 -329
- package/core/services/watch-service.ts +294 -0
- package/core/session/compaction.ts +23 -31
- package/core/session/index.ts +11 -5
- package/core/session/log-migration.ts +3 -3
- package/core/session/metrics.ts +19 -14
- package/core/session/session-log-manager.ts +12 -17
- package/core/session/task-session-manager.ts +25 -25
- package/core/session/utils.ts +1 -1
- package/core/storage/ideas-storage.ts +41 -57
- package/core/storage/index-storage.ts +514 -0
- package/core/storage/index.ts +41 -13
- package/core/storage/metrics-storage.ts +320 -0
- package/core/storage/queue-storage.ts +35 -45
- package/core/storage/shipped-storage.ts +17 -20
- package/core/storage/state-storage.ts +50 -30
- package/core/storage/storage-manager.ts +6 -6
- package/core/storage/storage.ts +18 -15
- package/core/sync/auth-config.ts +3 -3
- package/core/sync/index.ts +13 -19
- package/core/sync/oauth-handler.ts +3 -3
- package/core/sync/sync-client.ts +4 -9
- package/core/sync/sync-manager.ts +12 -14
- package/core/types/commands.ts +42 -7
- package/core/types/index.ts +284 -302
- package/core/types/integrations.ts +3 -3
- package/core/types/storage.ts +49 -0
- package/core/types/utils.ts +3 -3
- package/core/utils/agent-stream.ts +3 -1
- package/core/utils/animations.ts +14 -11
- package/core/utils/branding.ts +7 -7
- package/core/utils/cache.ts +1 -3
- package/core/utils/collection-filters.ts +3 -15
- package/core/utils/date-helper.ts +2 -7
- package/core/utils/file-helper.ts +13 -8
- package/core/utils/jsonl-helper.ts +13 -10
- package/core/utils/keychain.ts +4 -8
- package/core/utils/logger.ts +1 -1
- package/core/utils/next-steps.ts +3 -3
- package/core/utils/output.ts +58 -11
- package/core/utils/project-commands.ts +6 -6
- package/core/utils/project-credentials.ts +5 -12
- package/core/utils/runtime.ts +2 -2
- package/core/utils/session-helper.ts +3 -4
- package/core/utils/version.ts +3 -3
- package/core/wizard/index.ts +13 -0
- package/core/wizard/onboarding.ts +633 -0
- package/core/workflow/state-machine.ts +7 -7
- package/dist/bin/prjct.mjs +18907 -13189
- package/dist/core/infrastructure/command-installer.js +96 -111
- package/dist/core/infrastructure/editors-config.js +6 -6
- package/dist/core/infrastructure/setup.js +256 -257
- package/dist/core/utils/version.js +9 -9
- package/package.json +11 -12
- package/scripts/build.js +3 -3
- package/scripts/postinstall.js +2 -2
- package/templates/mcp-config.json +6 -1
- package/templates/permissions/permissive.jsonc +1 -1
- package/templates/permissions/strict.jsonc +5 -9
- package/templates/global/docs/agents.md +0 -88
- package/templates/global/docs/architecture.md +0 -103
- package/templates/global/docs/commands.md +0 -96
- package/templates/global/docs/validation.md +0 -95
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Used by registry for introspection and help display.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type {
|
|
8
|
+
import type { CategoryInfo, CommandMeta } from '../types'
|
|
9
9
|
|
|
10
10
|
// Category definitions
|
|
11
11
|
export const CATEGORIES: Record<string, CategoryInfo> = {
|
|
@@ -38,7 +38,11 @@ export const COMMANDS: CommandMeta[] = [
|
|
|
38
38
|
implemented: true,
|
|
39
39
|
hasTemplate: true,
|
|
40
40
|
requiresProject: false,
|
|
41
|
-
features: [
|
|
41
|
+
features: [
|
|
42
|
+
'Architect mode for blank projects',
|
|
43
|
+
'Auto tech stack recommendation',
|
|
44
|
+
'Analyzes existing codebases',
|
|
45
|
+
],
|
|
42
46
|
},
|
|
43
47
|
{
|
|
44
48
|
name: 'idea',
|
|
@@ -60,7 +64,12 @@ export const COMMANDS: CommandMeta[] = [
|
|
|
60
64
|
implemented: true,
|
|
61
65
|
hasTemplate: true,
|
|
62
66
|
requiresProject: true,
|
|
63
|
-
features: [
|
|
67
|
+
features: [
|
|
68
|
+
'Agentic type classification',
|
|
69
|
+
'7-phase workflow',
|
|
70
|
+
'Git branch management',
|
|
71
|
+
'Task breakdown',
|
|
72
|
+
],
|
|
64
73
|
},
|
|
65
74
|
{
|
|
66
75
|
name: 'spec',
|
|
@@ -142,6 +151,17 @@ export const COMMANDS: CommandMeta[] = [
|
|
|
142
151
|
hasTemplate: true,
|
|
143
152
|
requiresProject: true,
|
|
144
153
|
},
|
|
154
|
+
{
|
|
155
|
+
name: 'stats',
|
|
156
|
+
group: 'core',
|
|
157
|
+
description: 'Value dashboard - token savings, performance, and impact',
|
|
158
|
+
usage: { claude: '/p:stats', terminal: 'prjct stats' },
|
|
159
|
+
params: '[--json] [--export]',
|
|
160
|
+
implemented: true,
|
|
161
|
+
hasTemplate: true,
|
|
162
|
+
requiresProject: true,
|
|
163
|
+
features: ['Token savings tracking', 'Compression metrics', 'Cost estimates', '30-day trends'],
|
|
164
|
+
},
|
|
145
165
|
{
|
|
146
166
|
name: 'sync',
|
|
147
167
|
group: 'core',
|
|
@@ -308,13 +328,34 @@ export const COMMANDS: CommandMeta[] = [
|
|
|
308
328
|
{
|
|
309
329
|
name: 'context',
|
|
310
330
|
group: 'setup',
|
|
311
|
-
description: '
|
|
312
|
-
usage: { claude: null, terminal: 'prjct context <
|
|
313
|
-
params: '<
|
|
331
|
+
description: 'Smart context filtering tools for AI agents',
|
|
332
|
+
usage: { claude: null, terminal: 'prjct context <tool> [args]' },
|
|
333
|
+
params: '<tool> [args]',
|
|
314
334
|
implemented: true,
|
|
315
335
|
hasTemplate: false,
|
|
316
336
|
requiresProject: true,
|
|
317
|
-
features: [
|
|
337
|
+
features: [
|
|
338
|
+
'files - Find relevant files for a task',
|
|
339
|
+
'signatures - Extract code structure (~90% compression)',
|
|
340
|
+
'imports - Analyze dependency graphs',
|
|
341
|
+
'recent - Find hot files from git history',
|
|
342
|
+
'summary - Intelligent file summarization',
|
|
343
|
+
],
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
name: 'uninstall',
|
|
347
|
+
group: 'setup',
|
|
348
|
+
description: 'Complete system removal of prjct',
|
|
349
|
+
usage: { claude: null, terminal: 'prjct uninstall' },
|
|
350
|
+
params: '[--force] [--backup] [--dry-run]',
|
|
351
|
+
implemented: true,
|
|
352
|
+
hasTemplate: false,
|
|
353
|
+
requiresProject: false,
|
|
354
|
+
features: [
|
|
355
|
+
'Removes ~/.prjct-cli/ data',
|
|
356
|
+
'Cleans CLAUDE.md prjct section',
|
|
357
|
+
'Uninstalls Homebrew/npm packages',
|
|
358
|
+
'Backup option before deletion',
|
|
359
|
+
],
|
|
318
360
|
},
|
|
319
361
|
]
|
|
320
|
-
|
|
@@ -14,24 +14,23 @@
|
|
|
14
14
|
* - Context: context
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { WorkflowCommands } from './workflow'
|
|
18
|
-
import { PlanningCommands } from './planning'
|
|
19
|
-
import { ShippingCommands } from './shipping'
|
|
20
|
-
import { AnalyticsCommands } from './analytics'
|
|
21
|
-
import { MaintenanceCommands } from './maintenance'
|
|
22
|
-
import { AnalysisCommands } from './analysis'
|
|
23
|
-
import { SetupCommands } from './setup'
|
|
24
|
-
import { ContextCommands } from './context'
|
|
25
|
-
|
|
26
17
|
import type {
|
|
27
|
-
CommandResult,
|
|
28
18
|
AgentInfo,
|
|
19
|
+
AnalyzeOptions,
|
|
29
20
|
Author,
|
|
30
|
-
DesignOptions,
|
|
31
21
|
CleanupOptions,
|
|
22
|
+
CommandResult,
|
|
23
|
+
DesignOptions,
|
|
32
24
|
SetupOptions,
|
|
33
|
-
AnalyzeOptions
|
|
34
25
|
} from '../types'
|
|
26
|
+
import { AnalysisCommands } from './analysis'
|
|
27
|
+
import { AnalyticsCommands } from './analytics'
|
|
28
|
+
import { ContextCommands } from './context'
|
|
29
|
+
import { MaintenanceCommands } from './maintenance'
|
|
30
|
+
import { PlanningCommands } from './planning'
|
|
31
|
+
import { SetupCommands } from './setup'
|
|
32
|
+
import { ShippingCommands } from './shipping'
|
|
33
|
+
import { WorkflowCommands } from './workflow'
|
|
35
34
|
|
|
36
35
|
/**
|
|
37
36
|
* PrjctCommands - Combined class with all commands
|
|
@@ -84,13 +83,19 @@ class PrjctCommands {
|
|
|
84
83
|
return this.workflow.pause(reason, projectPath)
|
|
85
84
|
}
|
|
86
85
|
|
|
87
|
-
async resume(
|
|
86
|
+
async resume(
|
|
87
|
+
taskId: string | null = null,
|
|
88
|
+
projectPath: string = process.cwd()
|
|
89
|
+
): Promise<CommandResult> {
|
|
88
90
|
return this.workflow.resume(taskId, projectPath)
|
|
89
91
|
}
|
|
90
92
|
|
|
91
93
|
// ========== Planning Commands ==========
|
|
92
94
|
|
|
93
|
-
async init(
|
|
95
|
+
async init(
|
|
96
|
+
idea: string | null = null,
|
|
97
|
+
projectPath: string = process.cwd()
|
|
98
|
+
): Promise<CommandResult> {
|
|
94
99
|
return this.planning.init(idea, projectPath)
|
|
95
100
|
}
|
|
96
101
|
|
|
@@ -102,7 +107,10 @@ class PrjctCommands {
|
|
|
102
107
|
return this.planning.idea(description, projectPath)
|
|
103
108
|
}
|
|
104
109
|
|
|
105
|
-
async spec(
|
|
110
|
+
async spec(
|
|
111
|
+
featureName: string | null = null,
|
|
112
|
+
projectPath: string = process.cwd()
|
|
113
|
+
): Promise<CommandResult> {
|
|
106
114
|
return this.planning.spec(featureName, projectPath)
|
|
107
115
|
}
|
|
108
116
|
|
|
@@ -114,7 +122,10 @@ class PrjctCommands {
|
|
|
114
122
|
|
|
115
123
|
// ========== Analytics Commands ==========
|
|
116
124
|
|
|
117
|
-
async dash(
|
|
125
|
+
async dash(
|
|
126
|
+
view: string = 'default',
|
|
127
|
+
projectPath: string = process.cwd()
|
|
128
|
+
): Promise<CommandResult> {
|
|
118
129
|
return this.analytics.dash(view, projectPath)
|
|
119
130
|
}
|
|
120
131
|
|
|
@@ -124,11 +135,18 @@ class PrjctCommands {
|
|
|
124
135
|
|
|
125
136
|
// ========== Maintenance Commands ==========
|
|
126
137
|
|
|
127
|
-
async cleanup(
|
|
138
|
+
async cleanup(
|
|
139
|
+
options: CleanupOptions = {},
|
|
140
|
+
projectPath: string = process.cwd()
|
|
141
|
+
): Promise<CommandResult> {
|
|
128
142
|
return this.maintenance.cleanup(options, projectPath)
|
|
129
143
|
}
|
|
130
144
|
|
|
131
|
-
async design(
|
|
145
|
+
async design(
|
|
146
|
+
target: string | null = null,
|
|
147
|
+
options: DesignOptions = {},
|
|
148
|
+
projectPath: string = process.cwd()
|
|
149
|
+
): Promise<CommandResult> {
|
|
132
150
|
return this.maintenance.design(target, options, projectPath)
|
|
133
151
|
}
|
|
134
152
|
|
|
@@ -150,17 +168,33 @@ class PrjctCommands {
|
|
|
150
168
|
|
|
151
169
|
// ========== Analysis Commands ==========
|
|
152
170
|
|
|
153
|
-
async analyze(
|
|
171
|
+
async analyze(
|
|
172
|
+
options: AnalyzeOptions = {},
|
|
173
|
+
projectPath: string = process.cwd()
|
|
174
|
+
): Promise<CommandResult> {
|
|
154
175
|
return this.analysis.analyze(options, projectPath)
|
|
155
176
|
}
|
|
156
177
|
|
|
157
|
-
async sync(
|
|
178
|
+
async sync(
|
|
179
|
+
projectPath: string = process.cwd(),
|
|
180
|
+
options: { aiTools?: string[] } = {}
|
|
181
|
+
): Promise<CommandResult> {
|
|
158
182
|
return this.analysis.sync(projectPath, options)
|
|
159
183
|
}
|
|
160
184
|
|
|
185
|
+
async stats(
|
|
186
|
+
projectPath: string = process.cwd(),
|
|
187
|
+
options: { json?: boolean; export?: boolean } = {}
|
|
188
|
+
): Promise<CommandResult> {
|
|
189
|
+
return this.analysis.stats(projectPath, options)
|
|
190
|
+
}
|
|
191
|
+
|
|
161
192
|
// ========== Context Commands ==========
|
|
162
193
|
|
|
163
|
-
async context(
|
|
194
|
+
async context(
|
|
195
|
+
input: string | null = null,
|
|
196
|
+
projectPath: string = process.cwd()
|
|
197
|
+
): Promise<CommandResult> {
|
|
164
198
|
return this.contextCmds.context(input, projectPath)
|
|
165
199
|
}
|
|
166
200
|
|
|
@@ -200,7 +234,11 @@ class PrjctCommands {
|
|
|
200
234
|
return this.workflow.getGlobalProjectPath(projectPath)
|
|
201
235
|
}
|
|
202
236
|
|
|
203
|
-
async logToMemory(
|
|
237
|
+
async logToMemory(
|
|
238
|
+
projectPath: string,
|
|
239
|
+
action: string,
|
|
240
|
+
data: Record<string, unknown>
|
|
241
|
+
): Promise<void> {
|
|
204
242
|
return this.workflow.logToMemory(projectPath, action, data)
|
|
205
243
|
}
|
|
206
244
|
}
|
|
@@ -210,4 +248,3 @@ const instance = new PrjctCommands()
|
|
|
210
248
|
|
|
211
249
|
export default instance
|
|
212
250
|
export { PrjctCommands }
|
|
213
|
-
|
package/core/commands/context.ts
CHANGED
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
* @version 1.0.0
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import fs from 'fs/promises'
|
|
19
|
-
import path from 'path'
|
|
18
|
+
import fs from 'node:fs/promises'
|
|
19
|
+
import path from 'node:path'
|
|
20
|
+
import orchestratorExecutor from '../agentic/orchestrator-executor'
|
|
20
21
|
import configManager from '../infrastructure/config-manager'
|
|
21
22
|
import pathManager from '../infrastructure/path-manager'
|
|
22
23
|
import { stateStorage } from '../storage'
|
|
23
|
-
import orchestratorExecutor from '../agentic/orchestrator-executor'
|
|
24
|
-
import { isNotFoundError } from '../types/fs'
|
|
25
24
|
import type { CommandResult } from '../types'
|
|
25
|
+
import { isNotFoundError } from '../types/fs'
|
|
26
26
|
|
|
27
27
|
// =============================================================================
|
|
28
28
|
// Types
|
package/core/commands/design.ts
CHANGED
|
@@ -4,17 +4,10 @@
|
|
|
4
4
|
* System architecture, API, and component design operations.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import path from 'path'
|
|
8
|
-
|
|
9
|
-
import type { CommandResult, DesignOptions } from '../types'
|
|
10
|
-
import {
|
|
11
|
-
pathManager,
|
|
12
|
-
configManager,
|
|
13
|
-
fileHelper,
|
|
14
|
-
dateHelper,
|
|
15
|
-
out
|
|
16
|
-
} from './base'
|
|
7
|
+
import path from 'node:path'
|
|
17
8
|
import { memoryService } from '../services'
|
|
9
|
+
import type { CommandResult, DesignOptions } from '../types'
|
|
10
|
+
import { configManager, dateHelper, fileHelper, out, pathManager } from './base'
|
|
18
11
|
|
|
19
12
|
/**
|
|
20
13
|
* /p:design - Design system architecture, APIs, and components
|
package/core/commands/index.ts
CHANGED
|
@@ -8,15 +8,12 @@
|
|
|
8
8
|
* - New: import { commandRegistry } from './commands' → registry.execute('work')
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
// Types
|
|
12
|
+
export * from '../types'
|
|
11
13
|
// Legacy exports (backwards compat)
|
|
12
14
|
export { default, PrjctCommands } from './commands'
|
|
13
|
-
|
|
14
|
-
// New registry-based exports
|
|
15
|
-
export { commandRegistry, CommandRegistry } from './registry'
|
|
16
|
-
export type { ExecutionContext, CommandHandler, HandlerFn, CommandMeta } from './registry'
|
|
17
|
-
|
|
18
15
|
// Command registration (auto-runs on import)
|
|
19
16
|
export { registerAllCommands } from './register'
|
|
20
|
-
|
|
21
|
-
//
|
|
22
|
-
export
|
|
17
|
+
export type { CommandHandler, CommandMeta, ExecutionContext, HandlerFn } from './registry'
|
|
18
|
+
// New registry-based exports
|
|
19
|
+
export { CommandRegistry, commandRegistry } from './registry'
|
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
* - snapshots: Git-based undo/redo and session recovery
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import type {
|
|
10
|
+
import type { CleanupOptions, CommandResult, DesignOptions } from '../types'
|
|
11
11
|
import { PrjctCommandsBase } from './base'
|
|
12
12
|
|
|
13
13
|
// Import individual command functions
|
|
14
14
|
import { cleanup, cleanupMemory, cleanupMemoryInternal } from './cleanup'
|
|
15
15
|
import { design } from './design'
|
|
16
|
-
import {
|
|
16
|
+
import { history, recover, redo, undo } from './snapshots'
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* MaintenanceCommands - Facade class for maintenance operations
|
|
@@ -25,7 +25,10 @@ export class MaintenanceCommands extends PrjctCommandsBase {
|
|
|
25
25
|
_cleanupMemory = cleanupMemory
|
|
26
26
|
_cleanupMemoryInternal = cleanupMemoryInternal
|
|
27
27
|
|
|
28
|
-
async cleanup(
|
|
28
|
+
async cleanup(
|
|
29
|
+
options: CleanupOptions = {},
|
|
30
|
+
projectPath: string = process.cwd()
|
|
31
|
+
): Promise<CommandResult> {
|
|
29
32
|
const initResult = await this.ensureProjectInit(projectPath)
|
|
30
33
|
if (!initResult.success) return initResult
|
|
31
34
|
return cleanup(options, projectPath)
|
|
@@ -71,4 +74,4 @@ export class MaintenanceCommands extends PrjctCommandsBase {
|
|
|
71
74
|
// Re-export individual functions for direct use
|
|
72
75
|
export { cleanup, cleanupMemory, cleanupMemoryInternal } from './cleanup'
|
|
73
76
|
export { design } from './design'
|
|
74
|
-
export {
|
|
77
|
+
export { history, recover, redo, undo } from './snapshots'
|