prjct-cli 1.21.0 → 1.23.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/CHANGELOG.md +244 -0
- package/README.md +41 -0
- package/bin/prjct +30 -13
- package/dist/bin/prjct.mjs +919 -35601
- package/dist/bin/prjct.mjs.map +7 -0
- package/dist/cli/linear.mjs +16 -0
- package/dist/cli/linear.mjs.map +7 -0
- package/dist/templates.json +1 -0
- package/package.json +4 -5
- package/bin/prjct.ts +0 -342
- package/core/__tests__/agentic/analysis-injection.test.ts +0 -377
- package/core/__tests__/agentic/cache-eviction.test.ts +0 -294
- package/core/__tests__/agentic/command-context.test.ts +0 -281
- package/core/__tests__/agentic/command-executor.test.ts +0 -659
- package/core/__tests__/agentic/domain-classifier.test.ts +0 -330
- package/core/__tests__/agentic/injection-validator.test.ts +0 -255
- package/core/__tests__/agentic/memory-system.test.ts +0 -281
- package/core/__tests__/agentic/plan-mode.test.ts +0 -386
- package/core/__tests__/agentic/prompt-assembly.test.ts +0 -298
- package/core/__tests__/agentic/prompt-builder.test.ts +0 -243
- package/core/__tests__/agentic/response-validator.test.ts +0 -263
- package/core/__tests__/agentic/semantic-matching.test.ts +0 -131
- package/core/__tests__/agentic/smart-context.test.ts +0 -372
- package/core/__tests__/agentic/tech-normalizer.test.ts +0 -136
- package/core/__tests__/agentic/token-budget.test.ts +0 -294
- package/core/__tests__/ai-tools/formatters.test.ts +0 -476
- package/core/__tests__/domain/bm25.test.ts +0 -225
- package/core/__tests__/domain/change-propagator.test.ts +0 -100
- package/core/__tests__/domain/fibonacci.test.ts +0 -113
- package/core/__tests__/domain/file-hasher.test.ts +0 -146
- package/core/__tests__/domain/file-ranker.test.ts +0 -169
- package/core/__tests__/domain/git-cochange.test.ts +0 -121
- package/core/__tests__/domain/import-graph.test.ts +0 -156
- package/core/__tests__/domain/velocity.test.ts +0 -623
- package/core/__tests__/infrastructure/performance-tracker.test.ts +0 -328
- package/core/__tests__/schemas/model.test.ts +0 -272
- package/core/__tests__/services/dependency-validator.test.ts +0 -175
- package/core/__tests__/services/hierarchical-agent-resolver.test.ts +0 -359
- package/core/__tests__/services/nested-context-resolver.test.ts +0 -443
- package/core/__tests__/services/project-index.test.ts +0 -355
- package/core/__tests__/services/staleness-checker.test.ts +0 -204
- package/core/__tests__/storage/analysis-storage.test.ts +0 -641
- package/core/__tests__/storage/archive-storage.test.ts +0 -455
- package/core/__tests__/storage/safe-reader.test.ts +0 -262
- package/core/__tests__/storage/sqlite-migration.test.ts +0 -1016
- package/core/__tests__/storage/storage-manager.test.ts +0 -383
- package/core/__tests__/storage/subtask-handoff.test.ts +0 -237
- package/core/__tests__/types/fs.test.ts +0 -125
- package/core/__tests__/utils/date-helper.test.ts +0 -449
- package/core/__tests__/utils/output.test.ts +0 -278
- package/core/__tests__/utils/preserve-sections.test.ts +0 -216
- package/core/__tests__/utils/project-commands.test.ts +0 -71
- package/core/__tests__/utils/retry.test.ts +0 -381
- package/core/__tests__/workflow/state-machine.test.ts +0 -216
- package/core/agentic/agent-router.ts +0 -150
- package/core/agentic/anti-hallucination.ts +0 -141
- package/core/agentic/chain-of-thought.ts +0 -234
- package/core/agentic/command-classifier.ts +0 -141
- package/core/agentic/command-context.ts +0 -168
- package/core/agentic/command-executor.ts +0 -471
- package/core/agentic/context-builder.ts +0 -285
- package/core/agentic/domain-classifier.ts +0 -525
- package/core/agentic/environment-block.ts +0 -102
- package/core/agentic/ground-truth.ts +0 -706
- package/core/agentic/index.ts +0 -193
- package/core/agentic/injection-validator.ts +0 -208
- package/core/agentic/loop-detector.ts +0 -451
- package/core/agentic/memory-system.ts +0 -1547
- package/core/agentic/orchestrator-executor.ts +0 -579
- package/core/agentic/plan-mode.ts +0 -525
- package/core/agentic/prompt-builder.ts +0 -1069
- package/core/agentic/response-validator.ts +0 -98
- package/core/agentic/services.ts +0 -167
- package/core/agentic/skill-loader.ts +0 -106
- package/core/agentic/smart-context.ts +0 -393
- package/core/agentic/tech-normalizer.ts +0 -167
- package/core/agentic/template-executor.ts +0 -272
- package/core/agentic/template-loader.ts +0 -109
- package/core/agentic/token-budget.ts +0 -226
- package/core/agentic/tool-registry.ts +0 -146
- package/core/agents/index.ts +0 -28
- package/core/agents/performance.ts +0 -429
- package/core/ai-tools/formatters.ts +0 -341
- package/core/ai-tools/generator.ts +0 -144
- package/core/ai-tools/index.ts +0 -15
- package/core/ai-tools/registry.ts +0 -201
- package/core/bus/bus.ts +0 -314
- package/core/bus/index.ts +0 -8
- package/core/cli/linear.ts +0 -500
- package/core/cli/lint-meta-commentary.ts +0 -177
- package/core/cli/start.ts +0 -386
- package/core/commands/analysis.ts +0 -1274
- package/core/commands/analytics.ts +0 -342
- package/core/commands/base.ts +0 -118
- package/core/commands/cleanup.ts +0 -157
- package/core/commands/command-data.ts +0 -463
- package/core/commands/commands.ts +0 -306
- package/core/commands/context.ts +0 -238
- package/core/commands/design.ts +0 -77
- package/core/commands/index.ts +0 -19
- package/core/commands/maintenance.ts +0 -77
- package/core/commands/performance.ts +0 -114
- package/core/commands/planning.ts +0 -662
- package/core/commands/register.ts +0 -127
- package/core/commands/registry.ts +0 -444
- package/core/commands/setup.ts +0 -280
- package/core/commands/shipping.ts +0 -267
- package/core/commands/snapshots.ts +0 -297
- package/core/commands/uninstall.ts +0 -542
- package/core/commands/velocity.ts +0 -149
- package/core/commands/workflow.ts +0 -502
- package/core/config/command-context.config.json +0 -66
- package/core/constants/index.ts +0 -379
- package/core/context/generator.ts +0 -368
- package/core/context-tools/files-tool.ts +0 -577
- package/core/context-tools/imports-tool.ts +0 -400
- package/core/context-tools/index.ts +0 -434
- package/core/context-tools/recent-tool.ts +0 -301
- package/core/context-tools/signatures-tool.ts +0 -495
- package/core/context-tools/summary-tool.ts +0 -301
- package/core/context-tools/token-counter.ts +0 -273
- package/core/context-tools/types.ts +0 -253
- package/core/domain/agent-generator.ts +0 -186
- package/core/domain/agent-loader.ts +0 -419
- package/core/domain/analyzer.ts +0 -387
- package/core/domain/architecture-generator.ts +0 -108
- package/core/domain/bm25.ts +0 -525
- package/core/domain/change-propagator.ts +0 -162
- package/core/domain/context-estimator.ts +0 -175
- package/core/domain/fibonacci.ts +0 -128
- package/core/domain/file-hasher.ts +0 -296
- package/core/domain/file-ranker.ts +0 -151
- package/core/domain/git-cochange.ts +0 -250
- package/core/domain/import-graph.ts +0 -315
- package/core/domain/snapshot-manager.ts +0 -415
- package/core/domain/task-stack.ts +0 -578
- package/core/domain/velocity.ts +0 -470
- package/core/errors.ts +0 -335
- package/core/events/events.ts +0 -85
- package/core/events/index.ts +0 -8
- package/core/index.ts +0 -481
- package/core/infrastructure/agent-detector.ts +0 -135
- package/core/infrastructure/ai-provider.ts +0 -578
- package/core/infrastructure/author-detector.ts +0 -133
- package/core/infrastructure/capability-installer.ts +0 -76
- package/core/infrastructure/claude-agent.ts +0 -297
- package/core/infrastructure/command-installer.ts +0 -752
- package/core/infrastructure/config-manager.ts +0 -364
- package/core/infrastructure/editors-config.ts +0 -172
- package/core/infrastructure/path-manager.ts +0 -571
- package/core/infrastructure/performance-tracker.ts +0 -326
- package/core/infrastructure/permission-manager.ts +0 -289
- package/core/infrastructure/setup.ts +0 -1061
- package/core/infrastructure/update-checker.ts +0 -246
- package/core/integrations/issue-tracker/enricher.ts +0 -271
- package/core/integrations/issue-tracker/index.ts +0 -8
- package/core/integrations/issue-tracker/manager.ts +0 -286
- package/core/integrations/issue-tracker/types.ts +0 -310
- package/core/integrations/jira/cache.ts +0 -57
- package/core/integrations/jira/client.ts +0 -688
- package/core/integrations/jira/index.ts +0 -23
- package/core/integrations/jira/service.ts +0 -244
- package/core/integrations/linear/cache.ts +0 -68
- package/core/integrations/linear/client.ts +0 -436
- package/core/integrations/linear/index.ts +0 -20
- package/core/integrations/linear/service.ts +0 -260
- package/core/integrations/linear/sync.ts +0 -314
- package/core/outcomes/analyzer.ts +0 -286
- package/core/outcomes/index.ts +0 -34
- package/core/outcomes/recorder.ts +0 -195
- package/core/plugin/builtin/webhook.ts +0 -148
- package/core/plugin/hooks.ts +0 -315
- package/core/plugin/index.ts +0 -50
- package/core/plugin/loader.ts +0 -354
- package/core/plugin/registry.ts +0 -326
- package/core/schemas/agents.ts +0 -27
- package/core/schemas/analysis.ts +0 -530
- package/core/schemas/classification.ts +0 -91
- package/core/schemas/command-context.ts +0 -29
- package/core/schemas/enriched-task.ts +0 -291
- package/core/schemas/ideas.ts +0 -114
- package/core/schemas/index.ts +0 -53
- package/core/schemas/issues.ts +0 -159
- package/core/schemas/llm-output.ts +0 -170
- package/core/schemas/metrics.ts +0 -143
- package/core/schemas/model.ts +0 -153
- package/core/schemas/outcomes.ts +0 -487
- package/core/schemas/performance.ts +0 -128
- package/core/schemas/permissions.ts +0 -180
- package/core/schemas/prd.ts +0 -450
- package/core/schemas/project.ts +0 -57
- package/core/schemas/roadmap.ts +0 -322
- package/core/schemas/schemas.ts +0 -38
- package/core/schemas/shipped.ts +0 -109
- package/core/schemas/state.ts +0 -241
- package/core/schemas/velocity.ts +0 -103
- package/core/server/index.ts +0 -21
- package/core/server/routes-extended.ts +0 -566
- package/core/server/routes.ts +0 -176
- package/core/server/server.ts +0 -149
- package/core/server/sse.ts +0 -192
- package/core/services/agent-generator.ts +0 -316
- package/core/services/agent-service.ts +0 -168
- package/core/services/breakdown-service.ts +0 -124
- package/core/services/context-generator.ts +0 -445
- package/core/services/context-selector.ts +0 -429
- package/core/services/dependency-validator.ts +0 -318
- package/core/services/diff-generator.ts +0 -313
- package/core/services/doctor-service.ts +0 -423
- package/core/services/file-categorizer.ts +0 -448
- package/core/services/file-scorer.ts +0 -270
- package/core/services/git-analyzer.ts +0 -293
- package/core/services/hierarchical-agent-resolver.ts +0 -236
- package/core/services/hooks-service.ts +0 -685
- package/core/services/index.ts +0 -46
- package/core/services/local-state-generator.ts +0 -158
- package/core/services/memory-service.ts +0 -181
- package/core/services/nested-context-resolver.ts +0 -842
- package/core/services/project-index.ts +0 -911
- package/core/services/project-service.ts +0 -155
- package/core/services/session-tracker.ts +0 -287
- package/core/services/skill-installer.ts +0 -447
- package/core/services/skill-lock.ts +0 -132
- package/core/services/skill-service.ts +0 -306
- package/core/services/stack-detector.ts +0 -229
- package/core/services/staleness-checker.ts +0 -327
- package/core/services/sync-service.ts +0 -1404
- package/core/services/sync-verifier.ts +0 -253
- package/core/services/watch-service.ts +0 -312
- package/core/session/compaction.ts +0 -248
- package/core/session/index.ts +0 -35
- package/core/session/log-migration.ts +0 -88
- package/core/session/metrics.ts +0 -323
- package/core/session/session-log-manager.ts +0 -307
- package/core/session/task-session-manager.ts +0 -404
- package/core/session/utils.ts +0 -51
- package/core/storage/analysis-storage.ts +0 -373
- package/core/storage/archive-storage.ts +0 -205
- package/core/storage/database.ts +0 -575
- package/core/storage/ideas-storage.ts +0 -298
- package/core/storage/index-storage.ts +0 -523
- package/core/storage/index.ts +0 -79
- package/core/storage/metrics-storage.ts +0 -321
- package/core/storage/migrate-json.ts +0 -720
- package/core/storage/queue-storage.ts +0 -336
- package/core/storage/safe-reader.ts +0 -105
- package/core/storage/shipped-storage.ts +0 -253
- package/core/storage/state-storage.ts +0 -848
- package/core/storage/storage-manager.ts +0 -205
- package/core/storage/storage.ts +0 -177
- package/core/storage/velocity-storage.ts +0 -149
- package/core/sync/auth-config.ts +0 -138
- package/core/sync/index.ts +0 -31
- package/core/sync/oauth-handler.ts +0 -143
- package/core/sync/sync-client.ts +0 -251
- package/core/sync/sync-manager.ts +0 -327
- package/core/tsconfig.json +0 -22
- package/core/types/agentic.ts +0 -760
- package/core/types/agents.ts +0 -150
- package/core/types/bus.ts +0 -193
- package/core/types/citations.ts +0 -22
- package/core/types/commands.ts +0 -399
- package/core/types/config.ts +0 -92
- package/core/types/core.ts +0 -96
- package/core/types/diff.ts +0 -41
- package/core/types/domain.ts +0 -71
- package/core/types/errors.ts +0 -111
- package/core/types/events.ts +0 -42
- package/core/types/fs.ts +0 -72
- package/core/types/index.ts +0 -510
- package/core/types/infrastructure.ts +0 -210
- package/core/types/integrations.ts +0 -31
- package/core/types/jira.ts +0 -51
- package/core/types/logger.ts +0 -17
- package/core/types/memory.ts +0 -313
- package/core/types/outcomes.ts +0 -190
- package/core/types/output.ts +0 -47
- package/core/types/plugin.ts +0 -25
- package/core/types/project-sync.ts +0 -129
- package/core/types/provider.ts +0 -163
- package/core/types/server.ts +0 -71
- package/core/types/services.ts +0 -84
- package/core/types/session.ts +0 -135
- package/core/types/stack.ts +0 -19
- package/core/types/storage.ts +0 -318
- package/core/types/sync-verifier.ts +0 -33
- package/core/types/sync.ts +0 -121
- package/core/types/task.ts +0 -72
- package/core/types/template.ts +0 -24
- package/core/types/utils.ts +0 -92
- package/core/types/workflow.ts +0 -23
- package/core/utils/agent-stream.ts +0 -140
- package/core/utils/animations.ts +0 -251
- package/core/utils/branding.ts +0 -88
- package/core/utils/cache.ts +0 -187
- package/core/utils/citations.ts +0 -39
- package/core/utils/collection-filters.ts +0 -209
- package/core/utils/date-helper.ts +0 -176
- package/core/utils/error-messages.ts +0 -38
- package/core/utils/file-helper.ts +0 -277
- package/core/utils/fs-helpers.ts +0 -14
- package/core/utils/help.ts +0 -314
- package/core/utils/jsonl-helper.ts +0 -290
- package/core/utils/keychain.ts +0 -127
- package/core/utils/logger.ts +0 -77
- package/core/utils/markdown-builder.ts +0 -280
- package/core/utils/next-steps.ts +0 -95
- package/core/utils/output.ts +0 -403
- package/core/utils/preserve-sections.ts +0 -218
- package/core/utils/project-commands.ts +0 -126
- package/core/utils/project-credentials.ts +0 -143
- package/core/utils/provider-cache.ts +0 -49
- package/core/utils/retry.ts +0 -318
- package/core/utils/runtime.ts +0 -108
- package/core/utils/session-helper.ts +0 -278
- package/core/utils/subtask-table.ts +0 -227
- package/core/utils/version.ts +0 -128
- package/core/wizard/index.ts +0 -13
- package/core/wizard/onboarding.ts +0 -633
- package/core/workflow/index.ts +0 -7
- package/core/workflow/state-machine.ts +0 -198
- package/core/workflow/workflow-preferences.ts +0 -294
- package/dist/core/infrastructure/command-installer.js +0 -1141
- package/dist/core/infrastructure/editors-config.js +0 -177
- package/dist/core/infrastructure/setup.js +0 -2244
- package/dist/core/utils/version.js +0 -141
- package/templates/agentic/agent-routing.md +0 -45
- package/templates/agentic/agents/uxui.md +0 -63
- package/templates/agentic/checklist-routing.md +0 -98
- package/templates/agentic/orchestrator.md +0 -68
- package/templates/agentic/task-fragmentation.md +0 -89
- package/templates/agents/AGENTS.md +0 -68
- package/templates/analysis/analyze.md +0 -84
- package/templates/analysis/patterns.md +0 -60
- package/templates/antigravity/SKILL.md +0 -39
- package/templates/architect/discovery.md +0 -67
- package/templates/architect/phases.md +0 -59
- package/templates/checklists/architecture.md +0 -28
- package/templates/checklists/code-quality.md +0 -28
- package/templates/checklists/data.md +0 -33
- package/templates/checklists/documentation.md +0 -33
- package/templates/checklists/infrastructure.md +0 -33
- package/templates/checklists/performance.md +0 -33
- package/templates/checklists/security.md +0 -33
- package/templates/checklists/testing.md +0 -33
- package/templates/checklists/ux-ui.md +0 -37
- package/templates/commands/analyze.md +0 -56
- package/templates/commands/auth.md +0 -234
- package/templates/commands/bug.md +0 -163
- package/templates/commands/cleanup.md +0 -19
- package/templates/commands/dash.md +0 -99
- package/templates/commands/design.md +0 -15
- package/templates/commands/done.md +0 -291
- package/templates/commands/enrich.md +0 -174
- package/templates/commands/git.md +0 -295
- package/templates/commands/history.md +0 -389
- package/templates/commands/idea.md +0 -88
- package/templates/commands/impact.md +0 -864
- package/templates/commands/init.md +0 -54
- package/templates/commands/jira.md +0 -278
- package/templates/commands/linear.md +0 -288
- package/templates/commands/merge.md +0 -206
- package/templates/commands/next.md +0 -80
- package/templates/commands/p.md +0 -67
- package/templates/commands/p.toml +0 -37
- package/templates/commands/pause.md +0 -136
- package/templates/commands/plan.md +0 -696
- package/templates/commands/prd.md +0 -356
- package/templates/commands/resume.md +0 -171
- package/templates/commands/review.md +0 -276
- package/templates/commands/serve.md +0 -118
- package/templates/commands/setup.md +0 -91
- package/templates/commands/ship.md +0 -475
- package/templates/commands/skill.md +0 -259
- package/templates/commands/spec.md +0 -218
- package/templates/commands/status.md +0 -207
- package/templates/commands/sync.md +0 -104
- package/templates/commands/task.md +0 -312
- package/templates/commands/test.md +0 -93
- package/templates/commands/update.md +0 -63
- package/templates/commands/verify.md +0 -204
- package/templates/commands/workflow.md +0 -150
- package/templates/config/skill-mappings.json +0 -82
- package/templates/context/dashboard.md +0 -256
- package/templates/context/roadmap.md +0 -221
- package/templates/cursor/commands/bug.md +0 -8
- package/templates/cursor/commands/done.md +0 -4
- package/templates/cursor/commands/pause.md +0 -6
- package/templates/cursor/commands/resume.md +0 -4
- package/templates/cursor/commands/ship.md +0 -8
- package/templates/cursor/commands/sync.md +0 -4
- package/templates/cursor/commands/task.md +0 -8
- package/templates/cursor/p.md +0 -29
- package/templates/cursor/router.mdc +0 -28
- package/templates/design/api.md +0 -95
- package/templates/design/architecture.md +0 -77
- package/templates/design/component.md +0 -89
- package/templates/design/database.md +0 -78
- package/templates/design/flow.md +0 -94
- package/templates/global/ANTIGRAVITY.md +0 -254
- package/templates/global/CLAUDE.md +0 -497
- package/templates/global/CURSOR.mdc +0 -266
- package/templates/global/GEMINI.md +0 -293
- package/templates/global/STORAGE-SPEC.md +0 -391
- package/templates/global/WINDSURF.md +0 -266
- package/templates/global/modules/CLAUDE-commands.md +0 -70
- package/templates/global/modules/CLAUDE-core.md +0 -105
- package/templates/global/modules/CLAUDE-git.md +0 -50
- package/templates/global/modules/CLAUDE-intelligence.md +0 -92
- package/templates/global/modules/CLAUDE-storage.md +0 -50
- package/templates/global/modules/module-config.json +0 -36
- package/templates/mcp-config.json +0 -19
- package/templates/permissions/default.jsonc +0 -60
- package/templates/permissions/permissive.jsonc +0 -49
- package/templates/permissions/strict.jsonc +0 -58
- package/templates/planning-methodology.md +0 -195
- package/templates/skills/code-review.md +0 -47
- package/templates/skills/debug.md +0 -61
- package/templates/skills/refactor.md +0 -47
- package/templates/subagents/agent-base.md +0 -20
- package/templates/subagents/domain/backend.md +0 -109
- package/templates/subagents/domain/database.md +0 -121
- package/templates/subagents/domain/devops.md +0 -152
- package/templates/subagents/domain/frontend.md +0 -103
- package/templates/subagents/domain/testing.md +0 -169
- package/templates/subagents/pm-expert.md +0 -366
- package/templates/subagents/workflow/chief-architect.md +0 -657
- package/templates/subagents/workflow/prjct-planner.md +0 -159
- package/templates/subagents/workflow/prjct-shipper.md +0 -188
- package/templates/subagents/workflow/prjct-workflow.md +0 -98
- package/templates/tools/bash.txt +0 -22
- package/templates/tools/edit.txt +0 -18
- package/templates/tools/glob.txt +0 -19
- package/templates/tools/grep.txt +0 -21
- package/templates/tools/read.txt +0 -14
- package/templates/tools/task.txt +0 -20
- package/templates/tools/webfetch.txt +0 -16
- package/templates/tools/websearch.txt +0 -18
- package/templates/tools/write.txt +0 -17
- package/templates/windsurf/router.md +0 -28
- package/templates/windsurf/workflows/bug.md +0 -8
- package/templates/windsurf/workflows/done.md +0 -4
- package/templates/windsurf/workflows/pause.md +0 -4
- package/templates/windsurf/workflows/resume.md +0 -4
- package/templates/windsurf/workflows/ship.md +0 -8
- package/templates/windsurf/workflows/sync.md +0 -4
- package/templates/windsurf/workflows/task.md +0 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,10 +1,254 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.23.0] - 2026-02-11
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- compile and ship dist/ instead of raw TypeScript source (PRJ-294) (#168)
|
|
8
|
+
- add outcome-to-memory auto-learning (PRJ-283) (#166)
|
|
9
|
+
|
|
10
|
+
### Refactoring
|
|
11
|
+
|
|
12
|
+
- consolidate core modules from 27 to 20 directories (PRJ-292) (#167)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
## [1.25.0] - 2026-02-10
|
|
16
|
+
|
|
17
|
+
### Infrastructure
|
|
18
|
+
|
|
19
|
+
- **Compile and ship dist/** (PRJ-294): Package no longer ships raw TypeScript source. Compiled, minified JavaScript with source maps instead.
|
|
20
|
+
- Rewrote `scripts/build.js` v3.0: produces minified ESM bundles via esbuild with source maps
|
|
21
|
+
- Bundled 127 template files into single `dist/templates.json` (408KB)
|
|
22
|
+
- Main CLI compiled to `dist/bin/prjct.mjs` (600KB minified), Linear CLI to `dist/cli/linear.mjs` (27KB)
|
|
23
|
+
- Package reduced from 1.1MB/480 files to 971KB/27 files
|
|
24
|
+
- All template consumers use bundle-first pattern via `getTemplateContent()` and `listTemplates()` helpers
|
|
25
|
+
- Dual-mode operation: dev mode (raw TS via bun) and production mode (compiled dist/) both work
|
|
26
|
+
- Updated `bin/prjct` shell script for dev vs production detection
|
|
27
|
+
- Updated 8 modules to use template bundle: command-installer, setup, setup-cursor, setup-windsurf, prompt-builder, sync-agent-gen, template-loader, bin/prjct.ts
|
|
28
|
+
|
|
29
|
+
### Implementation Details
|
|
30
|
+
|
|
31
|
+
Rewrote the build system to produce compiled JavaScript output instead of shipping raw TypeScript. The key innovation is the bundle-first pattern: `getTemplateContent()` tries the bundled JSON first, falls back to filesystem for dev mode. This unified API replaced scattered `fs.readFile` calls across 8 modules. The shell script (`bin/prjct`) detects dev vs production by checking if `prjct.ts` exists.
|
|
32
|
+
|
|
33
|
+
### Learnings
|
|
34
|
+
|
|
35
|
+
- Bundle-first pattern (try JSON bundle, fall back to filesystem) provides clean dev/prod abstraction
|
|
36
|
+
- ESM requires banner injection for `__dirname`/`__filename` since they don't exist in ESM scope
|
|
37
|
+
- npm auto-includes `main` field target in package even when not in `files` array
|
|
38
|
+
- `packages: 'external'` in esbuild avoids bundling node_modules into dist/
|
|
39
|
+
- `keepNames: true` preserves function names despite minification, helpful for debugging
|
|
40
|
+
|
|
41
|
+
### Test Plan
|
|
42
|
+
|
|
43
|
+
#### For QA
|
|
44
|
+
1. `npm pack` — verify tarball contains only dist/, bin/prjct, assets/, scripts, README, LICENSE, CHANGELOG
|
|
45
|
+
2. `bun dist/bin/prjct.mjs version` — CLI runs from compiled output
|
|
46
|
+
3. `bun dist/bin/prjct.mjs sync --json` — full sync works with bundled templates
|
|
47
|
+
4. `prjct linear list` — linear CLI subprocess resolves correctly
|
|
48
|
+
5. Verify `dist/templates.json` contains all 127 template files
|
|
49
|
+
6. Dev mode: `bun bin/prjct.ts version` still runs raw TypeScript
|
|
50
|
+
|
|
51
|
+
#### For Users
|
|
52
|
+
**What changed:** Package is now smaller and ships compiled JavaScript instead of raw TypeScript source.
|
|
53
|
+
**How to use:** No changes — all `prjct` commands work identically.
|
|
54
|
+
**Breaking changes:** None
|
|
55
|
+
|
|
56
|
+
## [1.24.0] - 2026-02-10
|
|
57
|
+
|
|
58
|
+
### Refactor
|
|
59
|
+
|
|
60
|
+
- **Consolidate core modules** (PRJ-292): Reduced `core/` from 27 to 20 directories by merging overlapping modules, splitting large files, and eliminating legacy duplicates
|
|
61
|
+
- Merged `bus/` + `events/` into `events/` (pub-sub.ts, sync-events.ts)
|
|
62
|
+
- Merged `ai-tools/` + `context-tools/` into `tools/` (ai/, context/ subdirs)
|
|
63
|
+
- Merged `plugin/` + `agents/` into `agentic/` (hooks, plugin-loader, plugin-registry, performance)
|
|
64
|
+
- Merged `wizard/` + `outcomes/` into `workflows/` (onboarding, outcome-analyzer/recorder/learner/storage)
|
|
65
|
+
- Absorbed `context/` into `agentic/` and `constants/` into `utils/`
|
|
66
|
+
- Split 4 large files (5400+ lines total):
|
|
67
|
+
- `memory-system.ts` (1547 → 279) into memory-stores.ts, pattern-store.ts, semantic-memories.ts
|
|
68
|
+
- `sync-service.ts` (1562 → 837) into sync-analyzer.ts, sync-agent-gen.ts
|
|
69
|
+
- `setup.ts` (1061 → 775) into setup-cursor.ts, setup-windsurf.ts
|
|
70
|
+
- `analysis.ts` (1274 → 850) into analysis-helpers.ts
|
|
71
|
+
- Eliminated legacy `fs-helpers.ts` (16 importers migrated to `file-helper.ts`)
|
|
72
|
+
- Removed all type re-exports, duplicated code, and backward-compat shims
|
|
73
|
+
- 84 files changed, +2638/-3182, tsc clean, 1057 tests pass
|
|
74
|
+
|
|
75
|
+
### Implementation Details
|
|
76
|
+
|
|
77
|
+
Large-scale module consolidation to reduce cognitive load and improve maintainability. Each merge followed the pattern: move files, update relative imports across all importers, clean barrel index.ts files, verify with tsc + tests. Used parallel background agents for independent file splits.
|
|
78
|
+
|
|
79
|
+
Key patterns: CachedStore<T> abstract base class for disk-backed stores, standalone helper function extraction for large command classes, editor-specific code isolation (Cursor/Windsurf).
|
|
80
|
+
|
|
81
|
+
### Learnings
|
|
82
|
+
|
|
83
|
+
- Parallel agents work well for independent file splits (3 simultaneous splits completed successfully)
|
|
84
|
+
- Pre-existing circular deps in commands<->services chain (3 cycles) — not introduced by this refactor
|
|
85
|
+
- Known flaky test (intermittent timing issue) — passes on re-run
|
|
86
|
+
|
|
87
|
+
### Test Plan
|
|
88
|
+
|
|
89
|
+
#### For QA
|
|
90
|
+
1. `npx tsc -p core/tsconfig.json --noEmit` — zero errors
|
|
91
|
+
2. `bun test` — 1057 tests pass
|
|
92
|
+
3. `prjct sync` in any project — works identically
|
|
93
|
+
4. Deleted dirs don't exist: bus/, ai-tools/, context-tools/, plugin/, agents/, wizard/, outcomes/, context/, constants/
|
|
94
|
+
5. New dirs exist: tools/ai/, tools/context/, workflows/, events/
|
|
95
|
+
|
|
96
|
+
#### For Users
|
|
97
|
+
**What changed:** Internal module reorganization only
|
|
98
|
+
**Breaking changes:** None for CLI users. Internal import paths changed (affects contributors).
|
|
99
|
+
|
|
100
|
+
## [1.23.0] - 2026-02-10
|
|
101
|
+
|
|
102
|
+
### Features
|
|
103
|
+
|
|
104
|
+
- **Outcome-to-memory auto-learning** (PRJ-283): Completed tasks automatically extract patterns and inject high-confidence learnings into semantic memory
|
|
105
|
+
- `OutcomeStorage`: Unified storage for feature/task outcomes extending StorageManager, with migration from shipped.json, aggregation, and markdown generation
|
|
106
|
+
- `OutcomeMemoryLearner`: Extracts file co-change, tech stack, architecture, gotcha, and workflow patterns from task history and feature outcomes
|
|
107
|
+
- Confidence-gated injection: Only patterns with 3+ occurrences are auto-injected into memory
|
|
108
|
+
- Deduplication: Updates existing `[auto-learned]` memories instead of creating duplicates
|
|
109
|
+
- Non-blocking sync integration: Auto-learning runs during `p. sync` as step 9c (errors caught, don't block sync)
|
|
110
|
+
- `p. learnings` command template for viewing auto-learned patterns by confidence level
|
|
111
|
+
- 37 new tests (26 learner + 11 storage), 1057 total
|
|
112
|
+
|
|
113
|
+
### Implementation Details
|
|
114
|
+
|
|
115
|
+
Bridges the outcomes system to semantic memory. Previously, patterns from completed tasks were only available in task history JSON. Now, recurring patterns are automatically extracted and injected into the memory system for cross-session knowledge transfer.
|
|
116
|
+
|
|
117
|
+
**Data flow:** `taskHistory[]` + `FeatureOutcome[]` → pattern extraction → confidence scoring → `SemanticMemories` injection
|
|
118
|
+
|
|
119
|
+
**Pattern categories:** file_cochange (files modified together), tech_stack (confirmed technologies), architecture (discovered patterns), estimation (variance tracking), workflow (what works/doesn't), gotcha (recurring issues)
|
|
120
|
+
|
|
121
|
+
**New modules:**
|
|
122
|
+
- `core/outcomes/outcome-storage.ts` — OutcomeStorage extending StorageManager with CRUD, migration, aggregation, markdown
|
|
123
|
+
- `core/outcomes/outcome-learner.ts` — OutcomeMemoryLearner with pattern extraction and memory injection
|
|
124
|
+
- `core/outcomes/index.ts` — Updated exports
|
|
125
|
+
- `core/services/sync-service.ts` — Added autoLearnFromHistory() in sync flow
|
|
126
|
+
- `templates/commands/learnings.md` — Template for `p. learnings` command
|
|
127
|
+
- `core/__tests__/outcomes/outcome-learner.test.ts` — 26 tests
|
|
128
|
+
- `core/__tests__/outcomes/outcome-storage.test.ts` — 11 tests
|
|
129
|
+
|
|
130
|
+
### Learnings
|
|
131
|
+
|
|
132
|
+
- `StorageManager<T>` base class provides consistent pattern for all JSON storage with SQLite backing, cache, MD generation, and event publishing
|
|
133
|
+
- Non-critical sync steps should always wrap in try/catch to prevent blocking the main sync flow
|
|
134
|
+
- biome pre-commit hook checks ALL files, not just staged — run `biome check --write` on all new files before committing
|
|
135
|
+
|
|
136
|
+
### Test Plan
|
|
137
|
+
|
|
138
|
+
#### For QA
|
|
139
|
+
1. Run `p. sync` on a project with task history — verify auto-learning runs without errors
|
|
140
|
+
2. Check memories.json for `[auto-learned]` entries after sync with 3+ recurring patterns
|
|
141
|
+
3. Run `p. learnings` — verify patterns display grouped by confidence level
|
|
142
|
+
4. Complete 3+ tasks with the same stackConfirmed values — verify auto-injection
|
|
143
|
+
5. Verify sync works when no task history exists
|
|
144
|
+
|
|
145
|
+
#### For Users
|
|
146
|
+
**What changed:** Completed tasks now automatically extract patterns and inject high-confidence learnings into the memory system.
|
|
147
|
+
**How to use:** Patterns accumulate automatically. Run `p. learnings` to see what the system has learned.
|
|
148
|
+
**Breaking changes:** None
|
|
149
|
+
|
|
150
|
+
## [1.22.0] - 2026-02-10
|
|
151
|
+
|
|
152
|
+
### Features
|
|
153
|
+
|
|
154
|
+
- add task-to-analysis feedback loop (PRJ-272) (#165)
|
|
155
|
+
- add task history array with FIFO eviction (PRJ-281) (#164)
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
## [1.22.0] - 2026-02-10
|
|
159
|
+
|
|
160
|
+
### Features
|
|
161
|
+
|
|
162
|
+
- **Task-to-analysis feedback loop** (PRJ-272): Tasks report discoveries back into analysis and agent generation
|
|
163
|
+
- TaskFeedbackSchema: stackConfirmed, patternsDiscovered, agentAccuracy (with rating enum), issuesEncountered
|
|
164
|
+
- Optional `feedback` field on TaskHistoryEntry for backward compatibility
|
|
165
|
+
- `getAggregatedFeedback()` consolidates patterns, stack confirmations, and issues across task history
|
|
166
|
+
- Recurring issues (2+ occurrences) automatically promoted to "known gotchas"
|
|
167
|
+
- Sync incorporates feedback: patterns populate analysis draft, gotchas become anti-patterns
|
|
168
|
+
- Agent generator injects "Recent Learnings" section into domain agents with patterns, gotchas, and accuracy notes
|
|
169
|
+
- Workflow `done()` accepts and passes feedback through to storage
|
|
170
|
+
- 22 new tests covering schema validation, persistence, aggregation, gotcha promotion, and backward compatibility (1020 total)
|
|
171
|
+
|
|
172
|
+
### Implementation Details
|
|
173
|
+
|
|
174
|
+
Closes the knowledge loop between task execution and project analysis. Previously, discoveries made during tasks were lost when sessions ended. Now, structured feedback persists in task history and feeds into the next sync cycle.
|
|
175
|
+
|
|
176
|
+
**Data flow:** `p. done` (feedback captured) → `taskHistory[].feedback` → `p. sync` → `analysis.patterns` + `agents/*.md` "Recent Learnings"
|
|
177
|
+
|
|
178
|
+
**Modified modules:**
|
|
179
|
+
- `core/schemas/state.ts` — Added TaskFeedbackSchema, extended TaskHistoryEntrySchema with optional feedback field
|
|
180
|
+
- `core/storage/state-storage.ts` — completeTask() accepts feedback, createTaskHistoryEntry() attaches it, getAggregatedFeedback() provides read-side API, toMarkdown() shows feedback in context
|
|
181
|
+
- `core/commands/workflow.ts` — done() passes feedback through options to completeTask()
|
|
182
|
+
- `core/services/sync-service.ts` — saveDraftAnalysis() loads aggregated feedback, injectFeedbackSection() adds learnings to agents
|
|
183
|
+
- `core/services/agent-generator.ts` — generate() accepts TaskFeedbackContext, injectFeedbackSection() appends learnings to domain agents
|
|
184
|
+
- `core/__tests__/storage/state-storage-feedback.test.ts` — 22 comprehensive tests
|
|
185
|
+
|
|
186
|
+
### Learnings
|
|
187
|
+
|
|
188
|
+
- **SyncService duplicates AgentGenerator:** Both have their own `generateDomainAgent()` — feedback injection needed in both places
|
|
189
|
+
- **Write-Through pattern:** All state flows JSON → MD → Event; feedback follows the same pattern
|
|
190
|
+
- **Backward compatibility via optional fields:** Adding `feedback?: TaskFeedback` to existing schema requires zero migration
|
|
191
|
+
|
|
192
|
+
### Test Plan
|
|
193
|
+
|
|
194
|
+
#### For QA
|
|
195
|
+
1. Complete a task with `p. done` — verify feedback stored in `taskHistory[0].feedback`
|
|
196
|
+
2. Complete multiple tasks with same issue — verify gotcha promotion (2+ occurrences)
|
|
197
|
+
3. Run `p. sync` after tasks with feedback — verify analysis draft has patterns
|
|
198
|
+
4. Run `p. sync` with agent regeneration — verify "Recent Learnings" in domain agents
|
|
199
|
+
5. Complete task WITHOUT feedback — verify backward compatibility
|
|
200
|
+
6. Run `bun test` — all 1020 tests pass
|
|
201
|
+
|
|
202
|
+
#### For Users
|
|
203
|
+
**What changed:** Task discoveries now persist and improve future agent context automatically.
|
|
204
|
+
**How to use:** Automatic via `p. done` template. No user action required.
|
|
205
|
+
**Breaking changes:** None.
|
|
206
|
+
|
|
3
207
|
## [1.21.0] - 2026-02-10
|
|
4
208
|
|
|
5
209
|
### Features
|
|
6
210
|
|
|
7
211
|
- add semantic verification for analysis results (PRJ-270) (#163)
|
|
212
|
+
- **Task history array** (PRJ-281): Replace single previousTask with bounded task history for pattern learning
|
|
213
|
+
- TaskHistoryEntry schema captures completed task metadata: title, classification, timestamps, subtasks, outcome, branch, Linear IDs
|
|
214
|
+
- Automatic history push on task completion with FIFO eviction (max 20 entries)
|
|
215
|
+
- Context injection: shows 3 recent same-type tasks when active, 5 recent when idle
|
|
216
|
+
- Accessor methods: getTaskHistory(), getMostRecentTask(), getTaskHistoryByType()
|
|
217
|
+
- Backward compatible: undefined taskHistory initializes as empty array
|
|
218
|
+
- Comprehensive test suite with 20 test cases (998 tests total pass)
|
|
219
|
+
|
|
220
|
+
### Implementation Details
|
|
221
|
+
|
|
222
|
+
Replaced single previousTask field with bounded task history array to enable pattern learning and cross-task context for AI agents. When tasks complete, metadata is automatically captured and stored with FIFO eviction.
|
|
223
|
+
|
|
224
|
+
**Modified modules:**
|
|
225
|
+
- `core/schemas/state.ts` — Added TaskHistoryEntrySchema with 12 fields, updated StateJsonSchema, exported TaskHistoryEntry type, updated DEFAULT_STATE
|
|
226
|
+
- `core/storage/state-storage.ts` — Updated completeTask() to push history entries, added createTaskHistoryEntry() helper, added 3 accessor methods, updated toMarkdown() for context injection, updated getDefault()
|
|
227
|
+
- `core/__tests__/storage/state-storage-history.test.ts` (468 lines) — 20 comprehensive tests covering push, eviction, backward compatibility, accessors, and context injection
|
|
228
|
+
- `README.md` — Added Task History section with usage documentation
|
|
229
|
+
- `CHANGELOG.md` — Documented task history feature
|
|
230
|
+
|
|
231
|
+
### Learnings
|
|
232
|
+
|
|
233
|
+
- **Schema-first design:** Define Zod schemas before implementation ensures type safety and validation at runtime
|
|
234
|
+
- **Type assertions for extended properties:** Use `taskAny = task as any` to access properties not in CurrentTask schema (type, branch, parentDescription)
|
|
235
|
+
- **Context injection in toMarkdown():** The state-storage toMarkdown() method is where context is generated, not context-builder.ts
|
|
236
|
+
- **pathManager mocking for test isolation:** Mock getGlobalProjectPath, getStoragePath, getFilePath to use temp directories in tests
|
|
237
|
+
- **FIFO over LRU:** Simpler implementation with predictable behavior for bounded history
|
|
238
|
+
|
|
239
|
+
### Test Plan
|
|
240
|
+
|
|
241
|
+
#### For QA
|
|
242
|
+
1. Complete a task with `p. done` — verify taskHistory entry appears in state.json with all metadata fields
|
|
243
|
+
2. Complete 25+ tasks — verify only 20 entries remain (oldest dropped)
|
|
244
|
+
3. Start a bug task — verify context markdown shows recent bug tasks only (not features)
|
|
245
|
+
4. Test with existing state.json missing taskHistory field — verify backward compatibility
|
|
246
|
+
5. Verify accessor methods return correct data: getTaskHistory(), getMostRecentTask(), getTaskHistoryByType()
|
|
247
|
+
|
|
248
|
+
#### For Users
|
|
249
|
+
**What changed:** Completed tasks are now tracked in a history array (max 20) instead of only storing the last paused task
|
|
250
|
+
**How to use:** No action needed — task history is automatic on `p. done`
|
|
251
|
+
**Breaking changes:** None — fully backward compatible
|
|
8
252
|
|
|
9
253
|
|
|
10
254
|
## [1.20.0] - 2026-02-10
|
package/README.md
CHANGED
|
@@ -123,6 +123,47 @@ All agents share the same project storage, so you can switch between them freely
|
|
|
123
123
|
| `p. linear` | - | Linear integration |
|
|
124
124
|
| `p. github` | - | GitHub Issues integration |
|
|
125
125
|
|
|
126
|
+
## Task History
|
|
127
|
+
|
|
128
|
+
prjct automatically tracks your completed tasks to help AI agents learn from patterns and make better decisions across sessions.
|
|
129
|
+
|
|
130
|
+
### How It Works
|
|
131
|
+
|
|
132
|
+
When you complete a task (`p. done` / `/done`), prjct stores:
|
|
133
|
+
- Task description and classification (feature, bug, improvement, chore)
|
|
134
|
+
- Start and completion timestamps
|
|
135
|
+
- Number of subtasks and their summaries
|
|
136
|
+
- Git branch name and Linear issue ID (if linked)
|
|
137
|
+
- PR URL (if shipped)
|
|
138
|
+
|
|
139
|
+
This history is:
|
|
140
|
+
- **Bounded**: Maximum 20 entries with FIFO (First-In-First-Out) eviction
|
|
141
|
+
- **Contextual**: Filtered by task type when starting similar work
|
|
142
|
+
- **Persistent**: Survives across sessions and agent types
|
|
143
|
+
|
|
144
|
+
### Context Injection
|
|
145
|
+
|
|
146
|
+
Task history is automatically injected into the AI agent's context:
|
|
147
|
+
- When **starting a task**: Shows 3 most recent tasks of the same type (e.g., recent bug fixes when starting a new bug)
|
|
148
|
+
- When **idle**: Shows 5 most recent tasks across all types
|
|
149
|
+
- **Purpose**: Helps agents identify patterns, avoid repeating mistakes, and build on previous solutions
|
|
150
|
+
|
|
151
|
+
### Accessor Methods (for developers)
|
|
152
|
+
|
|
153
|
+
```typescript
|
|
154
|
+
import { stateStorage } from './storage/state-storage'
|
|
155
|
+
|
|
156
|
+
// Get full task history (max 20 entries, newest first)
|
|
157
|
+
const history = await stateStorage.getTaskHistory(projectId)
|
|
158
|
+
|
|
159
|
+
// Get most recent completed task
|
|
160
|
+
const recent = await stateStorage.getMostRecentTask(projectId)
|
|
161
|
+
|
|
162
|
+
// Get tasks by classification
|
|
163
|
+
const bugs = await stateStorage.getTaskHistoryByType(projectId, 'bug')
|
|
164
|
+
const features = await stateStorage.getTaskHistoryByType(projectId, 'feature')
|
|
165
|
+
```
|
|
166
|
+
|
|
126
167
|
## CLI Commands
|
|
127
168
|
|
|
128
169
|
```bash
|
package/bin/prjct
CHANGED
|
@@ -47,7 +47,6 @@ ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
|
47
47
|
# This runs EVERY time prjct is called, ensuring setup even if postinstall failed
|
|
48
48
|
ensure_setup() {
|
|
49
49
|
CLAUDE_COMMANDS="$HOME/.claude/commands"
|
|
50
|
-
PMD_SRC="$ROOT_DIR/templates/commands/p.md"
|
|
51
50
|
PMD_DEST="$CLAUDE_COMMANDS/p.md"
|
|
52
51
|
|
|
53
52
|
# Create dir if needed
|
|
@@ -55,14 +54,22 @@ ensure_setup() {
|
|
|
55
54
|
mkdir -p "$CLAUDE_COMMANDS" 2>/dev/null
|
|
56
55
|
fi
|
|
57
56
|
|
|
58
|
-
#
|
|
57
|
+
# Try source template first (dev mode), then extract from bundle (production)
|
|
58
|
+
PMD_SRC="$ROOT_DIR/templates/commands/p.md"
|
|
59
|
+
BUNDLE="$ROOT_DIR/dist/templates.json"
|
|
60
|
+
|
|
59
61
|
if [ -f "$PMD_SRC" ]; then
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
elif [ "$PMD_SRC" -nt "$PMD_DEST" ]; then
|
|
63
|
-
# Source is newer, update
|
|
62
|
+
# Dev mode: copy from source templates
|
|
63
|
+
if [ ! -f "$PMD_DEST" ] || [ "$PMD_SRC" -nt "$PMD_DEST" ]; then
|
|
64
64
|
cp "$PMD_SRC" "$PMD_DEST" 2>/dev/null
|
|
65
65
|
fi
|
|
66
|
+
elif [ -f "$BUNDLE" ] && [ ! -f "$PMD_DEST" ]; then
|
|
67
|
+
# Production: extract from bundle using node
|
|
68
|
+
node -e "
|
|
69
|
+
const b=JSON.parse(require('fs').readFileSync('$BUNDLE','utf8'));
|
|
70
|
+
const c=b['commands/p.md'];
|
|
71
|
+
if(c)require('fs').writeFileSync('$PMD_DEST',c);
|
|
72
|
+
" 2>/dev/null
|
|
66
73
|
fi
|
|
67
74
|
|
|
68
75
|
# Also ensure statusline (best effort)
|
|
@@ -110,22 +117,32 @@ check_node() {
|
|
|
110
117
|
command -v node >/dev/null 2>&1
|
|
111
118
|
}
|
|
112
119
|
|
|
113
|
-
# Run with bun (native TypeScript)
|
|
120
|
+
# Run with bun (native TypeScript in dev, compiled in production)
|
|
114
121
|
run_with_bun() {
|
|
115
|
-
|
|
122
|
+
# Dev mode: raw TypeScript is faster
|
|
123
|
+
if [ -f "$SCRIPT_DIR/prjct.ts" ]; then
|
|
124
|
+
exec bun "$SCRIPT_DIR/prjct.ts" "$@"
|
|
125
|
+
fi
|
|
126
|
+
# Production: use compiled dist
|
|
127
|
+
exec bun "$ROOT_DIR/dist/bin/prjct.mjs" "$@"
|
|
116
128
|
}
|
|
117
129
|
|
|
118
130
|
# Run with node (compiled JavaScript)
|
|
119
131
|
run_with_node() {
|
|
120
132
|
DIST_BIN="$ROOT_DIR/dist/bin/prjct.mjs"
|
|
121
133
|
|
|
122
|
-
# Check if compiled version exists
|
|
123
134
|
if [ ! -f "$DIST_BIN" ]; then
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
echo "
|
|
135
|
+
# Dev mode: try to build
|
|
136
|
+
if [ -f "$ROOT_DIR/scripts/build.js" ] && [ -d "$ROOT_DIR/core" ]; then
|
|
137
|
+
echo "Building for Node.js (first run)..."
|
|
138
|
+
node "$ROOT_DIR/scripts/build.js" || {
|
|
139
|
+
echo "Error: Build failed. Run 'npm run build' manually."
|
|
140
|
+
exit 1
|
|
141
|
+
}
|
|
142
|
+
else
|
|
143
|
+
echo "Error: Compiled output not found. Run 'npm run build' first."
|
|
127
144
|
exit 1
|
|
128
|
-
|
|
145
|
+
fi
|
|
129
146
|
fi
|
|
130
147
|
|
|
131
148
|
exec node "$DIST_BIN" "$@"
|