centy 0.2.4 → 0.2.6
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/README.md +25 -3
- package/dist/commands/add/asset.d.ts.map +1 -1
- package/dist/commands/add/asset.js +1 -2
- package/dist/commands/add/asset.js.map +1 -1
- package/dist/commands/close.d.ts +0 -2
- package/dist/commands/close.d.ts.map +1 -1
- package/dist/commands/close.js +3 -38
- package/dist/commands/close.js.map +1 -1
- package/dist/commands/get/pr.d.ts.map +1 -1
- package/dist/commands/get/pr.js +0 -3
- package/dist/commands/get/pr.js.map +1 -1
- package/dist/commands/update/pr.d.ts.map +1 -1
- package/dist/commands/update/pr.js +0 -4
- package/dist/commands/update/pr.js.map +1 -1
- package/dist/commands/workspace/close.js +2 -2
- package/dist/commands/workspace/close.js.map +1 -1
- package/dist/commands/workspace/open.js +6 -6
- package/dist/commands/workspace/open.js.map +1 -1
- package/dist/daemon/daemon-get-config.d.ts.map +1 -1
- package/dist/daemon/daemon-get-config.js +7 -2
- package/dist/daemon/daemon-get-config.js.map +1 -1
- package/dist/daemon/daemon-get-doc.d.ts.map +1 -1
- package/dist/daemon/daemon-get-doc.js +7 -2
- package/dist/daemon/daemon-get-doc.js.map +1 -1
- package/dist/daemon/daemon-get-issue-by-display-number.d.ts.map +1 -1
- package/dist/daemon/daemon-get-issue-by-display-number.js +7 -2
- package/dist/daemon/daemon-get-issue-by-display-number.js.map +1 -1
- package/dist/daemon/daemon-get-issue.d.ts.map +1 -1
- package/dist/daemon/daemon-get-issue.js +7 -2
- package/dist/daemon/daemon-get-issue.js.map +1 -1
- package/dist/daemon/daemon-get-manifest.d.ts.map +1 -1
- package/dist/daemon/daemon-get-manifest.js +7 -2
- package/dist/daemon/daemon-get-manifest.js.map +1 -1
- package/dist/daemon/daemon-get-pr-by-display-number.d.ts.map +1 -1
- package/dist/daemon/daemon-get-pr-by-display-number.js +7 -2
- package/dist/daemon/daemon-get-pr-by-display-number.js.map +1 -1
- package/dist/daemon/daemon-get-pr.d.ts.map +1 -1
- package/dist/daemon/daemon-get-pr.js +7 -2
- package/dist/daemon/daemon-get-pr.js.map +1 -1
- package/dist/daemon/daemon-get-user.d.ts.map +1 -1
- package/dist/daemon/daemon-get-user.js +7 -2
- package/dist/daemon/daemon-get-user.js.map +1 -1
- package/dist/daemon/daemon-open-in-temp-workspace.d.ts +6 -0
- package/dist/daemon/daemon-open-in-temp-workspace.d.ts.map +1 -0
- package/dist/daemon/daemon-open-in-temp-workspace.js +9 -0
- package/dist/daemon/daemon-open-in-temp-workspace.js.map +1 -0
- package/dist/daemon/daemon-response-error.d.ts +7 -0
- package/dist/daemon/daemon-response-error.d.ts.map +1 -0
- package/dist/daemon/daemon-response-error.js +10 -0
- package/dist/daemon/daemon-response-error.js.map +1 -0
- package/dist/daemon/load-proto.d.ts +31 -24
- package/dist/daemon/load-proto.d.ts.map +1 -1
- package/dist/daemon/load-proto.js +1 -1
- package/dist/daemon/load-proto.js.map +1 -1
- package/dist/daemon/types.d.ts +427 -202
- package/dist/daemon/types.d.ts.map +1 -1
- package/dist/daemon/types.js +1 -1
- package/dist/lib/create-pr/create-pr.d.ts.map +1 -1
- package/dist/lib/create-pr/create-pr.js +0 -1
- package/dist/lib/create-pr/create-pr.js.map +1 -1
- package/dist/lib/init/init.d.ts.map +1 -1
- package/dist/lib/init/init.js +2 -3
- package/dist/lib/init/init.js.map +1 -1
- package/dist/lib/install-binary/download.d.ts.map +1 -1
- package/dist/lib/install-binary/download.js +4 -3
- package/dist/lib/install-binary/download.js.map +1 -1
- package/dist/lib/install-script-url.js +1 -1
- package/dist/lib/install-script-url.js.map +1 -1
- package/oclif.manifest.json +334 -1008
- package/package.json +1 -1
- package/proto/centy.proto +47 -104
- package/dist/commands/add/plan.d.ts +0 -18
- package/dist/commands/add/plan.d.ts.map +0 -1
- package/dist/commands/add/plan.js +0 -87
- package/dist/commands/add/plan.js.map +0 -1
- package/dist/commands/assign/issue.d.ts +0 -19
- package/dist/commands/assign/issue.d.ts.map +0 -1
- package/dist/commands/assign/issue.js +0 -79
- package/dist/commands/assign/issue.js.map +0 -1
- package/dist/commands/close/org-issue.d.ts +0 -17
- package/dist/commands/close/org-issue.d.ts.map +0 -1
- package/dist/commands/close/org-issue.js +0 -69
- package/dist/commands/close/org-issue.js.map +0 -1
- package/dist/commands/create/org-issue.d.ts +0 -22
- package/dist/commands/create/org-issue.d.ts.map +0 -1
- package/dist/commands/create/org-issue.js +0 -99
- package/dist/commands/create/org-issue.js.map +0 -1
- package/dist/commands/delete/org-issue.d.ts +0 -18
- package/dist/commands/delete/org-issue.d.ts.map +0 -1
- package/dist/commands/delete/org-issue.js +0 -73
- package/dist/commands/delete/org-issue.js.map +0 -1
- package/dist/commands/delete/plan.d.ts +0 -17
- package/dist/commands/delete/plan.d.ts.map +0 -1
- package/dist/commands/delete/plan.js +0 -74
- package/dist/commands/delete/plan.js.map +0 -1
- package/dist/commands/get/org-issue.d.ts +0 -17
- package/dist/commands/get/org-issue.d.ts.map +0 -1
- package/dist/commands/get/org-issue.js +0 -84
- package/dist/commands/get/org-issue.js.map +0 -1
- package/dist/commands/get/plan.d.ts +0 -18
- package/dist/commands/get/plan.d.ts.map +0 -1
- package/dist/commands/get/plan.js +0 -68
- package/dist/commands/get/plan.js.map +0 -1
- package/dist/commands/list/org-issues.d.ts +0 -20
- package/dist/commands/list/org-issues.d.ts.map +0 -1
- package/dist/commands/list/org-issues.js +0 -83
- package/dist/commands/list/org-issues.js.map +0 -1
- package/dist/commands/unassign/issue.d.ts +0 -19
- package/dist/commands/unassign/issue.d.ts.map +0 -1
- package/dist/commands/unassign/issue.js +0 -79
- package/dist/commands/unassign/issue.js.map +0 -1
- package/dist/commands/update/org-issue.d.ts +0 -23
- package/dist/commands/update/org-issue.d.ts.map +0 -1
- package/dist/commands/update/org-issue.js +0 -129
- package/dist/commands/update/org-issue.js.map +0 -1
- package/dist/daemon/daemon-assign-issue.d.ts +0 -6
- package/dist/daemon/daemon-assign-issue.d.ts.map +0 -1
- package/dist/daemon/daemon-assign-issue.js +0 -9
- package/dist/daemon/daemon-assign-issue.js.map +0 -1
- package/dist/daemon/daemon-create-org-issue.d.ts +0 -6
- package/dist/daemon/daemon-create-org-issue.d.ts.map +0 -1
- package/dist/daemon/daemon-create-org-issue.js +0 -9
- package/dist/daemon/daemon-create-org-issue.js.map +0 -1
- package/dist/daemon/daemon-delete-org-issue.d.ts +0 -6
- package/dist/daemon/daemon-delete-org-issue.d.ts.map +0 -1
- package/dist/daemon/daemon-delete-org-issue.js +0 -9
- package/dist/daemon/daemon-delete-org-issue.js.map +0 -1
- package/dist/daemon/daemon-delete-plan.d.ts +0 -6
- package/dist/daemon/daemon-delete-plan.d.ts.map +0 -1
- package/dist/daemon/daemon-delete-plan.js +0 -9
- package/dist/daemon/daemon-delete-plan.js.map +0 -1
- package/dist/daemon/daemon-get-org-config.d.ts +0 -6
- package/dist/daemon/daemon-get-org-config.d.ts.map +0 -1
- package/dist/daemon/daemon-get-org-config.js +0 -9
- package/dist/daemon/daemon-get-org-config.js.map +0 -1
- package/dist/daemon/daemon-get-org-issue-by-display-number.d.ts +0 -6
- package/dist/daemon/daemon-get-org-issue-by-display-number.d.ts.map +0 -1
- package/dist/daemon/daemon-get-org-issue-by-display-number.js +0 -9
- package/dist/daemon/daemon-get-org-issue-by-display-number.js.map +0 -1
- package/dist/daemon/daemon-get-org-issue.d.ts +0 -6
- package/dist/daemon/daemon-get-org-issue.d.ts.map +0 -1
- package/dist/daemon/daemon-get-org-issue.js +0 -9
- package/dist/daemon/daemon-get-org-issue.js.map +0 -1
- package/dist/daemon/daemon-get-plan.d.ts +0 -6
- package/dist/daemon/daemon-get-plan.d.ts.map +0 -1
- package/dist/daemon/daemon-get-plan.js +0 -9
- package/dist/daemon/daemon-get-plan.js.map +0 -1
- package/dist/daemon/daemon-list-org-issues.d.ts +0 -6
- package/dist/daemon/daemon-list-org-issues.d.ts.map +0 -1
- package/dist/daemon/daemon-list-org-issues.js +0 -9
- package/dist/daemon/daemon-list-org-issues.js.map +0 -1
- package/dist/daemon/daemon-open-in-temp-vscode.d.ts +0 -6
- package/dist/daemon/daemon-open-in-temp-vscode.d.ts.map +0 -1
- package/dist/daemon/daemon-open-in-temp-vscode.js +0 -9
- package/dist/daemon/daemon-open-in-temp-vscode.js.map +0 -1
- package/dist/daemon/daemon-spawn-agent.d.ts +0 -6
- package/dist/daemon/daemon-spawn-agent.d.ts.map +0 -1
- package/dist/daemon/daemon-spawn-agent.js +0 -9
- package/dist/daemon/daemon-spawn-agent.js.map +0 -1
- package/dist/daemon/daemon-unassign-issue.d.ts +0 -6
- package/dist/daemon/daemon-unassign-issue.d.ts.map +0 -1
- package/dist/daemon/daemon-unassign-issue.js +0 -9
- package/dist/daemon/daemon-unassign-issue.js.map +0 -1
- package/dist/daemon/daemon-update-org-config.d.ts +0 -6
- package/dist/daemon/daemon-update-org-config.d.ts.map +0 -1
- package/dist/daemon/daemon-update-org-config.js +0 -9
- package/dist/daemon/daemon-update-org-config.js.map +0 -1
- package/dist/daemon/daemon-update-org-issue.d.ts +0 -6
- package/dist/daemon/daemon-update-org-issue.d.ts.map +0 -1
- package/dist/daemon/daemon-update-org-issue.js +0 -9
- package/dist/daemon/daemon-update-org-issue.js.map +0 -1
- package/dist/daemon/daemon-update-plan.d.ts +0 -6
- package/dist/daemon/daemon-update-plan.d.ts.map +0 -1
- package/dist/daemon/daemon-update-plan.js +0 -9
- package/dist/daemon/daemon-update-plan.js.map +0 -1
package/package.json
CHANGED
package/proto/centy.proto
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
syntax = "proto3";
|
|
2
2
|
|
|
3
|
-
package centy;
|
|
3
|
+
package centy.v1;
|
|
4
4
|
|
|
5
5
|
// CentyDaemon service - manages .centy folder operations
|
|
6
6
|
service CentyDaemon {
|
|
@@ -204,47 +204,30 @@ service CentyDaemon {
|
|
|
204
204
|
// Restart the daemon
|
|
205
205
|
rpc Restart(RestartRequest) returns (RestartResponse);
|
|
206
206
|
|
|
207
|
-
// ============ Features RPCs ============
|
|
208
|
-
|
|
209
|
-
// Get the status of the features system
|
|
210
|
-
rpc GetFeatureStatus(GetFeatureStatusRequest) returns (GetFeatureStatusResponse);
|
|
211
|
-
|
|
212
|
-
// List all uncompacted issues
|
|
213
|
-
rpc ListUncompactedIssues(ListUncompactedIssuesRequest) returns (ListUncompactedIssuesResponse);
|
|
214
|
-
|
|
215
|
-
// Get the instruction.md content
|
|
216
|
-
rpc GetInstruction(GetInstructionRequest) returns (GetInstructionResponse);
|
|
217
|
-
|
|
218
|
-
// Get the current compact.md content
|
|
219
|
-
rpc GetCompact(GetCompactRequest) returns (GetCompactResponse);
|
|
220
|
-
|
|
221
|
-
// Update the compact.md content
|
|
222
|
-
rpc UpdateCompact(UpdateCompactRequest) returns (UpdateCompactResponse);
|
|
223
|
-
|
|
224
|
-
// Save a new migration file
|
|
225
|
-
rpc SaveMigration(SaveMigrationRequest) returns (SaveMigrationResponse);
|
|
226
|
-
|
|
227
|
-
// Mark multiple issues as compacted
|
|
228
|
-
rpc MarkIssuesCompacted(MarkIssuesCompactedRequest) returns (MarkIssuesCompactedResponse);
|
|
229
|
-
|
|
230
207
|
// ============ Temp Workspace RPCs ============
|
|
231
208
|
|
|
232
209
|
// Get list of supported workspace editors
|
|
233
210
|
rpc GetSupportedEditors(GetSupportedEditorsRequest) returns (GetSupportedEditorsResponse);
|
|
234
211
|
|
|
235
|
-
// Open a project in a temporary
|
|
212
|
+
// Open a project in a temporary workspace with a configurable editor
|
|
213
|
+
rpc OpenInTempWorkspace(OpenInTempWorkspaceWithEditorRequest) returns (OpenInTempWorkspaceResponse);
|
|
214
|
+
|
|
215
|
+
// Open a standalone workspace with a configurable editor (not tied to an issue)
|
|
216
|
+
rpc OpenStandaloneWorkspace(OpenStandaloneWorkspaceWithEditorRequest) returns (OpenStandaloneWorkspaceResponse);
|
|
217
|
+
|
|
218
|
+
// Open a project in a temporary VS Code workspace (deprecated: use OpenInTempWorkspace)
|
|
236
219
|
rpc OpenInTempVscode(OpenInTempWorkspaceRequest) returns (OpenInTempWorkspaceResponse);
|
|
237
220
|
|
|
238
|
-
// Open a project in a temporary terminal workspace
|
|
221
|
+
// Open a project in a temporary terminal workspace (deprecated: use OpenInTempWorkspace)
|
|
239
222
|
rpc OpenInTempTerminal(OpenInTempWorkspaceRequest) returns (OpenInTempWorkspaceResponse);
|
|
240
223
|
|
|
241
224
|
// Open an agent in a terminal for working on an issue
|
|
242
225
|
rpc OpenAgentInTerminal(OpenAgentInTerminalRequest) returns (OpenAgentInTerminalResponse);
|
|
243
226
|
|
|
244
|
-
// Open a standalone workspace in VS Code (
|
|
227
|
+
// Open a standalone workspace in VS Code (deprecated: use OpenStandaloneWorkspace)
|
|
245
228
|
rpc OpenStandaloneWorkspaceVscode(OpenStandaloneWorkspaceRequest) returns (OpenStandaloneWorkspaceResponse);
|
|
246
229
|
|
|
247
|
-
// Open a standalone workspace in terminal (
|
|
230
|
+
// Open a standalone workspace in terminal (deprecated: use OpenStandaloneWorkspace)
|
|
248
231
|
rpc OpenStandaloneWorkspaceTerminal(OpenStandaloneWorkspaceRequest) returns (OpenStandaloneWorkspaceResponse);
|
|
249
232
|
|
|
250
233
|
// List all temp workspaces
|
|
@@ -462,8 +445,7 @@ message IssueMetadata {
|
|
|
462
445
|
string updated_at = 5; // ISO timestamp
|
|
463
446
|
map<string, string> custom_fields = 6;
|
|
464
447
|
string priority_label = 7; // Human-readable label (e.g., "high", "P1")
|
|
465
|
-
|
|
466
|
-
string compacted_at = 9; // ISO timestamp when compacted (empty if not)
|
|
448
|
+
reserved 8, 9; // Removed: compacted, compacted_at (moved to CLI)
|
|
467
449
|
bool draft = 10; // Whether this issue is a draft
|
|
468
450
|
string deleted_at = 11; // ISO timestamp when soft-deleted (empty if not deleted)
|
|
469
451
|
bool is_org_issue = 12; // Whether this is an organization-level issue
|
|
@@ -696,6 +678,8 @@ message Config {
|
|
|
696
678
|
map<string, string> priority_colors = 8; // Priority level → hex color (e.g., "1" → "#ef4444")
|
|
697
679
|
LlmConfig llm = 9; // LLM-related settings
|
|
698
680
|
repeated LinkTypeDefinition custom_link_types = 10; // Custom link types (in addition to built-in)
|
|
681
|
+
string default_editor = 11; // Default editor ID for this project (e.g., "vscode", "terminal", "zed")
|
|
682
|
+
repeated HookDefinition hooks = 12; // Lifecycle hooks
|
|
699
683
|
}
|
|
700
684
|
|
|
701
685
|
message CustomFieldDefinition {
|
|
@@ -713,6 +697,15 @@ message LlmConfig {
|
|
|
713
697
|
WorkspaceMode default_workspace_mode = 4; // Default workspace mode for agent operations
|
|
714
698
|
}
|
|
715
699
|
|
|
700
|
+
// Lifecycle hook definition (bash scripts to run before/after operations)
|
|
701
|
+
message HookDefinition {
|
|
702
|
+
string pattern = 1; // Pattern like "pre:issue:create" or "*:*:delete"
|
|
703
|
+
string command = 2; // Bash command to execute
|
|
704
|
+
bool run_async = 3; // If true, run in background (post-hooks only)
|
|
705
|
+
uint64 timeout = 4; // Timeout in seconds (default: 30)
|
|
706
|
+
bool enabled = 5; // Whether hook is enabled (default: true)
|
|
707
|
+
}
|
|
708
|
+
|
|
716
709
|
// Custom link type definition (for custom relationship types)
|
|
717
710
|
message LinkTypeDefinition {
|
|
718
711
|
string name = 1; // Link type name (e.g., "depends-on")
|
|
@@ -1398,78 +1391,6 @@ message RestorePrResponse {
|
|
|
1398
1391
|
Manifest manifest = 4;
|
|
1399
1392
|
}
|
|
1400
1393
|
|
|
1401
|
-
// ============ Features Messages ============
|
|
1402
|
-
|
|
1403
|
-
message GetFeatureStatusRequest {
|
|
1404
|
-
string project_path = 1;
|
|
1405
|
-
}
|
|
1406
|
-
|
|
1407
|
-
message GetFeatureStatusResponse {
|
|
1408
|
-
bool initialized = 1; // features/ folder exists
|
|
1409
|
-
bool has_compact = 2; // compact.md exists
|
|
1410
|
-
bool has_instruction = 3; // instruction.md exists
|
|
1411
|
-
uint32 uncompacted_count = 5; // Number of uncompacted issues
|
|
1412
|
-
}
|
|
1413
|
-
|
|
1414
|
-
message ListUncompactedIssuesRequest {
|
|
1415
|
-
string project_path = 1;
|
|
1416
|
-
}
|
|
1417
|
-
|
|
1418
|
-
message ListUncompactedIssuesResponse {
|
|
1419
|
-
repeated Issue issues = 1;
|
|
1420
|
-
int32 total_count = 2;
|
|
1421
|
-
}
|
|
1422
|
-
|
|
1423
|
-
message GetInstructionRequest {
|
|
1424
|
-
string project_path = 1;
|
|
1425
|
-
}
|
|
1426
|
-
|
|
1427
|
-
message GetInstructionResponse {
|
|
1428
|
-
string content = 1; // instruction.md content
|
|
1429
|
-
}
|
|
1430
|
-
|
|
1431
|
-
message GetCompactRequest {
|
|
1432
|
-
string project_path = 1;
|
|
1433
|
-
}
|
|
1434
|
-
|
|
1435
|
-
message GetCompactResponse {
|
|
1436
|
-
bool exists = 1; // Whether compact.md exists
|
|
1437
|
-
string content = 2; // compact.md content (empty if not exists)
|
|
1438
|
-
}
|
|
1439
|
-
|
|
1440
|
-
message UpdateCompactRequest {
|
|
1441
|
-
string project_path = 1;
|
|
1442
|
-
string content = 2; // New compact.md content
|
|
1443
|
-
}
|
|
1444
|
-
|
|
1445
|
-
message UpdateCompactResponse {
|
|
1446
|
-
bool success = 1;
|
|
1447
|
-
string error = 2;
|
|
1448
|
-
}
|
|
1449
|
-
|
|
1450
|
-
message SaveMigrationRequest {
|
|
1451
|
-
string project_path = 1;
|
|
1452
|
-
string content = 2; // Migration file content (markdown with YAML frontmatter)
|
|
1453
|
-
}
|
|
1454
|
-
|
|
1455
|
-
message SaveMigrationResponse {
|
|
1456
|
-
bool success = 1;
|
|
1457
|
-
string error = 2;
|
|
1458
|
-
string filename = 3; // Created migration filename (e.g., "2025-12-06T19-30-00.md")
|
|
1459
|
-
string path = 4; // Full relative path to migration file
|
|
1460
|
-
}
|
|
1461
|
-
|
|
1462
|
-
message MarkIssuesCompactedRequest {
|
|
1463
|
-
string project_path = 1;
|
|
1464
|
-
repeated string issue_ids = 2; // UUIDs of issues to mark as compacted
|
|
1465
|
-
}
|
|
1466
|
-
|
|
1467
|
-
message MarkIssuesCompactedResponse {
|
|
1468
|
-
bool success = 1;
|
|
1469
|
-
string error = 2;
|
|
1470
|
-
uint32 marked_count = 3; // Number of issues successfully marked
|
|
1471
|
-
}
|
|
1472
|
-
|
|
1473
1394
|
// ============ Temp Workspace Messages ============
|
|
1474
1395
|
|
|
1475
1396
|
// Action types for workspace operations
|
|
@@ -1499,10 +1420,12 @@ message GetSupportedEditorsRequest {}
|
|
|
1499
1420
|
|
|
1500
1421
|
// Information about a supported editor
|
|
1501
1422
|
message EditorInfo {
|
|
1502
|
-
EditorType editor_type = 1; // Editor type enum value
|
|
1423
|
+
EditorType editor_type = 1; // Editor type enum value (deprecated: use editor_id)
|
|
1503
1424
|
string name = 2; // Display name (e.g., "VS Code", "Terminal")
|
|
1504
1425
|
string description = 3; // Brief description
|
|
1505
1426
|
bool available = 4; // Whether this editor is available on the current system
|
|
1427
|
+
string editor_id = 5; // String-based editor identifier (e.g., "vscode", "terminal", "zed")
|
|
1428
|
+
bool terminal_wrapper = 6; // Whether this editor runs inside a terminal
|
|
1506
1429
|
}
|
|
1507
1430
|
|
|
1508
1431
|
// Response with list of supported editors
|
|
@@ -1510,7 +1433,27 @@ message GetSupportedEditorsResponse {
|
|
|
1510
1433
|
repeated EditorInfo editors = 1; // List of supported editors
|
|
1511
1434
|
}
|
|
1512
1435
|
|
|
1513
|
-
//
|
|
1436
|
+
// Request for unified OpenInTempWorkspace (new, configurable editor)
|
|
1437
|
+
message OpenInTempWorkspaceWithEditorRequest {
|
|
1438
|
+
string project_path = 1; // Source project path
|
|
1439
|
+
string issue_id = 2; // Issue UUID or display number
|
|
1440
|
+
LlmAction action = 3; // Plan or Implement
|
|
1441
|
+
string agent_name = 4; // Agent to use (empty = default)
|
|
1442
|
+
uint32 ttl_hours = 5; // Custom TTL in hours (0 = use default 12h)
|
|
1443
|
+
string editor_id = 6; // Editor ID (e.g., "vscode", "terminal", "zed"). Empty = use project/user default.
|
|
1444
|
+
}
|
|
1445
|
+
|
|
1446
|
+
// Request for unified OpenStandaloneWorkspace (new, configurable editor)
|
|
1447
|
+
message OpenStandaloneWorkspaceWithEditorRequest {
|
|
1448
|
+
string project_path = 1; // Source project path
|
|
1449
|
+
string name = 2; // Optional custom name for the workspace
|
|
1450
|
+
string description = 3; // Optional description/goals for this workspace
|
|
1451
|
+
uint32 ttl_hours = 4; // Custom TTL in hours (0 = use default 12h)
|
|
1452
|
+
string agent_name = 5; // Agent to use (empty = default)
|
|
1453
|
+
string editor_id = 6; // Editor ID (e.g., "vscode", "terminal", "zed"). Empty = use project/user default.
|
|
1454
|
+
}
|
|
1455
|
+
|
|
1456
|
+
// Shared request for OpenInTempVscode and OpenInTempTerminal (deprecated: use OpenInTempWorkspaceWithEditorRequest)
|
|
1514
1457
|
message OpenInTempWorkspaceRequest {
|
|
1515
1458
|
string project_path = 1; // Source project path
|
|
1516
1459
|
string issue_id = 2; // Issue UUID or display number
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Command } from '@oclif/core';
|
|
2
|
-
/**
|
|
3
|
-
* Add or update an issue's plan
|
|
4
|
-
*/
|
|
5
|
-
export default class AddPlan extends Command {
|
|
6
|
-
static aliases: string[];
|
|
7
|
-
static args: {
|
|
8
|
-
issueId: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
9
|
-
};
|
|
10
|
-
static description: string;
|
|
11
|
-
static examples: string[];
|
|
12
|
-
static flags: {
|
|
13
|
-
file: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
-
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
-
};
|
|
16
|
-
run(): Promise<void>;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=plan.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/commands/add/plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAUlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAE1C,OAAgB,OAAO,WAA8B;IAGrD,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,WAAW,SAAkC;IAG7D,OAAgB,QAAQ,WAKvB;IAGD,OAAgB,KAAK;;;MAMpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiDlC"}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { readFile } from 'node:fs/promises';
|
|
2
|
-
// eslint-disable-next-line import/order
|
|
3
|
-
import { Args, Command, Flags } from '@oclif/core';
|
|
4
|
-
import { daemonUpdatePlan } from '../../daemon/daemon-update-plan.js';
|
|
5
|
-
import { projectFlag } from '../../flags/project-flag.js';
|
|
6
|
-
import { ensureInitialized, NotInitializedError, } from '../../utils/ensure-initialized.js';
|
|
7
|
-
import { resolveProjectPath } from '../../utils/resolve-project-path.js';
|
|
8
|
-
/**
|
|
9
|
-
* Add or update an issue's plan
|
|
10
|
-
*/
|
|
11
|
-
// eslint-disable-next-line custom/no-default-class-export, class-export/class-export
|
|
12
|
-
export default class AddPlan extends Command {
|
|
13
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
14
|
-
static aliases = ['update:plan', 'set:plan'];
|
|
15
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
16
|
-
static args = {
|
|
17
|
-
issueId: Args.string({
|
|
18
|
-
description: 'Issue ID or display number',
|
|
19
|
-
required: true,
|
|
20
|
-
}),
|
|
21
|
-
};
|
|
22
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
23
|
-
static description = "Add or update an issue's plan";
|
|
24
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
25
|
-
static examples = [
|
|
26
|
-
'<%= config.bin %> add plan 1 --file ./plan.md',
|
|
27
|
-
'<%= config.bin %> add plan abc123 --file ./plan.md',
|
|
28
|
-
'echo "# Plan" | <%= config.bin %> add plan 1',
|
|
29
|
-
'<%= config.bin %> add plan 1 --project centy-daemon --file ./plan.md',
|
|
30
|
-
];
|
|
31
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
32
|
-
static flags = {
|
|
33
|
-
file: Flags.string({
|
|
34
|
-
char: 'f',
|
|
35
|
-
description: 'Path to the plan file (reads from stdin if not provided)',
|
|
36
|
-
}),
|
|
37
|
-
project: projectFlag,
|
|
38
|
-
};
|
|
39
|
-
async run() {
|
|
40
|
-
const { args, flags } = await this.parse(AddPlan);
|
|
41
|
-
const cwd = await resolveProjectPath(flags.project);
|
|
42
|
-
try {
|
|
43
|
-
await ensureInitialized(cwd);
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
if (error instanceof NotInitializedError) {
|
|
47
|
-
this.error(error.message);
|
|
48
|
-
}
|
|
49
|
-
throw error instanceof Error ? error : new Error(String(error));
|
|
50
|
-
}
|
|
51
|
-
let content;
|
|
52
|
-
if (flags.file) {
|
|
53
|
-
try {
|
|
54
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
55
|
-
content = await readFile(flags.file, 'utf-8');
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
59
|
-
if (msg.includes('ENOENT')) {
|
|
60
|
-
this.error(`File not found: ${flags.file}`);
|
|
61
|
-
}
|
|
62
|
-
throw error instanceof Error ? error : new Error(String(error));
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
else if (!process.stdin.isTTY) {
|
|
66
|
-
// Read from stdin
|
|
67
|
-
const chunks = [];
|
|
68
|
-
for await (const chunk of process.stdin) {
|
|
69
|
-
chunks.push(Buffer.from(chunk));
|
|
70
|
-
}
|
|
71
|
-
content = Buffer.concat(chunks).toString('utf-8');
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
this.error('No input provided. Use --file or pipe content via stdin.');
|
|
75
|
-
}
|
|
76
|
-
const response = await daemonUpdatePlan({
|
|
77
|
-
projectPath: cwd,
|
|
78
|
-
issueId: args.issueId,
|
|
79
|
-
content,
|
|
80
|
-
});
|
|
81
|
-
if (!response.success) {
|
|
82
|
-
this.error(response.error);
|
|
83
|
-
}
|
|
84
|
-
this.log(`Plan updated for issue ${args.issueId}`);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=plan.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/commands/add/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Command } from '@oclif/core';
|
|
2
|
-
/**
|
|
3
|
-
* Assign users to an issue
|
|
4
|
-
*/
|
|
5
|
-
export default class AssignIssue extends Command {
|
|
6
|
-
static args: {
|
|
7
|
-
issueId: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
-
userIds: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
9
|
-
};
|
|
10
|
-
static description: string;
|
|
11
|
-
static examples: string[];
|
|
12
|
-
static flags: {
|
|
13
|
-
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
-
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
-
};
|
|
16
|
-
static strict: boolean;
|
|
17
|
-
run(): Promise<void>;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=issue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../../src/commands/assign/issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAUlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;IAE9C,OAAgB,IAAI;;;MASnB;IAGD,OAAgB,WAAW,SAA6B;IAGxD,OAAgB,QAAQ,WAIvB;IAGD,OAAgB,KAAK;;;MAMpB;IAGD,OAAgB,MAAM,UAAQ;IAEjB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8ClC"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
// eslint-disable-next-line import/order
|
|
2
|
-
import { Args, Command, Flags } from '@oclif/core';
|
|
3
|
-
import { daemonAssignIssue } from '../../daemon/daemon-assign-issue.js';
|
|
4
|
-
import { projectFlag } from '../../flags/project-flag.js';
|
|
5
|
-
import { ensureInitialized, NotInitializedError, } from '../../utils/ensure-initialized.js';
|
|
6
|
-
import { resolveProjectPath } from '../../utils/resolve-project-path.js';
|
|
7
|
-
/**
|
|
8
|
-
* Assign users to an issue
|
|
9
|
-
*/
|
|
10
|
-
// eslint-disable-next-line custom/no-default-class-export, class-export/class-export
|
|
11
|
-
export default class AssignIssue extends Command {
|
|
12
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
13
|
-
static args = {
|
|
14
|
-
issueId: Args.string({
|
|
15
|
-
description: 'Issue ID (UUID) or display number',
|
|
16
|
-
required: true,
|
|
17
|
-
}),
|
|
18
|
-
userIds: Args.string({
|
|
19
|
-
description: 'User IDs to assign (space-separated)',
|
|
20
|
-
required: true,
|
|
21
|
-
}),
|
|
22
|
-
};
|
|
23
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
24
|
-
static description = 'Assign users to an issue';
|
|
25
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
26
|
-
static examples = [
|
|
27
|
-
'<%= config.bin %> assign issue 1 john-doe',
|
|
28
|
-
'<%= config.bin %> assign issue abc123-uuid alice bob',
|
|
29
|
-
'<%= config.bin %> assign issue 1 john-doe --project centy-daemon',
|
|
30
|
-
];
|
|
31
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
32
|
-
static flags = {
|
|
33
|
-
json: Flags.boolean({
|
|
34
|
-
description: 'Output as JSON',
|
|
35
|
-
default: false,
|
|
36
|
-
}),
|
|
37
|
-
project: projectFlag,
|
|
38
|
-
};
|
|
39
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
40
|
-
static strict = false;
|
|
41
|
-
async run() {
|
|
42
|
-
const { args, argv, flags } = await this.parse(AssignIssue);
|
|
43
|
-
const cwd = await resolveProjectPath(flags.project);
|
|
44
|
-
try {
|
|
45
|
-
await ensureInitialized(cwd);
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
if (error instanceof NotInitializedError) {
|
|
49
|
-
this.error(error.message);
|
|
50
|
-
}
|
|
51
|
-
throw error instanceof Error ? error : new Error(String(error));
|
|
52
|
-
}
|
|
53
|
-
// Get all user IDs from argv (everything after the issue ID)
|
|
54
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
55
|
-
const userIds = argv.slice(1);
|
|
56
|
-
if (userIds.length === 0) {
|
|
57
|
-
this.error('At least one user ID is required');
|
|
58
|
-
}
|
|
59
|
-
const response = await daemonAssignIssue({
|
|
60
|
-
projectPath: cwd,
|
|
61
|
-
issueId: args.issueId,
|
|
62
|
-
userIds,
|
|
63
|
-
});
|
|
64
|
-
if (!response.success) {
|
|
65
|
-
this.error(response.error);
|
|
66
|
-
}
|
|
67
|
-
if (flags.json) {
|
|
68
|
-
this.log(JSON.stringify(response.issue, null, 2));
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
const issue = response.issue;
|
|
72
|
-
if (issue !== undefined) {
|
|
73
|
-
this.log(`Assigned ${userIds.join(', ')} to issue #${issue.displayNumber}`);
|
|
74
|
-
const assignees = issue.metadata.assignees;
|
|
75
|
-
this.log(`Current assignees: ${assignees.length > 0 ? assignees.join(', ') : 'none'}`);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=issue.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/commands/assign/issue.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Command } from '@oclif/core';
|
|
2
|
-
/**
|
|
3
|
-
* Close an organization-level issue by setting its status to closed
|
|
4
|
-
*/
|
|
5
|
-
export default class CloseOrgIssue extends Command {
|
|
6
|
-
static description: string;
|
|
7
|
-
static examples: string[];
|
|
8
|
-
static args: {
|
|
9
|
-
identifier: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
10
|
-
};
|
|
11
|
-
static flags: {
|
|
12
|
-
org: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
-
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
-
};
|
|
15
|
-
run(): Promise<void>;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=org-issue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"org-issue.d.ts","sourceRoot":"","sources":["../../../src/commands/close/org-issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAKlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAEhD,OAAgB,WAAW,SAAsC;IAGjE,OAAgB,QAAQ,WAIvB;IAGD,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,KAAK;;;MAUpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAoClC"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
// eslint-disable-next-line import/order
|
|
2
|
-
import { Args, Command, Flags } from '@oclif/core';
|
|
3
|
-
import { daemonGetOrgIssueByDisplayNumber } from '../../daemon/daemon-get-org-issue-by-display-number.js';
|
|
4
|
-
import { daemonUpdateOrgIssue } from '../../daemon/daemon-update-org-issue.js';
|
|
5
|
-
/**
|
|
6
|
-
* Close an organization-level issue by setting its status to closed
|
|
7
|
-
*/
|
|
8
|
-
// eslint-disable-next-line custom/no-default-class-export, class-export/class-export
|
|
9
|
-
export default class CloseOrgIssue extends Command {
|
|
10
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
11
|
-
static description = 'Close an organization-level issue';
|
|
12
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
13
|
-
static examples = [
|
|
14
|
-
'<%= config.bin %> close org-issue --org my-org 1',
|
|
15
|
-
'<%= config.bin %> close org-issue --org my-org #1',
|
|
16
|
-
'<%= config.bin %> close org-issue -o centy-io abc123',
|
|
17
|
-
];
|
|
18
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
19
|
-
static args = {
|
|
20
|
-
identifier: Args.string({
|
|
21
|
-
description: 'Issue ID or display number (#N or just N)',
|
|
22
|
-
required: true,
|
|
23
|
-
}),
|
|
24
|
-
};
|
|
25
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
26
|
-
static flags = {
|
|
27
|
-
org: Flags.string({
|
|
28
|
-
char: 'o',
|
|
29
|
-
description: 'Organization slug',
|
|
30
|
-
required: true,
|
|
31
|
-
}),
|
|
32
|
-
json: Flags.boolean({
|
|
33
|
-
description: 'Output as JSON',
|
|
34
|
-
default: false,
|
|
35
|
-
}),
|
|
36
|
-
};
|
|
37
|
-
async run() {
|
|
38
|
-
const { args, flags } = await this.parse(CloseOrgIssue);
|
|
39
|
-
// Resolve issue ID from display number if needed
|
|
40
|
-
let issueId;
|
|
41
|
-
const identifier = args.identifier;
|
|
42
|
-
const displayNumberMatch = identifier.match(/^#?(\d+)$/);
|
|
43
|
-
if (displayNumberMatch) {
|
|
44
|
-
const displayNumber = Number.parseInt(displayNumberMatch[1], 10);
|
|
45
|
-
const issue = await daemonGetOrgIssueByDisplayNumber({
|
|
46
|
-
orgSlug: flags.org,
|
|
47
|
-
displayNumber,
|
|
48
|
-
});
|
|
49
|
-
issueId = issue.id;
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
issueId = identifier;
|
|
53
|
-
}
|
|
54
|
-
const response = await daemonUpdateOrgIssue({
|
|
55
|
-
orgSlug: flags.org,
|
|
56
|
-
issueId,
|
|
57
|
-
status: 'closed',
|
|
58
|
-
});
|
|
59
|
-
if (!response.success) {
|
|
60
|
-
this.error(response.error);
|
|
61
|
-
}
|
|
62
|
-
if (flags.json) {
|
|
63
|
-
this.log(JSON.stringify(response.issue, null, 2));
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
this.log(`Closed organization issue #${response.issue.displayNumber}`);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=org-issue.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"org-issue.js","sourceRoot":"","sources":["../../../src/commands/close/org-issue.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,gCAAgC,EAAE,MAAM,wDAAwD,CAAA;AACzG,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAA;AAE9E;;GAEG;AACH,qFAAqF;AACrF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAChD,gDAAgD;IAChD,MAAM,CAAU,WAAW,GAAG,mCAAmC,CAAA;IAEjE,gDAAgD;IAChD,MAAM,CAAU,QAAQ,GAAG;QACzB,kDAAkD;QAClD,mDAAmD;QACnD,sDAAsD;KACvD,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,IAAI,GAAG;QACrB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACtB,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,mBAAmB;YAChC,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAEvD,iDAAiD;QACjD,IAAI,OAAe,CAAA;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QAClC,MAAM,kBAAkB,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAExD,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAChE,MAAM,KAAK,GAAG,MAAM,gCAAgC,CAAC;gBACnD,OAAO,EAAE,KAAK,CAAC,GAAG;gBAClB,aAAa;aACd,CAAC,CAAA;YACF,OAAO,GAAG,KAAK,CAAC,EAAE,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,UAAU,CAAA;QACtB,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC;YAC1C,OAAO,EAAE,KAAK,CAAC,GAAG;YAClB,OAAO;YACP,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACjD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,8BAA8B,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAA;IACxE,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Command } from '@oclif/core';
|
|
2
|
-
/**
|
|
3
|
-
* Create a new organization-level issue
|
|
4
|
-
*/
|
|
5
|
-
export default class CreateOrgIssue extends Command {
|
|
6
|
-
static description: string;
|
|
7
|
-
static examples: string[];
|
|
8
|
-
static args: {
|
|
9
|
-
org: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
10
|
-
};
|
|
11
|
-
static flags: {
|
|
12
|
-
org: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
-
title: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
-
description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
-
priority: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
-
status: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
-
projects: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
|
-
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
19
|
-
};
|
|
20
|
-
run(): Promise<void>;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=org-issue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"org-issue.d.ts","sourceRoot":"","sources":["../../../src/commands/create/org-issue.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAIlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IAEjD,OAAgB,WAAW,SAA0C;IAGrE,OAAgB,QAAQ,WAIvB;IAGD,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,KAAK;;;;;;;;MAgCpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0DlC"}
|