centy 0.2.8 → 0.4.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/bin/run.js +3 -3
- package/dist/commands/close.d.ts +1 -4
- package/dist/commands/close.d.ts.map +1 -1
- package/dist/commands/close.js +21 -108
- package/dist/commands/close.js.map +1 -1
- package/dist/commands/compact.d.ts +1 -5
- package/dist/commands/compact.d.ts.map +1 -1
- package/dist/commands/compact.js +23 -128
- package/dist/commands/compact.js.map +1 -1
- package/dist/commands/get/doc.d.ts +1 -0
- package/dist/commands/get/doc.d.ts.map +1 -1
- package/dist/commands/get/doc.js +19 -75
- package/dist/commands/get/doc.js.map +1 -1
- package/dist/commands/get/issue.d.ts.map +1 -1
- package/dist/commands/get/issue.js +13 -109
- package/dist/commands/get/issue.js.map +1 -1
- package/dist/commands/init.d.ts +0 -3
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +0 -16
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/show.d.ts +1 -0
- package/dist/commands/show.d.ts.map +1 -1
- package/dist/commands/show.js +15 -60
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/start.d.ts +0 -3
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +17 -80
- package/dist/commands/start.js.map +1 -1
- package/dist/daemon/daemon-response-error.d.ts +8 -1
- package/dist/daemon/daemon-response-error.d.ts.map +1 -1
- package/dist/daemon/daemon-response-error.js +23 -2
- package/dist/daemon/daemon-response-error.js.map +1 -1
- package/dist/daemon/grpc-client-data.d.ts +26 -0
- package/dist/daemon/grpc-client-data.d.ts.map +1 -0
- package/dist/daemon/grpc-client-data.js +2 -0
- package/dist/daemon/grpc-client-data.js.map +1 -0
- package/dist/daemon/grpc-client-extended.d.ts +29 -0
- package/dist/daemon/grpc-client-extended.d.ts.map +1 -0
- package/dist/daemon/grpc-client-extended.js +2 -0
- package/dist/daemon/grpc-client-extended.js.map +1 -0
- package/dist/daemon/grpc-client-init.d.ts +23 -0
- package/dist/daemon/grpc-client-init.d.ts.map +1 -0
- package/dist/daemon/grpc-client-init.js +2 -0
- package/dist/daemon/grpc-client-init.js.map +1 -0
- package/dist/daemon/grpc-client-ops.d.ts +23 -0
- package/dist/daemon/grpc-client-ops.d.ts.map +1 -0
- package/dist/daemon/grpc-client-ops.js +2 -0
- package/dist/daemon/grpc-client-ops.js.map +1 -0
- package/dist/daemon/grpc-client-project.d.ts +22 -0
- package/dist/daemon/grpc-client-project.d.ts.map +1 -0
- package/dist/daemon/grpc-client-project.js +2 -0
- package/dist/daemon/grpc-client-project.js.map +1 -0
- package/dist/daemon/grpc-config.d.ts +14 -0
- package/dist/daemon/grpc-config.d.ts.map +1 -0
- package/dist/daemon/grpc-config.js +26 -0
- package/dist/daemon/grpc-config.js.map +1 -0
- package/dist/daemon/grpc-utils.d.ts +32 -0
- package/dist/daemon/grpc-utils.d.ts.map +1 -0
- package/dist/daemon/grpc-utils.js +54 -0
- package/dist/daemon/grpc-utils.js.map +1 -0
- package/dist/daemon/load-proto.d.ts +9 -135
- package/dist/daemon/load-proto.d.ts.map +1 -1
- package/dist/daemon/load-proto.js +4 -77
- package/dist/daemon/load-proto.js.map +1 -1
- package/dist/daemon/parse-error-response.d.ts +14 -0
- package/dist/daemon/parse-error-response.d.ts.map +1 -0
- package/dist/daemon/parse-error-response.js +45 -0
- package/dist/daemon/parse-error-response.js.map +1 -0
- package/dist/daemon/types/asset.d.ts +64 -0
- package/dist/daemon/types/asset.d.ts.map +1 -0
- package/dist/daemon/types/asset.js +6 -0
- package/dist/daemon/types/asset.js.map +1 -0
- package/dist/daemon/types/config.d.ts +57 -0
- package/dist/daemon/types/config.d.ts.map +1 -0
- package/dist/daemon/types/config.js +6 -0
- package/dist/daemon/types/config.js.map +1 -0
- package/dist/daemon/types/daemon-error-message.d.ts +6 -0
- package/dist/daemon/types/daemon-error-message.d.ts.map +1 -0
- package/dist/daemon/types/daemon-error-message.js +2 -0
- package/dist/daemon/types/daemon-error-message.js.map +1 -0
- package/dist/daemon/types/daemon-error-response.d.ts +7 -0
- package/dist/daemon/types/daemon-error-response.d.ts.map +1 -0
- package/dist/daemon/types/daemon-error-response.js +2 -0
- package/dist/daemon/types/daemon-error-response.js.map +1 -0
- package/dist/daemon/types/daemon.d.ts +25 -0
- package/dist/daemon/types/daemon.d.ts.map +1 -0
- package/dist/daemon/types/daemon.js +6 -0
- package/dist/daemon/types/daemon.js.map +1 -0
- package/dist/daemon/types/doc-lifecycle.d.ts +55 -0
- package/dist/daemon/types/doc-lifecycle.d.ts.map +1 -0
- package/dist/daemon/types/doc-lifecycle.js +7 -0
- package/dist/daemon/types/doc-lifecycle.js.map +1 -0
- package/dist/daemon/types/doc.d.ts +93 -0
- package/dist/daemon/types/doc.d.ts.map +1 -0
- package/dist/daemon/types/doc.js +6 -0
- package/dist/daemon/types/doc.js.map +1 -0
- package/dist/daemon/types/entity-action.d.ts +23 -0
- package/dist/daemon/types/entity-action.d.ts.map +1 -0
- package/dist/daemon/types/entity-action.js +6 -0
- package/dist/daemon/types/entity-action.js.map +1 -0
- package/dist/daemon/types/feature.d.ts +61 -0
- package/dist/daemon/types/feature.d.ts.map +1 -0
- package/dist/daemon/types/feature.js +6 -0
- package/dist/daemon/types/feature.js.map +1 -0
- package/dist/daemon/types/init.d.ts +66 -0
- package/dist/daemon/types/init.d.ts.map +1 -0
- package/dist/daemon/types/init.js +6 -0
- package/dist/daemon/types/init.js.map +1 -0
- package/dist/daemon/types/issue-lifecycle.d.ts +62 -0
- package/dist/daemon/types/issue-lifecycle.d.ts.map +1 -0
- package/dist/daemon/types/issue-lifecycle.js +7 -0
- package/dist/daemon/types/issue-lifecycle.js.map +1 -0
- package/dist/daemon/types/issue-search.d.ts +39 -0
- package/dist/daemon/types/issue-search.d.ts.map +1 -0
- package/dist/daemon/types/issue-search.js +6 -0
- package/dist/daemon/types/issue-search.js.map +1 -0
- package/dist/daemon/types/issue.d.ts +97 -0
- package/dist/daemon/types/issue.d.ts.map +1 -0
- package/dist/daemon/types/issue.js +6 -0
- package/dist/daemon/types/issue.js.map +1 -0
- package/dist/daemon/types/link.d.ts +58 -0
- package/dist/daemon/types/link.d.ts.map +1 -0
- package/dist/daemon/types/link.js +6 -0
- package/dist/daemon/types/link.js.map +1 -0
- package/dist/daemon/types/organization.d.ts +62 -0
- package/dist/daemon/types/organization.d.ts.map +1 -0
- package/dist/daemon/types/organization.js +6 -0
- package/dist/daemon/types/organization.js.map +1 -0
- package/dist/daemon/types/project.d.ts +101 -0
- package/dist/daemon/types/project.d.ts.map +1 -0
- package/dist/daemon/types/project.js +6 -0
- package/dist/daemon/types/project.js.map +1 -0
- package/dist/daemon/types/sync.d.ts +72 -0
- package/dist/daemon/types/sync.d.ts.map +1 -0
- package/dist/daemon/types/sync.js +6 -0
- package/dist/daemon/types/sync.js.map +1 -0
- package/dist/daemon/types/user-lifecycle.d.ts +45 -0
- package/dist/daemon/types/user-lifecycle.d.ts.map +1 -0
- package/dist/daemon/types/user-lifecycle.js +7 -0
- package/dist/daemon/types/user-lifecycle.js.map +1 -0
- package/dist/daemon/types/user.d.ts +67 -0
- package/dist/daemon/types/user.d.ts.map +1 -0
- package/dist/daemon/types/user.js +6 -0
- package/dist/daemon/types/user.js.map +1 -0
- package/dist/daemon/types/workspace-ops.d.ts +66 -0
- package/dist/daemon/types/workspace-ops.d.ts.map +1 -0
- package/dist/daemon/types/workspace-ops.js +7 -0
- package/dist/daemon/types/workspace-ops.js.map +1 -0
- package/dist/daemon/types/workspace.d.ts +70 -0
- package/dist/daemon/types/workspace.d.ts.map +1 -0
- package/dist/daemon/types/workspace.js +6 -0
- package/dist/daemon/types/workspace.js.map +1 -0
- package/dist/daemon/types.d.ts +23 -1226
- package/dist/daemon/types.d.ts.map +1 -1
- package/dist/daemon/types.js +23 -2
- package/dist/daemon/types.js.map +1 -1
- package/dist/lib/autostart/launchd.d.ts.map +1 -1
- package/dist/lib/autostart/launchd.js +10 -3
- package/dist/lib/autostart/launchd.js.map +1 -1
- package/dist/lib/close/close-entity-error.d.ts +4 -0
- package/dist/lib/close/close-entity-error.d.ts.map +1 -0
- package/dist/lib/close/close-entity-error.js +7 -0
- package/dist/lib/close/close-entity-error.js.map +1 -0
- package/dist/lib/close/close-issue.d.ts +2 -0
- package/dist/lib/close/close-issue.d.ts.map +1 -0
- package/dist/lib/close/close-issue.js +23 -0
- package/dist/lib/close/close-issue.js.map +1 -0
- package/dist/lib/close/find-entity.d.ts +8 -0
- package/dist/lib/close/find-entity.d.ts.map +1 -0
- package/dist/lib/close/find-entity.js +21 -0
- package/dist/lib/close/find-entity.js.map +1 -0
- package/dist/lib/compact/apply-llm-response.d.ts +8 -0
- package/dist/lib/compact/apply-llm-response.d.ts.map +1 -0
- package/dist/lib/compact/apply-llm-response.js +28 -0
- package/dist/lib/compact/apply-llm-response.js.map +1 -0
- package/dist/lib/compact/compact-parse-error.d.ts +4 -0
- package/dist/lib/compact/compact-parse-error.d.ts.map +1 -0
- package/dist/lib/compact/compact-parse-error.js +7 -0
- package/dist/lib/compact/compact-parse-error.js.map +1 -0
- package/dist/lib/compact/compact-save-error.d.ts +4 -0
- package/dist/lib/compact/compact-save-error.d.ts.map +1 -0
- package/dist/lib/compact/compact-save-error.js +7 -0
- package/dist/lib/compact/compact-save-error.js.map +1 -0
- package/dist/lib/compact/format-dry-run.d.ts +8 -0
- package/dist/lib/compact/format-dry-run.d.ts.map +1 -0
- package/dist/lib/compact/format-dry-run.js +15 -0
- package/dist/lib/compact/format-dry-run.js.map +1 -0
- package/dist/lib/compact/generate-llm-context.d.ts +7 -0
- package/dist/lib/compact/generate-llm-context.d.ts.map +1 -0
- package/dist/lib/compact/generate-llm-context.js +30 -0
- package/dist/lib/compact/generate-llm-context.js.map +1 -0
- package/dist/lib/compact/mark-issues.d.ts +6 -0
- package/dist/lib/compact/mark-issues.d.ts.map +1 -0
- package/dist/lib/compact/mark-issues.js +24 -0
- package/dist/lib/compact/mark-issues.js.map +1 -0
- package/dist/lib/compact/parse-llm-response.d.ts +6 -0
- package/dist/lib/compact/parse-llm-response.d.ts.map +1 -0
- package/dist/lib/compact/parse-llm-response.js +22 -0
- package/dist/lib/compact/parse-llm-response.js.map +1 -0
- package/dist/lib/compact/save-results.d.ts +5 -0
- package/dist/lib/compact/save-results.d.ts.map +1 -0
- package/dist/lib/compact/save-results.js +24 -0
- package/dist/lib/compact/save-results.js.map +1 -0
- package/dist/lib/create-issue/converters.d.ts +15 -0
- package/dist/lib/create-issue/converters.d.ts.map +1 -0
- package/dist/lib/create-issue/converters.js +53 -0
- package/dist/lib/create-issue/converters.js.map +1 -0
- package/dist/lib/create-issue/create-issue.d.ts.map +1 -1
- package/dist/lib/create-issue/create-issue.js +1 -52
- package/dist/lib/create-issue/create-issue.js.map +1 -1
- package/dist/lib/get-doc/cross-project-hint.d.ts +6 -0
- package/dist/lib/get-doc/cross-project-hint.d.ts.map +1 -0
- package/dist/lib/get-doc/cross-project-hint.js +27 -0
- package/dist/lib/get-doc/cross-project-hint.js.map +1 -0
- package/dist/lib/get-doc/format-doc-output.d.ts +3 -0
- package/dist/lib/get-doc/format-doc-output.d.ts.map +1 -0
- package/dist/lib/get-doc/format-doc-output.js +8 -0
- package/dist/lib/get-doc/format-doc-output.js.map +1 -0
- package/dist/lib/get-doc/handle-global-search.d.ts +3 -0
- package/dist/lib/get-doc/handle-global-search.d.ts.map +1 -0
- package/dist/lib/get-doc/handle-global-search.js +32 -0
- package/dist/lib/get-doc/handle-global-search.js.map +1 -0
- package/dist/lib/get-doc/handle-not-initialized.d.ts +6 -0
- package/dist/lib/get-doc/handle-not-initialized.d.ts.map +1 -0
- package/dist/lib/get-doc/handle-not-initialized.js +21 -0
- package/dist/lib/get-doc/handle-not-initialized.js.map +1 -0
- package/dist/lib/get-issue/cross-project-hint.d.ts +6 -0
- package/dist/lib/get-issue/cross-project-hint.d.ts.map +1 -0
- package/dist/lib/get-issue/cross-project-hint.js +27 -0
- package/dist/lib/get-issue/cross-project-hint.js.map +1 -0
- package/dist/lib/get-issue/fetch-and-display.d.ts +12 -0
- package/dist/lib/get-issue/fetch-and-display.d.ts.map +1 -0
- package/dist/lib/get-issue/fetch-and-display.js +39 -0
- package/dist/lib/get-issue/fetch-and-display.js.map +1 -0
- package/dist/lib/get-issue/format-issue-output.d.ts +3 -0
- package/dist/lib/get-issue/format-issue-output.d.ts.map +1 -0
- package/dist/lib/get-issue/format-issue-output.js +14 -0
- package/dist/lib/get-issue/format-issue-output.js.map +1 -0
- package/dist/lib/get-issue/handle-global-search.d.ts +3 -0
- package/dist/lib/get-issue/handle-global-search.d.ts.map +1 -0
- package/dist/lib/get-issue/handle-global-search.js +36 -0
- package/dist/lib/get-issue/handle-global-search.js.map +1 -0
- package/dist/lib/get-issue/handle-not-initialized.d.ts +6 -0
- package/dist/lib/get-issue/handle-not-initialized.d.ts.map +1 -0
- package/dist/lib/get-issue/handle-not-initialized.js +22 -0
- package/dist/lib/get-issue/handle-not-initialized.js.map +1 -0
- package/dist/lib/init/config-builder.d.ts +9 -0
- package/dist/lib/init/config-builder.d.ts.map +1 -0
- package/dist/lib/init/config-builder.js +29 -0
- package/dist/lib/init/config-builder.js.map +1 -0
- package/dist/lib/init/gather-decisions.d.ts +14 -0
- package/dist/lib/init/gather-decisions.d.ts.map +1 -0
- package/dist/lib/init/gather-decisions.js +38 -0
- package/dist/lib/init/gather-decisions.js.map +1 -0
- package/dist/lib/init/init.d.ts +1 -7
- package/dist/lib/init/init.d.ts.map +1 -1
- package/dist/lib/init/init.js +3 -99
- package/dist/lib/init/init.js.map +1 -1
- package/dist/lib/init/type-converters.d.ts +13 -0
- package/dist/lib/init/type-converters.d.ts.map +1 -0
- package/dist/lib/init/type-converters.js +15 -0
- package/dist/lib/init/type-converters.js.map +1 -0
- package/dist/lib/show/format-results.d.ts +3 -0
- package/dist/lib/show/format-results.d.ts.map +1 -0
- package/dist/lib/show/format-results.js +19 -0
- package/dist/lib/show/format-results.js.map +1 -0
- package/dist/lib/show/search-entities.d.ts +6 -0
- package/dist/lib/show/search-entities.d.ts.map +1 -0
- package/dist/lib/show/search-entities.js +7 -0
- package/dist/lib/show/search-entities.js.map +1 -0
- package/dist/lib/start/handle-missing-daemon.d.ts +2 -0
- package/dist/lib/start/handle-missing-daemon.d.ts.map +1 -0
- package/dist/lib/start/handle-missing-daemon.js +46 -0
- package/dist/lib/start/handle-missing-daemon.js.map +1 -0
- package/dist/lib/start/start-background.d.ts +2 -0
- package/dist/lib/start/start-background.d.ts.map +1 -0
- package/dist/lib/start/start-background.js +18 -0
- package/dist/lib/start/start-background.js.map +1 -0
- package/dist/lib/start/start-foreground.d.ts +2 -0
- package/dist/lib/start/start-foreground.d.ts.map +1 -0
- package/dist/lib/start/start-foreground.js +25 -0
- package/dist/lib/start/start-foreground.js.map +1 -0
- package/dist/types/init-options.d.ts +0 -6
- package/dist/types/init-options.d.ts.map +1 -1
- package/dist/utils/format-cross-project-hint.d.ts +1 -1
- package/dist/utils/format-cross-project-hint.d.ts.map +1 -1
- package/dist/utils/format-cross-project-hint.js.map +1 -1
- package/dist/utils/handle-not-initialized-with-search.d.ts +1 -1
- package/dist/utils/handle-not-initialized-with-search.d.ts.map +1 -1
- package/dist/utils/process-timeout-config.d.ts +17 -0
- package/dist/utils/process-timeout-config.d.ts.map +1 -0
- package/dist/utils/process-timeout-config.js +18 -0
- package/dist/utils/process-timeout-config.js.map +1 -0
- package/dist/utils/process-timeout-error.d.ts +4 -0
- package/dist/utils/process-timeout-error.d.ts.map +1 -0
- package/dist/utils/process-timeout-error.js +7 -0
- package/dist/utils/process-timeout-error.js.map +1 -0
- package/oclif.manifest.json +284 -716
- package/package.json +1 -1
- package/proto/centy.proto +42 -233
- package/dist/commands/create/pr.d.ts +0 -21
- package/dist/commands/create/pr.d.ts.map +0 -1
- package/dist/commands/create/pr.js +0 -85
- package/dist/commands/create/pr.js.map +0 -1
- package/dist/commands/delete/pr.d.ts +0 -17
- package/dist/commands/delete/pr.d.ts.map +0 -1
- package/dist/commands/delete/pr.js +0 -74
- package/dist/commands/delete/pr.js.map +0 -1
- package/dist/commands/get/pr.d.ts +0 -19
- package/dist/commands/get/pr.d.ts.map +0 -1
- package/dist/commands/get/pr.js +0 -193
- package/dist/commands/get/pr.js.map +0 -1
- package/dist/commands/list/prs.d.ts +0 -19
- package/dist/commands/list/prs.d.ts.map +0 -1
- package/dist/commands/list/prs.js +0 -90
- package/dist/commands/list/prs.js.map +0 -1
- package/dist/commands/update/pr.d.ts +0 -21
- package/dist/commands/update/pr.d.ts.map +0 -1
- package/dist/commands/update/pr.js +0 -108
- package/dist/commands/update/pr.js.map +0 -1
- package/dist/daemon/daemon-create-pr.d.ts +0 -6
- package/dist/daemon/daemon-create-pr.d.ts.map +0 -1
- package/dist/daemon/daemon-create-pr.js +0 -9
- package/dist/daemon/daemon-create-pr.js.map +0 -1
- package/dist/daemon/daemon-delete-pr.d.ts +0 -6
- package/dist/daemon/daemon-delete-pr.d.ts.map +0 -1
- package/dist/daemon/daemon-delete-pr.js +0 -9
- package/dist/daemon/daemon-delete-pr.js.map +0 -1
- package/dist/daemon/daemon-get-pr-by-display-number.d.ts +0 -6
- package/dist/daemon/daemon-get-pr-by-display-number.d.ts.map +0 -1
- package/dist/daemon/daemon-get-pr-by-display-number.js +0 -14
- package/dist/daemon/daemon-get-pr-by-display-number.js.map +0 -1
- package/dist/daemon/daemon-get-pr.d.ts +0 -6
- package/dist/daemon/daemon-get-pr.d.ts.map +0 -1
- package/dist/daemon/daemon-get-pr.js +0 -14
- package/dist/daemon/daemon-get-pr.js.map +0 -1
- package/dist/daemon/daemon-get-prs-by-uuid.d.ts +0 -6
- package/dist/daemon/daemon-get-prs-by-uuid.d.ts.map +0 -1
- package/dist/daemon/daemon-get-prs-by-uuid.js +0 -9
- package/dist/daemon/daemon-get-prs-by-uuid.js.map +0 -1
- package/dist/daemon/daemon-list-prs.d.ts +0 -6
- package/dist/daemon/daemon-list-prs.d.ts.map +0 -1
- package/dist/daemon/daemon-list-prs.js +0 -9
- package/dist/daemon/daemon-list-prs.js.map +0 -1
- package/dist/daemon/daemon-update-pr.d.ts +0 -6
- package/dist/daemon/daemon-update-pr.d.ts.map +0 -1
- package/dist/daemon/daemon-update-pr.js +0 -9
- package/dist/daemon/daemon-update-pr.js.map +0 -1
- package/dist/lib/create-pr/create-pr.d.ts +0 -8
- package/dist/lib/create-pr/create-pr.d.ts.map +0 -1
- package/dist/lib/create-pr/create-pr.js +0 -116
- package/dist/lib/create-pr/create-pr.js.map +0 -1
- package/dist/lib/create-pr/gather-basic-fields.d.ts +0 -8
- package/dist/lib/create-pr/gather-basic-fields.d.ts.map +0 -1
- package/dist/lib/create-pr/gather-basic-fields.js +0 -34
- package/dist/lib/create-pr/gather-basic-fields.js.map +0 -1
- package/dist/lib/create-pr/gather-metadata-fields.d.ts +0 -11
- package/dist/lib/create-pr/gather-metadata-fields.d.ts.map +0 -1
- package/dist/lib/create-pr/gather-metadata-fields.js +0 -36
- package/dist/lib/create-pr/gather-metadata-fields.js.map +0 -1
- package/dist/lib/create-pr/gather-pr-input.d.ts +0 -8
- package/dist/lib/create-pr/gather-pr-input.d.ts.map +0 -1
- package/dist/lib/create-pr/gather-pr-input.js +0 -38
- package/dist/lib/create-pr/gather-pr-input.js.map +0 -1
- package/dist/lib/create-pr/index.d.ts +0 -2
- package/dist/lib/create-pr/index.d.ts.map +0 -1
- package/dist/lib/create-pr/index.js +0 -2
- package/dist/lib/create-pr/index.js.map +0 -1
- package/dist/lib/create-pr/prompt-for-description.d.ts +0 -6
- package/dist/lib/create-pr/prompt-for-description.d.ts.map +0 -1
- package/dist/lib/create-pr/prompt-for-description.js +0 -12
- package/dist/lib/create-pr/prompt-for-description.js.map +0 -1
- package/dist/lib/create-pr/prompt-for-linked-issues.d.ts +0 -7
- package/dist/lib/create-pr/prompt-for-linked-issues.d.ts.map +0 -1
- package/dist/lib/create-pr/prompt-for-linked-issues.js +0 -22
- package/dist/lib/create-pr/prompt-for-linked-issues.js.map +0 -1
- package/dist/lib/create-pr/prompt-for-priority.d.ts +0 -9
- package/dist/lib/create-pr/prompt-for-priority.d.ts.map +0 -1
- package/dist/lib/create-pr/prompt-for-priority.js +0 -27
- package/dist/lib/create-pr/prompt-for-priority.js.map +0 -1
- package/dist/lib/create-pr/prompt-for-reviewers.d.ts +0 -7
- package/dist/lib/create-pr/prompt-for-reviewers.d.ts.map +0 -1
- package/dist/lib/create-pr/prompt-for-reviewers.js +0 -22
- package/dist/lib/create-pr/prompt-for-reviewers.js.map +0 -1
- package/dist/lib/create-pr/prompt-for-source-branch.d.ts +0 -7
- package/dist/lib/create-pr/prompt-for-source-branch.d.ts.map +0 -1
- package/dist/lib/create-pr/prompt-for-source-branch.js +0 -20
- package/dist/lib/create-pr/prompt-for-source-branch.js.map +0 -1
- package/dist/lib/create-pr/prompt-for-status.d.ts +0 -9
- package/dist/lib/create-pr/prompt-for-status.d.ts.map +0 -1
- package/dist/lib/create-pr/prompt-for-status.js +0 -27
- package/dist/lib/create-pr/prompt-for-status.js.map +0 -1
- package/dist/lib/create-pr/prompt-for-target-branch.d.ts +0 -7
- package/dist/lib/create-pr/prompt-for-target-branch.d.ts.map +0 -1
- package/dist/lib/create-pr/prompt-for-target-branch.js +0 -15
- package/dist/lib/create-pr/prompt-for-target-branch.js.map +0 -1
- package/dist/lib/create-pr/prompt-for-title.d.ts +0 -6
- package/dist/lib/create-pr/prompt-for-title.d.ts.map +0 -1
- package/dist/lib/create-pr/prompt-for-title.js +0 -12
- package/dist/lib/create-pr/prompt-for-title.js.map +0 -1
- package/dist/lib/create-pr/types.d.ts +0 -14
- package/dist/lib/create-pr/types.d.ts.map +0 -1
- package/dist/lib/create-pr/types.js +0 -2
- package/dist/lib/create-pr/types.js.map +0 -1
- package/dist/types/create-pr-options.d.ts +0 -30
- package/dist/types/create-pr-options.d.ts.map +0 -1
- package/dist/types/create-pr-options.js +0 -2
- package/dist/types/create-pr-options.js.map +0 -1
- package/dist/types/create-pr-result.d.ts +0 -16
- package/dist/types/create-pr-result.d.ts.map +0 -1
- package/dist/types/create-pr-result.js +0 -2
- package/dist/types/create-pr-result.js.map +0 -1
package/bin/run.js
CHANGED
|
@@ -6,8 +6,8 @@ import { execute } from '@oclif/core'
|
|
|
6
6
|
if (typeof Bun === 'undefined') {
|
|
7
7
|
const { execSync, spawnSync } = await import('child_process')
|
|
8
8
|
try {
|
|
9
|
-
// Check if bun is installed
|
|
10
|
-
execSync('bun --version', { stdio: 'ignore' })
|
|
9
|
+
// Check if bun is installed (5s timeout to avoid hanging)
|
|
10
|
+
execSync('bun --version', { stdio: 'ignore', timeout: 5000 })
|
|
11
11
|
// Re-exec with bun and exit with its exit code
|
|
12
12
|
const result = spawnSync(
|
|
13
13
|
'bun',
|
|
@@ -20,7 +20,7 @@ if (typeof Bun === 'undefined') {
|
|
|
20
20
|
result.status !== null && result.status !== undefined ? result.status : 0
|
|
21
21
|
)
|
|
22
22
|
} catch {
|
|
23
|
-
// Bun not installed, continue with Node
|
|
23
|
+
// Bun not installed or version check timed out, continue with Node
|
|
24
24
|
// eslint-disable-next-line default/no-hardcoded-urls
|
|
25
25
|
console.error('Tip: Install Bun for faster CLI performance: https://bun.sh')
|
|
26
26
|
}
|
package/dist/commands/close.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Command } from '@oclif/core';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Close an issue by display number
|
|
4
4
|
*/
|
|
5
5
|
export default class Close extends Command {
|
|
6
6
|
static args: {
|
|
@@ -9,12 +9,9 @@ export default class Close extends Command {
|
|
|
9
9
|
static description: string;
|
|
10
10
|
static examples: string[];
|
|
11
11
|
static flags: {
|
|
12
|
-
type: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
12
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
13
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
14
|
};
|
|
16
15
|
run(): Promise<void>;
|
|
17
|
-
private closeIssue;
|
|
18
|
-
private closePr;
|
|
19
16
|
}
|
|
20
17
|
//# sourceMappingURL=close.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../src/commands/close.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../src/commands/close.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAWlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IAExC,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAAqC;IAGhE,OAAgB,QAAQ,WAIvB;IAGD,OAAgB,KAAK;;;MAMpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8BlC"}
|
package/dist/commands/close.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
/* eslint-disable max-lines */
|
|
2
1
|
// eslint-disable-next-line import/order
|
|
3
2
|
import { Args, Command, Flags } from '@oclif/core';
|
|
4
|
-
import { daemonGetIssueByDisplayNumber } from '../daemon/daemon-get-issue-by-display-number.js';
|
|
5
|
-
import { daemonGetPrByDisplayNumber } from '../daemon/daemon-get-pr-by-display-number.js';
|
|
6
3
|
import { daemonUpdateIssue } from '../daemon/daemon-update-issue.js';
|
|
7
|
-
import { daemonUpdatePr } from '../daemon/daemon-update-pr.js';
|
|
8
4
|
import { projectFlag } from '../flags/project-flag.js';
|
|
5
|
+
import { CloseEntityError } from '../lib/close/close-entity-error.js';
|
|
9
6
|
import { ensureInitialized, NotInitializedError, } from '../utils/ensure-initialized.js';
|
|
10
7
|
import { resolveProjectPath } from '../utils/resolve-project-path.js';
|
|
11
8
|
/**
|
|
12
|
-
*
|
|
9
|
+
* Close an issue by display number
|
|
13
10
|
*/
|
|
14
11
|
// eslint-disable-next-line custom/no-default-class-export, class-export/class-export
|
|
15
12
|
export default class Close extends Command {
|
|
@@ -21,22 +18,15 @@ export default class Close extends Command {
|
|
|
21
18
|
}),
|
|
22
19
|
};
|
|
23
20
|
// eslint-disable-next-line no-restricted-syntax
|
|
24
|
-
static description = 'Close an issue
|
|
21
|
+
static description = 'Close an issue by display number';
|
|
25
22
|
// eslint-disable-next-line no-restricted-syntax
|
|
26
23
|
static examples = [
|
|
27
24
|
'<%= config.bin %> close 1',
|
|
28
25
|
'<%= config.bin %> close #1',
|
|
29
|
-
'<%= config.bin %> close 1 --type issue',
|
|
30
|
-
'<%= config.bin %> close 1 --type pr',
|
|
31
26
|
'<%= config.bin %> close 1 --project centy-daemon',
|
|
32
27
|
];
|
|
33
28
|
// eslint-disable-next-line no-restricted-syntax
|
|
34
29
|
static flags = {
|
|
35
|
-
type: Flags.string({
|
|
36
|
-
char: 't',
|
|
37
|
-
description: 'Entity type (issue, pr)',
|
|
38
|
-
options: ['issue', 'pr'],
|
|
39
|
-
}),
|
|
40
30
|
project: projectFlag,
|
|
41
31
|
json: Flags.boolean({
|
|
42
32
|
description: 'Output as JSON',
|
|
@@ -45,13 +35,11 @@ export default class Close extends Command {
|
|
|
45
35
|
};
|
|
46
36
|
async run() {
|
|
47
37
|
const { args, flags } = await this.parse(Close);
|
|
48
|
-
// Parse display number (supports #1 or 1 format)
|
|
49
38
|
const displayNumberMatch = args.identifier.match(/^#?(\d+)$/);
|
|
50
39
|
if (!displayNumberMatch) {
|
|
51
40
|
this.error('Invalid identifier. Please provide a display number (e.g., 1 or #1)');
|
|
52
41
|
}
|
|
53
42
|
const displayNumber = Number.parseInt(displayNumberMatch[1], 10);
|
|
54
|
-
// Resolve project path for local entities
|
|
55
43
|
const cwd = await resolveProjectPath(flags.project);
|
|
56
44
|
try {
|
|
57
45
|
await ensureInitialized(cwd);
|
|
@@ -62,102 +50,27 @@ export default class Close extends Command {
|
|
|
62
50
|
}
|
|
63
51
|
throw error instanceof Error ? error : new Error(String(error));
|
|
64
52
|
}
|
|
65
|
-
|
|
66
|
-
if (flags.type !== undefined) {
|
|
67
|
-
if (flags.type === 'issue') {
|
|
68
|
-
await this.closeIssue(cwd, displayNumber, flags.json);
|
|
69
|
-
}
|
|
70
|
-
else if (flags.type === 'pr') {
|
|
71
|
-
await this.closePr(cwd, displayNumber, flags.json);
|
|
72
|
-
}
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
// Search for entities with this display number
|
|
76
|
-
const foundEntities = [];
|
|
77
|
-
// Try to find issue
|
|
78
|
-
try {
|
|
79
|
-
const issue = await daemonGetIssueByDisplayNumber({
|
|
80
|
-
projectPath: cwd,
|
|
81
|
-
displayNumber,
|
|
82
|
-
});
|
|
83
|
-
foundEntities.push({
|
|
84
|
-
type: 'issue',
|
|
85
|
-
id: issue.id,
|
|
86
|
-
displayNumber: issue.displayNumber,
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
// Issue not found, continue
|
|
91
|
-
}
|
|
92
|
-
// Try to find PR
|
|
93
|
-
try {
|
|
94
|
-
const pr = await daemonGetPrByDisplayNumber({
|
|
95
|
-
projectPath: cwd,
|
|
96
|
-
displayNumber,
|
|
97
|
-
});
|
|
98
|
-
foundEntities.push({
|
|
99
|
-
type: 'pr',
|
|
100
|
-
id: pr.id,
|
|
101
|
-
displayNumber: pr.displayNumber,
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
// PR not found, continue
|
|
106
|
-
}
|
|
107
|
-
// Handle results
|
|
108
|
-
if (foundEntities.length === 0) {
|
|
109
|
-
this.error(`No issue or PR found with display number #${displayNumber}`);
|
|
110
|
-
}
|
|
111
|
-
if (foundEntities.length > 1) {
|
|
112
|
-
const types = foundEntities.map(e => e.type).join(', ');
|
|
113
|
-
this.error(`Ambiguous: found multiple entities with #${displayNumber} (${types}). Use --type to specify which to close.`);
|
|
114
|
-
}
|
|
115
|
-
// Close the single found entity
|
|
116
|
-
const entity = foundEntities[0];
|
|
117
|
-
if (entity.type === 'issue') {
|
|
118
|
-
await this.closeIssue(cwd, displayNumber, flags.json);
|
|
119
|
-
}
|
|
120
|
-
else if (entity.type === 'pr') {
|
|
121
|
-
await this.closePr(cwd, displayNumber, flags.json);
|
|
122
|
-
}
|
|
53
|
+
await closeIssue(cwd, args.identifier, displayNumber, flags.json, this.log.bind(this));
|
|
123
54
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
});
|
|
134
|
-
if (!response.success) {
|
|
135
|
-
this.error(response.error);
|
|
136
|
-
}
|
|
137
|
-
if (jsonOutput) {
|
|
138
|
-
this.log(JSON.stringify({ type: 'issue', ...response.issue }, null, 2));
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
this.log(`Closed issue #${response.issue.displayNumber}`);
|
|
55
|
+
}
|
|
56
|
+
async function closeIssue(cwd, issueId, displayNumber, json, log) {
|
|
57
|
+
const response = await daemonUpdateIssue({
|
|
58
|
+
projectPath: cwd,
|
|
59
|
+
issueId,
|
|
60
|
+
status: 'closed',
|
|
61
|
+
});
|
|
62
|
+
if (!response.success) {
|
|
63
|
+
throw new CloseEntityError(response.error);
|
|
142
64
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
displayNumber,
|
|
147
|
-
});
|
|
148
|
-
const response = await daemonUpdatePr({
|
|
149
|
-
projectPath,
|
|
150
|
-
prId: pr.id,
|
|
65
|
+
if (json) {
|
|
66
|
+
log(JSON.stringify({
|
|
67
|
+
type: 'issue',
|
|
68
|
+
displayNumber: response.issue.displayNumber,
|
|
151
69
|
status: 'closed',
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}
|
|
156
|
-
if (jsonOutput) {
|
|
157
|
-
this.log(JSON.stringify({ type: 'pr', ...response.pr }, null, 2));
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
this.log(`Closed PR #${response.pr.displayNumber}`);
|
|
70
|
+
}, null, 2));
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
log(`Closed issue #${response.issue.displayNumber}`);
|
|
161
74
|
}
|
|
162
75
|
}
|
|
163
76
|
//# sourceMappingURL=close.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close.js","sourceRoot":"","sources":["../../src/commands/close.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"close.js","sourceRoot":"","sources":["../../src/commands/close.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,10 +12,6 @@ export default class Compact extends Command {
|
|
|
12
12
|
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
13
|
};
|
|
14
14
|
run(): Promise<void>;
|
|
15
|
-
private
|
|
16
|
-
private applyLlmResponse;
|
|
17
|
-
private saveMigrationContent;
|
|
18
|
-
private saveCompactContent;
|
|
19
|
-
private markIssuesFromMigration;
|
|
15
|
+
private applyInput;
|
|
20
16
|
}
|
|
21
17
|
//# sourceMappingURL=compact.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/commands/compact.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/commands/compact.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AAW5C;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAE1C,OAAgB,WAAW,SAC0B;IAGrD,OAAgB,QAAQ,WAKvB;IAGD,OAAgB,KAAK;;;;;MAkBpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YA8CnB,UAAU;CAqBzB"}
|
package/dist/commands/compact.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
/* eslint-disable max-lines */
|
|
2
1
|
// eslint-disable-next-line import/order
|
|
3
|
-
import { writeFile
|
|
2
|
+
import { writeFile } from 'node:fs/promises';
|
|
4
3
|
// eslint-disable-next-line import/order
|
|
5
4
|
import { Command, Flags } from '@oclif/core';
|
|
6
|
-
import { daemonGetCompact } from '../daemon/daemon-get-compact.js';
|
|
7
|
-
import { daemonGetInstruction } from '../daemon/daemon-get-instruction.js';
|
|
8
|
-
import { ensureInitialized, NotInitializedError, } from '../utils/ensure-initialized.js';
|
|
9
5
|
import { daemonListUncompactedIssues } from '../daemon/daemon-list-uncompacted-issues.js';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
6
|
+
import { applyLlmResponseFromFile } from '../lib/compact/apply-llm-response.js';
|
|
7
|
+
import { formatDryRun } from '../lib/compact/format-dry-run.js';
|
|
8
|
+
import { generateLlmContext } from '../lib/compact/generate-llm-context.js';
|
|
9
|
+
import { ensureInitialized, NotInitializedError, } from '../utils/ensure-initialized.js';
|
|
13
10
|
/**
|
|
14
11
|
* Compact uncompacted issues into features
|
|
15
12
|
*/
|
|
@@ -48,7 +45,6 @@ export default class Compact extends Command {
|
|
|
48
45
|
const { flags } = await this.parse(Compact);
|
|
49
46
|
// eslint-disable-next-line no-restricted-syntax
|
|
50
47
|
const cwd = process.env['CENTY_CWD'] ?? process.cwd();
|
|
51
|
-
// Check if initialized
|
|
52
48
|
try {
|
|
53
49
|
await ensureInitialized(cwd);
|
|
54
50
|
}
|
|
@@ -58,35 +54,22 @@ export default class Compact extends Command {
|
|
|
58
54
|
}
|
|
59
55
|
throw error instanceof Error ? error : new Error(String(error));
|
|
60
56
|
}
|
|
61
|
-
// If input file provided, apply LLM response
|
|
62
57
|
if (flags.input !== undefined) {
|
|
63
|
-
await this.
|
|
58
|
+
await this.applyInput(cwd, flags.input);
|
|
64
59
|
return;
|
|
65
60
|
}
|
|
66
|
-
// Get uncompacted issues
|
|
67
61
|
const response = await daemonListUncompactedIssues({ projectPath: cwd });
|
|
68
62
|
if (response.issues.length === 0) {
|
|
69
63
|
this.log('No new issues to compact.');
|
|
70
64
|
return;
|
|
71
65
|
}
|
|
72
|
-
// Dry run - just show issues
|
|
73
66
|
if (flags['dry-run']) {
|
|
74
|
-
|
|
75
|
-
this.log(
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
this.log(`Found ${response.totalCount} uncompacted issue(s):\n`);
|
|
79
|
-
for (const issue of response.issues) {
|
|
80
|
-
const meta = issue.metadata;
|
|
81
|
-
const status = meta !== undefined ? meta.status : 'unknown';
|
|
82
|
-
this.log(`#${issue.displayNumber} [${status}] ${issue.title}`);
|
|
83
|
-
}
|
|
67
|
+
for (const line of formatDryRun(response, flags.json)) {
|
|
68
|
+
this.log(line);
|
|
84
69
|
}
|
|
85
70
|
return;
|
|
86
71
|
}
|
|
87
|
-
|
|
88
|
-
const context = await this.generateLlmContext(cwd, response.issues);
|
|
89
|
-
// If output file provided, write context
|
|
72
|
+
const context = await generateLlmContext(cwd, response.issues);
|
|
90
73
|
if (flags.output !== undefined) {
|
|
91
74
|
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
92
75
|
await writeFile(flags.output, context, 'utf-8');
|
|
@@ -94,116 +77,28 @@ export default class Compact extends Command {
|
|
|
94
77
|
this.log(`\nNext steps:\n1. Process the file with your LLM\n2. Run: centy compact --input <response-file>`);
|
|
95
78
|
return;
|
|
96
79
|
}
|
|
97
|
-
// Output context to stdout for piping
|
|
98
80
|
this.log(context);
|
|
99
81
|
}
|
|
100
|
-
async
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
const compactResponse = await daemonGetCompact({ projectPath });
|
|
106
|
-
const currentCompact = compactResponse.exists
|
|
107
|
-
? compactResponse.content
|
|
108
|
-
: '(No features documented yet)';
|
|
109
|
-
// Build context
|
|
110
|
-
const parts = [];
|
|
111
|
-
parts.push('# LLM Compaction Context\n');
|
|
112
|
-
parts.push('## Instructions\n');
|
|
113
|
-
parts.push(instruction);
|
|
114
|
-
parts.push('\n---\n');
|
|
115
|
-
parts.push('## Current Features Summary (compact.md)\n');
|
|
116
|
-
parts.push('```markdown');
|
|
117
|
-
parts.push(currentCompact);
|
|
118
|
-
parts.push('```');
|
|
119
|
-
parts.push('\n---\n');
|
|
120
|
-
parts.push('## Uncompacted Issues\n');
|
|
121
|
-
for (const issue of issues) {
|
|
122
|
-
parts.push(`### Issue #${issue.displayNumber}: ${issue.title}`);
|
|
123
|
-
parts.push(`**ID:** ${issue.id}`);
|
|
124
|
-
parts.push('');
|
|
125
|
-
parts.push(issue.description || '(No description)');
|
|
126
|
-
parts.push('');
|
|
127
|
-
}
|
|
128
|
-
return parts.join('\n');
|
|
129
|
-
}
|
|
130
|
-
async applyLlmResponse(projectPath, inputFile) {
|
|
131
|
-
// Read LLM response
|
|
132
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
133
|
-
const content = await readFile(inputFile, 'utf-8');
|
|
134
|
-
// Parse response - look for MIGRATION_CONTENT and COMPACT_CONTENT sections
|
|
135
|
-
const migrationMatch = content.match(/### MIGRATION_CONTENT\s*\n```(?:markdown|yaml)?\s*\n([\s\S]*?)```/i);
|
|
136
|
-
const compactMatch = content.match(/### COMPACT_CONTENT\s*\n```(?:markdown)?\s*\n([\s\S]*?)```/i);
|
|
137
|
-
if (migrationMatch === null && compactMatch === null) {
|
|
138
|
-
// Try alternative formats - look for sections without code blocks
|
|
139
|
-
const altMigrationMatch = content.match(/### MIGRATION_CONTENT\s*\n([\s\S]*?)(?=### COMPACT_CONTENT|$)/i);
|
|
140
|
-
const altCompactMatch = content.match(/### COMPACT_CONTENT\s*\n([\s\S]*?)$/i);
|
|
141
|
-
if (altMigrationMatch === null && altCompactMatch === null) {
|
|
142
|
-
this.error('Could not parse LLM response. Expected MIGRATION_CONTENT and COMPACT_CONTENT sections.');
|
|
143
|
-
}
|
|
144
|
-
if (altMigrationMatch !== null) {
|
|
145
|
-
await this.saveMigrationContent(projectPath, altMigrationMatch[1].trim());
|
|
146
|
-
}
|
|
147
|
-
if (altCompactMatch !== null) {
|
|
148
|
-
await this.saveCompactContent(projectPath, altCompactMatch[1].trim());
|
|
82
|
+
async applyInput(cwd, inputFile) {
|
|
83
|
+
try {
|
|
84
|
+
const result = await applyLlmResponseFromFile(cwd, inputFile);
|
|
85
|
+
if (result.migrationFilename !== null) {
|
|
86
|
+
this.log(`Migration saved: ${result.migrationFilename}`);
|
|
149
87
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
if (migrationMatch !== null) {
|
|
153
|
-
await this.saveMigrationContent(projectPath, migrationMatch[1]);
|
|
88
|
+
if (result.compactUpdated) {
|
|
89
|
+
this.log('compact.md updated');
|
|
154
90
|
}
|
|
155
|
-
if (
|
|
156
|
-
|
|
91
|
+
if (result.noIdsFound) {
|
|
92
|
+
this.warn('No issue IDs found in migration content. Issues will not be marked as compacted.');
|
|
157
93
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
await this.markIssuesFromMigration(projectPath, content);
|
|
161
|
-
this.log('Compaction applied successfully!');
|
|
162
|
-
}
|
|
163
|
-
async saveMigrationContent(projectPath, content) {
|
|
164
|
-
const response = await daemonSaveMigration({
|
|
165
|
-
projectPath,
|
|
166
|
-
content,
|
|
167
|
-
});
|
|
168
|
-
if (!response.success) {
|
|
169
|
-
this.error(`Failed to save migration: ${response.error}`);
|
|
170
|
-
}
|
|
171
|
-
this.log(`Migration saved: ${response.filename}`);
|
|
172
|
-
}
|
|
173
|
-
async saveCompactContent(projectPath, content) {
|
|
174
|
-
const response = await daemonUpdateCompact({
|
|
175
|
-
projectPath,
|
|
176
|
-
content,
|
|
177
|
-
});
|
|
178
|
-
if (!response.success) {
|
|
179
|
-
this.error(`Failed to update compact.md: ${response.error}`);
|
|
180
|
-
}
|
|
181
|
-
this.log('compact.md updated');
|
|
182
|
-
}
|
|
183
|
-
async markIssuesFromMigration(projectPath, content) {
|
|
184
|
-
// Extract issue IDs from the migration content
|
|
185
|
-
// Look for patterns like:
|
|
186
|
-
// - id: uuid-123
|
|
187
|
-
// or compactedIssues array
|
|
188
|
-
const idMatches = content.matchAll(/(?:id|issueId):\s*["']?([a-f0-9-]{36})["']?/gi);
|
|
189
|
-
const issueIds = [];
|
|
190
|
-
for (const match of idMatches) {
|
|
191
|
-
if (!issueIds.includes(match[1])) {
|
|
192
|
-
issueIds.push(match[1]);
|
|
94
|
+
else {
|
|
95
|
+
this.log(`Marked ${result.markedCount} issue(s) as compacted`);
|
|
193
96
|
}
|
|
97
|
+
this.log('Compaction applied successfully!');
|
|
194
98
|
}
|
|
195
|
-
|
|
196
|
-
this.
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
const response = await daemonMarkIssuesCompacted({
|
|
200
|
-
projectPath,
|
|
201
|
-
issueIds,
|
|
202
|
-
});
|
|
203
|
-
if (!response.success) {
|
|
204
|
-
this.error(`Failed to mark issues as compacted: ${response.error}`);
|
|
99
|
+
catch (error) {
|
|
100
|
+
this.error(error instanceof Error ? error.message : String(error));
|
|
205
101
|
}
|
|
206
|
-
this.log(`Marked ${response.markedCount} issue(s) as compacted`);
|
|
207
102
|
}
|
|
208
103
|
}
|
|
209
104
|
//# sourceMappingURL=compact.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/commands/compact.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/commands/compact.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,wCAAwC;AACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAA;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAC3E,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,gCAAgC,CAAA;AAEvC;;GAEG;AACH,qFAAqF;AACrF,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,gDAAgD;IAChD,MAAM,CAAU,WAAW,GACzB,mDAAmD,CAAA;IAErD,gDAAgD;IAChD,MAAM,CAAU,QAAQ,GAAG;QACzB,qCAAqC;QACrC,+CAA+C;QAC/C,yDAAyD;QACzD,yDAAyD;KAC1D,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,KAAK,GAAG;QACtB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,2CAA2C;YACxD,OAAO,EAAE,KAAK;SACf,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,yDAAyD;SACvE,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,+CAA+C;SAC7D,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC3C,gDAAgD;QAChD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;QAErD,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC3B,CAAC;YACD,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACjE,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;YACvC,OAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAA;QACxE,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;YACrC,OAAM;QACR,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAChB,CAAC;YACD,OAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,mEAAmE;YACnE,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC/C,IAAI,CAAC,GAAG,CAAC,2BAA2B,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;YACnD,IAAI,CAAC,GAAG,CACN,iGAAiG,CAClG,CAAA;YACD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACnB,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,GAAW,EAAE,SAAiB;QACrD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YAC7D,IAAI,MAAM,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAA;YAC1D,CAAC;YACD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC1B,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;YAChC,CAAC;YACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CACP,kFAAkF,CACnF,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,WAAW,wBAAwB,CAAC,CAAA;YAChE,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACpE,CAAC;IACH,CAAC"}
|
|
@@ -15,5 +15,6 @@ export default class GetDoc extends Command {
|
|
|
15
15
|
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
16
|
};
|
|
17
17
|
run(): Promise<void>;
|
|
18
|
+
private fetchAndDisplayDoc;
|
|
18
19
|
}
|
|
19
20
|
//# sourceMappingURL=doc.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../../../src/commands/get/doc.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doc.d.ts","sourceRoot":"","sources":["../../../src/commands/get/doc.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAYlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IAEzC,OAAgB,OAAO,WAAe;IAGtC,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAAqC;IAGhE,OAAgB,QAAQ,WAMvB;IAGD,OAAgB,KAAK;;;;MAWpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAoCnB,kBAAkB;CAwBjC"}
|
package/dist/commands/get/doc.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
/* eslint-disable max-lines */
|
|
2
1
|
// eslint-disable-next-line import/order
|
|
3
2
|
import { Args, Command, Flags } from '@oclif/core';
|
|
4
3
|
import { daemonGetDoc } from '../../daemon/daemon-get-doc.js';
|
|
5
4
|
import { daemonGetDocsBySlug } from '../../daemon/daemon-get-docs-by-slug.js';
|
|
6
5
|
import { projectFlag } from '../../flags/project-flag.js';
|
|
7
|
-
import {
|
|
6
|
+
import { checkCrossProjectDoc } from '../../lib/get-doc/cross-project-hint.js';
|
|
7
|
+
import { formatDocPlain } from '../../lib/get-doc/format-doc-output.js';
|
|
8
|
+
import { handleGlobalDocSearch } from '../../lib/get-doc/handle-global-search.js';
|
|
9
|
+
import { handleDocNotInitialized } from '../../lib/get-doc/handle-not-initialized.js';
|
|
8
10
|
import { ensureInitialized } from '../../utils/ensure-initialized.js';
|
|
9
11
|
import { resolveProjectPath } from '../../utils/resolve-project-path.js';
|
|
10
12
|
/**
|
|
@@ -44,68 +46,23 @@ export default class GetDoc extends Command {
|
|
|
44
46
|
}),
|
|
45
47
|
project: projectFlag,
|
|
46
48
|
};
|
|
47
|
-
// eslint-disable-next-line max-lines-per-function
|
|
48
49
|
async run() {
|
|
49
50
|
const { args, flags } = await this.parse(GetDoc);
|
|
50
51
|
const cwd = await resolveProjectPath(flags.project);
|
|
51
|
-
// Handle global search
|
|
52
52
|
if (flags.global) {
|
|
53
53
|
const result = await daemonGetDocsBySlug({ slug: args.slug });
|
|
54
54
|
if (flags.json) {
|
|
55
55
|
this.log(JSON.stringify(result, null, 2));
|
|
56
56
|
return;
|
|
57
57
|
}
|
|
58
|
-
|
|
59
|
-
this.log(`No docs found with slug: ${args.slug}`);
|
|
60
|
-
if (result.errors.length > 0) {
|
|
61
|
-
this.warn('Some projects could not be searched:');
|
|
62
|
-
for (const err of result.errors) {
|
|
63
|
-
this.warn(` - ${err}`);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
this.log(`Found ${result.totalCount} doc(s) matching slug: ${args.slug}\n`);
|
|
69
|
-
for (const dwp of result.docs) {
|
|
70
|
-
const doc = dwp.doc;
|
|
71
|
-
this.log(`--- Project: ${dwp.projectName} (${dwp.projectPath}) ---`);
|
|
72
|
-
this.log(`Title: ${doc.title}`);
|
|
73
|
-
this.log(`Slug: ${doc.slug}`);
|
|
74
|
-
this.log(`Created: ${doc.metadata !== undefined ? doc.metadata.createdAt : 'unknown'}`);
|
|
75
|
-
this.log(`Updated: ${doc.metadata !== undefined ? doc.metadata.updatedAt : 'unknown'}`);
|
|
76
|
-
if (doc.content) {
|
|
77
|
-
this.log(`\nContent:\n${doc.content}`);
|
|
78
|
-
}
|
|
79
|
-
this.log('');
|
|
80
|
-
}
|
|
81
|
-
if (result.errors.length > 0) {
|
|
82
|
-
this.warn('Some projects could not be searched:');
|
|
83
|
-
for (const err of result.errors) {
|
|
84
|
-
this.warn(` - ${err}`);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
58
|
+
handleGlobalDocSearch(result, args.slug, this.log.bind(this), this.warn.bind(this));
|
|
87
59
|
return;
|
|
88
60
|
}
|
|
89
|
-
// Local search
|
|
90
61
|
try {
|
|
91
62
|
await ensureInitialized(cwd);
|
|
92
63
|
}
|
|
93
64
|
catch (error) {
|
|
94
|
-
const result = await
|
|
95
|
-
entityType: 'doc',
|
|
96
|
-
identifier: args.slug,
|
|
97
|
-
jsonMode: flags.json,
|
|
98
|
-
async globalSearchFn() {
|
|
99
|
-
const searchResult = await daemonGetDocsBySlug({ slug: args.slug });
|
|
100
|
-
return {
|
|
101
|
-
matches: searchResult.docs.map(dwp => ({
|
|
102
|
-
projectName: dwp.projectName,
|
|
103
|
-
projectPath: dwp.projectPath,
|
|
104
|
-
})),
|
|
105
|
-
errors: searchResult.errors,
|
|
106
|
-
};
|
|
107
|
-
},
|
|
108
|
-
});
|
|
65
|
+
const result = await handleDocNotInitialized(error, args.slug, flags.json);
|
|
109
66
|
if (result !== null) {
|
|
110
67
|
if (result.jsonOutput !== undefined) {
|
|
111
68
|
this.log(JSON.stringify(result.jsonOutput, null, 2));
|
|
@@ -115,39 +72,26 @@ export default class GetDoc extends Command {
|
|
|
115
72
|
}
|
|
116
73
|
throw error instanceof Error ? error : new Error(String(error));
|
|
117
74
|
}
|
|
75
|
+
await this.fetchAndDisplayDoc(cwd, args.slug, flags.json);
|
|
76
|
+
}
|
|
77
|
+
async fetchAndDisplayDoc(cwd, slug, jsonMode) {
|
|
118
78
|
try {
|
|
119
|
-
const doc = await daemonGetDoc({
|
|
120
|
-
|
|
121
|
-
slug: args.slug,
|
|
122
|
-
});
|
|
123
|
-
if (flags.json) {
|
|
79
|
+
const doc = await daemonGetDoc({ projectPath: cwd, slug });
|
|
80
|
+
if (jsonMode) {
|
|
124
81
|
this.log(JSON.stringify(doc, null, 2));
|
|
125
82
|
return;
|
|
126
83
|
}
|
|
127
|
-
this.log(
|
|
128
|
-
this.log(`Slug: ${doc.slug}`);
|
|
129
|
-
this.log(`Created: ${doc.metadata !== undefined ? doc.metadata.createdAt : 'unknown'}`);
|
|
130
|
-
this.log(`Updated: ${doc.metadata !== undefined ? doc.metadata.updatedAt : 'unknown'}`);
|
|
131
|
-
this.log(`\nContent:\n${doc.content}`);
|
|
84
|
+
formatDocPlain(doc, this.log.bind(this));
|
|
132
85
|
}
|
|
133
86
|
catch (error) {
|
|
134
|
-
|
|
135
|
-
if (
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
projectPath: dwp.projectPath,
|
|
142
|
-
}));
|
|
143
|
-
if (flags.json) {
|
|
144
|
-
this.log(JSON.stringify(formatCrossProjectJson('doc', args.slug, matches), null, 2));
|
|
145
|
-
this.exit(1);
|
|
146
|
-
}
|
|
147
|
-
this.error(formatCrossProjectHint('doc', args.slug, matches));
|
|
148
|
-
}
|
|
87
|
+
const cross = await checkCrossProjectDoc(error, slug, jsonMode);
|
|
88
|
+
if (cross.jsonOutput !== null) {
|
|
89
|
+
this.log(JSON.stringify(cross.jsonOutput, null, 2));
|
|
90
|
+
this.exit(1);
|
|
91
|
+
}
|
|
92
|
+
if (cross.hint !== null) {
|
|
93
|
+
this.error(cross.hint);
|
|
149
94
|
}
|
|
150
|
-
// Re-throw original error if not found anywhere or not a NOT_FOUND error
|
|
151
95
|
throw error instanceof Error ? error : new Error(String(error));
|
|
152
96
|
}
|
|
153
97
|
}
|