centy 0.0.27 → 0.0.29

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.
Files changed (47) hide show
  1. package/bin/run +9 -0
  2. package/bin/run.cmd +8 -0
  3. package/bin/run.js +1 -1
  4. package/dist/commands/list/projects.d.ts +1 -0
  5. package/dist/commands/list/projects.d.ts.map +1 -1
  6. package/dist/commands/list/projects.js +6 -0
  7. package/dist/commands/list/projects.js.map +1 -1
  8. package/dist/commands/workspace/cleanup.d.ts +10 -0
  9. package/dist/commands/workspace/cleanup.d.ts.map +1 -0
  10. package/dist/commands/workspace/cleanup.js +31 -0
  11. package/dist/commands/workspace/cleanup.js.map +1 -0
  12. package/dist/commands/workspace/close.d.ts +16 -0
  13. package/dist/commands/workspace/close.d.ts.map +1 -0
  14. package/dist/commands/workspace/close.js +49 -0
  15. package/dist/commands/workspace/close.js.map +1 -0
  16. package/dist/commands/workspace/list.d.ts +15 -0
  17. package/dist/commands/workspace/list.d.ts.map +1 -0
  18. package/dist/commands/workspace/list.js +67 -0
  19. package/dist/commands/workspace/list.js.map +1 -0
  20. package/dist/commands/workspace/open.d.ts +19 -0
  21. package/dist/commands/workspace/open.d.ts.map +1 -0
  22. package/dist/commands/workspace/open.js +76 -0
  23. package/dist/commands/workspace/open.js.map +1 -0
  24. package/dist/daemon/daemon-cleanup-expired-workspaces.d.ts +6 -0
  25. package/dist/daemon/daemon-cleanup-expired-workspaces.d.ts.map +1 -0
  26. package/dist/daemon/daemon-cleanup-expired-workspaces.js +17 -0
  27. package/dist/daemon/daemon-cleanup-expired-workspaces.js.map +1 -0
  28. package/dist/daemon/daemon-close-temp-workspace.d.ts +6 -0
  29. package/dist/daemon/daemon-close-temp-workspace.d.ts.map +1 -0
  30. package/dist/daemon/daemon-close-temp-workspace.js +17 -0
  31. package/dist/daemon/daemon-close-temp-workspace.js.map +1 -0
  32. package/dist/daemon/daemon-list-temp-workspaces.d.ts +6 -0
  33. package/dist/daemon/daemon-list-temp-workspaces.d.ts.map +1 -0
  34. package/dist/daemon/daemon-list-temp-workspaces.js +17 -0
  35. package/dist/daemon/daemon-list-temp-workspaces.js.map +1 -0
  36. package/dist/daemon/daemon-open-in-temp-vscode.d.ts +6 -0
  37. package/dist/daemon/daemon-open-in-temp-vscode.d.ts.map +1 -0
  38. package/dist/daemon/daemon-open-in-temp-vscode.js +17 -0
  39. package/dist/daemon/daemon-open-in-temp-vscode.js.map +1 -0
  40. package/dist/daemon/load-proto.d.ts +5 -1
  41. package/dist/daemon/load-proto.d.ts.map +1 -1
  42. package/dist/daemon/load-proto.js.map +1 -1
  43. package/dist/daemon/types.d.ts +54 -0
  44. package/dist/daemon/types.d.ts.map +1 -1
  45. package/oclif.manifest.json +290 -107
  46. package/package.json +2 -2
  47. package/proto/centy.proto +265 -48
package/bin/run ADDED
@@ -0,0 +1,9 @@
1
+ #!/bin/sh
2
+ SCRIPT_DIR="$(dirname "$0")"
3
+
4
+ if command -v bun >/dev/null 2>&1; then
5
+ exec bun "$SCRIPT_DIR/run.js" "$@"
6
+ else
7
+ echo "Tip: Install Bun for faster CLI performance: https://bun.sh" >&2
8
+ exec node "$SCRIPT_DIR/run.js" "$@"
9
+ fi
package/bin/run.cmd ADDED
@@ -0,0 +1,8 @@
1
+ @echo off
2
+ where bun >nul 2>&1
3
+ if %ERRORLEVEL% EQU 0 (
4
+ bun "%~dp0run.js" %*
5
+ ) else (
6
+ echo Tip: Install Bun for faster CLI performance: https://bun.sh 1>&2
7
+ node "%~dp0run.js" %*
8
+ )
package/bin/run.js CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env bun
1
+ #!/usr/bin/env node
2
2
  import { execute } from '@oclif/core'
3
3
 
4
4
  // Check if running with no arguments (or just --interactive flag)
@@ -8,6 +8,7 @@ export default class ListProjects extends Command {
8
8
  static flags: {
9
9
  'include-stale': import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
10
  'include-uninitialized': import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
+ 'include-temp': import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
12
  org: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
13
  ungrouped: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
14
  json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../../src/commands/list/projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AAI5C;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAE/C,OAAgB,WAAW,SAAoC;IAG/D,OAAgB,QAAQ,WAOvB;IAGD,OAAgB,KAAK;;;;;;MAoBpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2ClC"}
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../../src/commands/list/projects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AAI5C;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAE/C,OAAgB,WAAW,SAAoC;IAG/D,OAAgB,QAAQ,WAQvB;IAGD,OAAgB,KAAK;;;;;;;MAwBpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA4ClC"}
@@ -13,6 +13,7 @@ export default class ListProjects extends Command {
13
13
  '<%= config.bin %> list projects',
14
14
  '<%= config.bin %> list projects --include-stale',
15
15
  '<%= config.bin %> list projects --include-uninitialized',
16
+ '<%= config.bin %> list projects --include-temp',
16
17
  '<%= config.bin %> list projects --org centy-io',
17
18
  '<%= config.bin %> list projects --ungrouped',
18
19
  '<%= config.bin %> list projects --json',
@@ -27,6 +28,10 @@ export default class ListProjects extends Command {
27
28
  description: 'Include projects that are not initialized',
28
29
  default: false,
29
30
  }),
31
+ 'include-temp': Flags.boolean({
32
+ description: 'Include projects in system temp directory',
33
+ default: false,
34
+ }),
30
35
  org: Flags.string({
31
36
  description: 'Filter by organization slug',
32
37
  }),
@@ -44,6 +49,7 @@ export default class ListProjects extends Command {
44
49
  const response = await daemonListProjects({
45
50
  includeStale: flags['include-stale'],
46
51
  includeUninitialized: flags['include-uninitialized'],
52
+ includeTemp: flags['include-temp'],
47
53
  organizationSlug: flags.org,
48
54
  ungroupedOnly: flags.ungrouped,
49
55
  });
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../src/commands/list/projects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../src/commands/list/projects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Command } from '@oclif/core';
2
+ /**
3
+ * Cleanup all expired temporary workspaces
4
+ */
5
+ export default class WorkspaceCleanup extends Command {
6
+ static description: string;
7
+ static examples: string[];
8
+ run(): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=cleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../src/commands/workspace/cleanup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAIrC;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,OAAO;IAEnD,OAAgB,WAAW,SAA6C;IAGxE,OAAgB,QAAQ,WAA0C;IAErD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuBlC"}
@@ -0,0 +1,31 @@
1
+ // eslint-disable-next-line import/order
2
+ import { Command } from '@oclif/core';
3
+ import { daemonCleanupExpiredWorkspaces } from '../../daemon/daemon-cleanup-expired-workspaces.js';
4
+ /**
5
+ * Cleanup all expired temporary workspaces
6
+ */
7
+ // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
8
+ export default class WorkspaceCleanup extends Command {
9
+ // eslint-disable-next-line no-restricted-syntax
10
+ static description = 'Cleanup all expired temporary workspaces';
11
+ // eslint-disable-next-line no-restricted-syntax
12
+ static examples = ['<%= config.bin %> workspace cleanup'];
13
+ async run() {
14
+ const response = await daemonCleanupExpiredWorkspaces({});
15
+ if (!response.success) {
16
+ this.error('Cleanup failed');
17
+ }
18
+ if (response.cleanedCount === 0) {
19
+ this.log('No expired workspaces to clean up');
20
+ return;
21
+ }
22
+ this.log(`Cleaned up ${response.cleanedCount} expired workspace(s)`);
23
+ if (response.failedPaths.length > 0) {
24
+ this.warn(`Failed to clean up ${response.failedPaths.length} workspace(s):`);
25
+ for (const path of response.failedPaths) {
26
+ this.warn(` - ${path}`);
27
+ }
28
+ }
29
+ }
30
+ }
31
+ //# sourceMappingURL=cleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../src/commands/workspace/cleanup.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EAAE,8BAA8B,EAAE,MAAM,mDAAmD,CAAA;AAElG;;GAEG;AACH,qFAAqF;AACrF,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,OAAO;IACnD,gDAAgD;IAChD,MAAM,CAAU,WAAW,GAAG,0CAA0C,CAAA;IAExE,gDAAgD;IAChD,MAAM,CAAU,QAAQ,GAAG,CAAC,qCAAqC,CAAC,CAAA;IAE3D,KAAK,CAAC,GAAG;QACd,MAAM,QAAQ,GAAG,MAAM,8BAA8B,CAAC,EAAE,CAAC,CAAA;QAEzD,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAC9B,CAAC;QAED,IAAI,QAAQ,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;YAC7C,OAAM;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,YAAY,uBAAuB,CAAC,CAAA;QAEpE,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CACP,sBAAsB,QAAQ,CAAC,WAAW,CAAC,MAAM,gBAAgB,CAClE,CAAA;YACD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;IACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { Command } from '@oclif/core';
2
+ /**
3
+ * Close and remove a temporary workspace
4
+ */
5
+ export default class WorkspaceClose extends Command {
6
+ static description: string;
7
+ static examples: string[];
8
+ static args: {
9
+ path: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
10
+ };
11
+ static flags: {
12
+ force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=close.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../../src/commands/workspace/close.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAIlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IAEjD,OAAgB,WAAW,SAA2C;IAGtE,OAAgB,QAAQ,WAGvB;IAGD,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,KAAK;;MAMpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAoBlC"}
@@ -0,0 +1,49 @@
1
+ // eslint-disable-next-line import/order
2
+ import { Args, Command, Flags } from '@oclif/core';
3
+ import { daemonCloseTempWorkspace } from '../../daemon/daemon-close-temp-workspace.js';
4
+ /**
5
+ * Close and remove a temporary workspace
6
+ */
7
+ // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
8
+ export default class WorkspaceClose extends Command {
9
+ // eslint-disable-next-line no-restricted-syntax
10
+ static description = 'Close and remove a temporary workspace';
11
+ // eslint-disable-next-line no-restricted-syntax
12
+ static examples = [
13
+ '<%= config.bin %> workspace close /tmp/centy-workspace-abc123',
14
+ '<%= config.bin %> workspace close /tmp/centy-workspace-abc123 --force',
15
+ ];
16
+ // eslint-disable-next-line no-restricted-syntax
17
+ static args = {
18
+ path: Args.string({
19
+ description: 'Path to the workspace to close',
20
+ required: true,
21
+ }),
22
+ };
23
+ // eslint-disable-next-line no-restricted-syntax
24
+ static flags = {
25
+ force: Flags.boolean({
26
+ char: 'f',
27
+ description: 'Force removal even if VS Code may be open',
28
+ default: false,
29
+ }),
30
+ };
31
+ async run() {
32
+ const { args, flags } = await this.parse(WorkspaceClose);
33
+ const response = await daemonCloseTempWorkspace({
34
+ workspacePath: args.path,
35
+ force: flags.force,
36
+ });
37
+ if (!response.success) {
38
+ this.error(response.error);
39
+ }
40
+ this.log(`Workspace closed: ${args.path}`);
41
+ if (response.worktreeRemoved) {
42
+ this.log('Git worktree removed');
43
+ }
44
+ if (response.registryRemoved) {
45
+ this.log('Registry entry removed');
46
+ }
47
+ }
48
+ }
49
+ //# sourceMappingURL=close.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close.js","sourceRoot":"","sources":["../../../src/commands/workspace/close.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAA;AAEtF;;GAEG;AACH,qFAAqF;AACrF,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IACjD,gDAAgD;IAChD,MAAM,CAAU,WAAW,GAAG,wCAAwC,CAAA;IAEtE,gDAAgD;IAChD,MAAM,CAAU,QAAQ,GAAG;QACzB,+DAA+D;QAC/D,uEAAuE;KACxE,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,IAAI,GAAG;QACrB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,gCAAgC;YAC7C,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,KAAK,GAAG;QACtB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,2CAA2C;YACxD,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QAExD,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC;YAC9C,aAAa,EAAE,IAAI,CAAC,IAAI;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1C,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;QAClC,CAAC;QACD,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;QACpC,CAAC;IACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Command } from '@oclif/core';
2
+ /**
3
+ * List all temporary workspaces
4
+ */
5
+ export default class WorkspaceList extends Command {
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: {
9
+ project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
+ 'include-expired': import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
+ all: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/workspace/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AAM5C;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAEhD,OAAgB,WAAW,SAAkC;IAG7D,OAAgB,QAAQ,WAIvB;IAGD,OAAgB,KAAK;;;;MAUpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwClC"}
@@ -0,0 +1,67 @@
1
+ // eslint-disable-next-line import/order
2
+ import { Command, Flags } from '@oclif/core';
3
+ import { daemonListTempWorkspaces } from '../../daemon/daemon-list-temp-workspaces.js';
4
+ import { projectFlag } from '../../flags/project-flag.js';
5
+ import { resolveProjectPath } from '../../utils/resolve-project-path.js';
6
+ /**
7
+ * List all temporary workspaces
8
+ */
9
+ // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
10
+ export default class WorkspaceList extends Command {
11
+ // eslint-disable-next-line no-restricted-syntax
12
+ static description = 'List all temporary workspaces';
13
+ // eslint-disable-next-line no-restricted-syntax
14
+ static examples = [
15
+ '<%= config.bin %> workspace list',
16
+ '<%= config.bin %> workspace list --include-expired',
17
+ '<%= config.bin %> workspace list --project ./my-project',
18
+ ];
19
+ // eslint-disable-next-line no-restricted-syntax
20
+ static flags = {
21
+ project: projectFlag,
22
+ 'include-expired': Flags.boolean({
23
+ description: 'Include expired workspaces',
24
+ default: false,
25
+ }),
26
+ all: Flags.boolean({
27
+ description: 'Show workspaces from all projects',
28
+ default: false,
29
+ }),
30
+ };
31
+ async run() {
32
+ const { flags } = await this.parse(WorkspaceList);
33
+ let sourceProjectPath;
34
+ if (!flags.all && flags.project) {
35
+ sourceProjectPath = await resolveProjectPath(flags.project);
36
+ }
37
+ else if (!flags.all) {
38
+ try {
39
+ sourceProjectPath = await resolveProjectPath(undefined);
40
+ }
41
+ catch {
42
+ // If no project can be resolved, show all workspaces
43
+ sourceProjectPath = undefined;
44
+ }
45
+ }
46
+ const response = await daemonListTempWorkspaces({
47
+ includeExpired: flags['include-expired'],
48
+ sourceProjectPath,
49
+ });
50
+ if (response.workspaces.length === 0) {
51
+ this.log('No temporary workspaces found');
52
+ return;
53
+ }
54
+ this.log(`Found ${response.totalCount} workspace(s):`);
55
+ for (const ws of response.workspaces) {
56
+ this.log(`\n Path: ${ws.workspacePath}`);
57
+ this.log(` Issue: #${ws.issueDisplayNumber} - ${ws.issueTitle}`);
58
+ this.log(` Action: ${ws.action.toLowerCase()}`);
59
+ this.log(` Created: ${ws.createdAt}`);
60
+ this.log(` Expires: ${ws.expiresAt}`);
61
+ }
62
+ if (response.expiredCount > 0) {
63
+ this.log(`\n${response.expiredCount} expired workspace(s) not shown. Use --include-expired to see them.`);
64
+ }
65
+ }
66
+ }
67
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/workspace/list.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAA;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAExE;;GAEG;AACH,qFAAqF;AACrF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAChD,gDAAgD;IAChD,MAAM,CAAU,WAAW,GAAG,+BAA+B,CAAA;IAE7D,gDAAgD;IAChD,MAAM,CAAU,QAAQ,GAAG;QACzB,kCAAkC;QAClC,oDAAoD;QACpD,yDAAyD;KAC1D,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAU,KAAK,GAAG;QACtB,OAAO,EAAE,WAAW;QACpB,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,4BAA4B;YACzC,OAAO,EAAE,KAAK;SACf,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YACjB,WAAW,EAAE,mCAAmC;YAChD,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAEjD,IAAI,iBAAqC,CAAA;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChC,iBAAiB,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC7D,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,iBAAiB,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAA;YACzD,CAAC;YAAC,MAAM,CAAC;gBACP,qDAAqD;gBACrD,iBAAiB,GAAG,SAAS,CAAA;YAC/B,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC;YAC9C,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC;YACxC,iBAAiB;SAClB,CAAC,CAAA;QAEF,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;YACzC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,UAAU,gBAAgB,CAAC,CAAA;QACtD,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,aAAa,EAAE,CAAC,CAAA;YACzC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,kBAAkB,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC,CAAA;YACjE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YAChD,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,CAAC,CAAA;YACtC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,CAAC,CAAA;QACxC,CAAC;QAED,IAAI,QAAQ,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CACN,KAAK,QAAQ,CAAC,YAAY,qEAAqE,CAChG,CAAA;QACH,CAAC;IACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { Command } from '@oclif/core';
2
+ /**
3
+ * Open an issue in a temporary VS Code workspace
4
+ */
5
+ export default class WorkspaceOpen extends Command {
6
+ static description: string;
7
+ static examples: string[];
8
+ static args: {
9
+ issueId: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
10
+ };
11
+ static flags: {
12
+ project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ action: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
14
+ ttl: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ agent: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
+ };
17
+ run(): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=open.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../../src/commands/workspace/open.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAUlD;;GAEG;AAEH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,OAAO;IAEhD,OAAgB,WAAW,SAAmD;IAG9E,OAAgB,QAAQ,WAIvB;IAGD,OAAgB,IAAI;;MAKnB;IAGD,OAAgB,KAAK;;;;;MAcpB;IAEY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAoClC"}
@@ -0,0 +1,76 @@
1
+ // eslint-disable-next-line import/order
2
+ import { Args, Command, Flags } from '@oclif/core';
3
+ import { daemonOpenInTempVscode } from '../../daemon/daemon-open-in-temp-vscode.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
+ * Open an issue in a temporary VS Code workspace
9
+ */
10
+ // eslint-disable-next-line custom/no-default-class-export, class-export/class-export
11
+ export default class WorkspaceOpen extends Command {
12
+ // eslint-disable-next-line no-restricted-syntax
13
+ static description = 'Open an issue in a temporary VS Code workspace';
14
+ // eslint-disable-next-line no-restricted-syntax
15
+ static examples = [
16
+ '<%= config.bin %> workspace open 1',
17
+ '<%= config.bin %> workspace open 1 --action implement',
18
+ '<%= config.bin %> workspace open abc-123 --ttl 24',
19
+ ];
20
+ // eslint-disable-next-line no-restricted-syntax
21
+ static args = {
22
+ issueId: Args.string({
23
+ description: 'Issue ID or display number',
24
+ required: true,
25
+ }),
26
+ };
27
+ // eslint-disable-next-line no-restricted-syntax
28
+ static flags = {
29
+ project: projectFlag,
30
+ action: Flags.string({
31
+ char: 'a',
32
+ description: 'Action for the AI agent',
33
+ options: ['plan', 'implement'],
34
+ default: 'plan',
35
+ }),
36
+ ttl: Flags.integer({
37
+ description: 'Workspace TTL in hours (default: 12)',
38
+ }),
39
+ agent: Flags.string({
40
+ description: 'Agent name to use (default: project default)',
41
+ }),
42
+ };
43
+ async run() {
44
+ const { args, flags } = await this.parse(WorkspaceOpen);
45
+ const cwd = await resolveProjectPath(flags.project);
46
+ try {
47
+ await ensureInitialized(cwd);
48
+ }
49
+ catch (error) {
50
+ if (error instanceof NotInitializedError) {
51
+ this.error(error.message);
52
+ }
53
+ throw error instanceof Error ? error : new Error(String(error));
54
+ }
55
+ const response = await daemonOpenInTempVscode({
56
+ projectPath: cwd,
57
+ issueId: args.issueId,
58
+ action: flags.action === 'implement' ? 'IMPLEMENT' : 'PLAN',
59
+ agentName: flags.agent,
60
+ ttlHours: flags.ttl,
61
+ });
62
+ if (!response.success) {
63
+ this.error(response.error);
64
+ }
65
+ this.log(`Created workspace at: ${response.workspacePath}`);
66
+ this.log(`Issue: #${response.issueDisplayNumber} - ${response.issueTitle}`);
67
+ this.log(`Expires: ${response.expiresAt}`);
68
+ if (response.vscodeOpened) {
69
+ this.log('VS Code opened successfully');
70
+ }
71
+ else {
72
+ this.warn('VS Code could not be opened automatically. Open manually.');
73
+ }
74
+ }
75
+ }
76
+ //# sourceMappingURL=open.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/commands/workspace/open.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { CleanupExpiredWorkspacesRequest, CleanupExpiredWorkspacesResponse } from './types.js';
2
+ /**
3
+ * Cleanup all expired temporary workspaces
4
+ */
5
+ export declare function daemonCleanupExpiredWorkspaces(request: CleanupExpiredWorkspacesRequest): Promise<CleanupExpiredWorkspacesResponse>;
6
+ //# sourceMappingURL=daemon-cleanup-expired-workspaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-cleanup-expired-workspaces.d.ts","sourceRoot":"","sources":["../../src/daemon/daemon-cleanup-expired-workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,gCAAgC,EACjC,MAAM,YAAY,CAAA;AAGnB;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,gCAAgC,CAAC,CAU3C"}
@@ -0,0 +1,17 @@
1
+ import { getDaemonClient } from './load-proto.js';
2
+ /**
3
+ * Cleanup all expired temporary workspaces
4
+ */
5
+ export function daemonCleanupExpiredWorkspaces(request) {
6
+ return new Promise((resolve, reject) => {
7
+ getDaemonClient().cleanupExpiredWorkspaces(request, (error, response) => {
8
+ if (error !== null) {
9
+ reject(error);
10
+ }
11
+ else {
12
+ resolve(response);
13
+ }
14
+ });
15
+ });
16
+ }
17
+ //# sourceMappingURL=daemon-cleanup-expired-workspaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-cleanup-expired-workspaces.js","sourceRoot":"","sources":["../../src/daemon/daemon-cleanup-expired-workspaces.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAC5C,OAAwC;IAExC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,eAAe,EAAE,CAAC,wBAAwB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACtE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,QAAQ,CAAC,CAAA;YACnB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { CloseTempWorkspaceRequest, CloseTempWorkspaceResponse } from './types.js';
2
+ /**
3
+ * Close and remove a temporary workspace
4
+ */
5
+ export declare function daemonCloseTempWorkspace(request: CloseTempWorkspaceRequest): Promise<CloseTempWorkspaceResponse>;
6
+ //# sourceMappingURL=daemon-close-temp-workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-close-temp-workspace.d.ts","sourceRoot":"","sources":["../../src/daemon/daemon-close-temp-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,YAAY,CAAA;AAGnB;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,0BAA0B,CAAC,CAUrC"}
@@ -0,0 +1,17 @@
1
+ import { getDaemonClient } from './load-proto.js';
2
+ /**
3
+ * Close and remove a temporary workspace
4
+ */
5
+ export function daemonCloseTempWorkspace(request) {
6
+ return new Promise((resolve, reject) => {
7
+ getDaemonClient().closeTempWorkspace(request, (error, response) => {
8
+ if (error !== null) {
9
+ reject(error);
10
+ }
11
+ else {
12
+ resolve(response);
13
+ }
14
+ });
15
+ });
16
+ }
17
+ //# sourceMappingURL=daemon-close-temp-workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-close-temp-workspace.js","sourceRoot":"","sources":["../../src/daemon/daemon-close-temp-workspace.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAkC;IAElC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,eAAe,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YAChE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,QAAQ,CAAC,CAAA;YACnB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ListTempWorkspacesRequest, ListTempWorkspacesResponse } from './types.js';
2
+ /**
3
+ * List all temporary workspaces
4
+ */
5
+ export declare function daemonListTempWorkspaces(request: ListTempWorkspacesRequest): Promise<ListTempWorkspacesResponse>;
6
+ //# sourceMappingURL=daemon-list-temp-workspaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-list-temp-workspaces.d.ts","sourceRoot":"","sources":["../../src/daemon/daemon-list-temp-workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,YAAY,CAAA;AAGnB;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,0BAA0B,CAAC,CAUrC"}
@@ -0,0 +1,17 @@
1
+ import { getDaemonClient } from './load-proto.js';
2
+ /**
3
+ * List all temporary workspaces
4
+ */
5
+ export function daemonListTempWorkspaces(request) {
6
+ return new Promise((resolve, reject) => {
7
+ getDaemonClient().listTempWorkspaces(request, (error, response) => {
8
+ if (error !== null) {
9
+ reject(error);
10
+ }
11
+ else {
12
+ resolve(response);
13
+ }
14
+ });
15
+ });
16
+ }
17
+ //# sourceMappingURL=daemon-list-temp-workspaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-list-temp-workspaces.js","sourceRoot":"","sources":["../../src/daemon/daemon-list-temp-workspaces.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAkC;IAElC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,eAAe,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YAChE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,QAAQ,CAAC,CAAA;YACnB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { OpenInTempVscodeRequest, OpenInTempVscodeResponse } from './types.js';
2
+ /**
3
+ * Open a project in a temporary VS Code workspace
4
+ */
5
+ export declare function daemonOpenInTempVscode(request: OpenInTempVscodeRequest): Promise<OpenInTempVscodeResponse>;
6
+ //# sourceMappingURL=daemon-open-in-temp-vscode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-open-in-temp-vscode.d.ts","sourceRoot":"","sources":["../../src/daemon/daemon-open-in-temp-vscode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,YAAY,CAAA;AAGnB;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,wBAAwB,CAAC,CAUnC"}
@@ -0,0 +1,17 @@
1
+ import { getDaemonClient } from './load-proto.js';
2
+ /**
3
+ * Open a project in a temporary VS Code workspace
4
+ */
5
+ export function daemonOpenInTempVscode(request) {
6
+ return new Promise((resolve, reject) => {
7
+ getDaemonClient().openInTempVscode(request, (error, response) => {
8
+ if (error !== null) {
9
+ reject(error);
10
+ }
11
+ else {
12
+ resolve(response);
13
+ }
14
+ });
15
+ });
16
+ }
17
+ //# sourceMappingURL=daemon-open-in-temp-vscode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-open-in-temp-vscode.js","sourceRoot":"","sources":["../../src/daemon/daemon-open-in-temp-vscode.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAgC;IAEhC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,eAAe,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC9D,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,QAAQ,CAAC,CAAA;YACnB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { ServiceError } from '@grpc/grpc-js';
2
- import type { InitRequest, InitResponse, GetReconciliationPlanRequest, ReconciliationPlan, ExecuteReconciliationRequest, IsInitializedRequest, IsInitializedResponse, CreateIssueRequest, CreateIssueResponse, GetManifestRequest, Manifest, GetConfigRequest, Config, UpdateConfigRequest, UpdateConfigResponse, GetIssueRequest, GetIssueByDisplayNumberRequest, GetIssuesByUuidRequest, GetIssuesByUuidResponse, Issue, ListIssuesRequest, ListIssuesResponse, UpdateIssueRequest, UpdateIssueResponse, DeleteIssueRequest, DeleteIssueResponse, MoveIssueRequest, MoveIssueResponse, DuplicateIssueRequest, DuplicateIssueResponse, CreateDocRequest, CreateDocResponse, GetDocRequest, GetDocsBySlugRequest, GetDocsBySlugResponse, Doc, ListDocsRequest, ListDocsResponse, UpdateDocRequest, UpdateDocResponse, DeleteDocRequest, DeleteDocResponse, MoveDocRequest, MoveDocResponse, DuplicateDocRequest, DuplicateDocResponse, AddAssetRequest, AddAssetResponse, ListAssetsRequest, ListAssetsResponse, GetAssetRequest, GetAssetResponse, DeleteAssetRequest, DeleteAssetResponse, ListSharedAssetsRequest, GetPlanRequest, GetPlanResponse, UpdatePlanRequest, UpdatePlanResponse, DeletePlanRequest, DeletePlanResponse, ListProjectsRequest, ListProjectsResponse, RegisterProjectRequest, RegisterProjectResponse, UntrackProjectRequest, UntrackProjectResponse, GetProjectInfoRequest, GetProjectInfoResponse, SetProjectFavoriteRequest, SetProjectFavoriteResponse, SetProjectArchivedRequest, SetProjectArchivedResponse, GetDaemonInfoRequest, DaemonInfo, GetProjectVersionRequest, ProjectVersionInfo, UpdateVersionRequest, UpdateVersionResponse, GetNextIssueNumberRequest, GetNextIssueNumberResponse, ShutdownRequest, ShutdownResponse, RestartRequest, RestartResponse, CreatePrRequest, CreatePrResponse, GetPrRequest, GetPrByDisplayNumberRequest, GetPrsByUuidRequest, GetPrsByUuidResponse, PullRequest, ListPrsRequest, ListPrsResponse, UpdatePrRequest, UpdatePrResponse, DeletePrRequest, DeletePrResponse, GetNextPrNumberRequest, GetNextPrNumberResponse, GetFeatureStatusRequest, GetFeatureStatusResponse, ListUncompactedIssuesRequest, ListUncompactedIssuesResponse, GetInstructionRequest, GetInstructionResponse, GetCompactRequest, GetCompactResponse, UpdateCompactRequest, UpdateCompactResponse, SaveMigrationRequest, SaveMigrationResponse, MarkIssuesCompactedRequest, MarkIssuesCompactedResponse, SetProjectOrganizationRequest, SetProjectOrganizationResponse, SetProjectUserTitleRequest, SetProjectUserTitleResponse, SetProjectTitleRequest, SetProjectTitleResponse, CreateOrganizationRequest, CreateOrganizationResponse, ListOrganizationsRequest, ListOrganizationsResponse, GetOrganizationRequest, GetOrganizationResponse, UpdateOrganizationRequest, UpdateOrganizationResponse, DeleteOrganizationRequest, DeleteOrganizationResponse, CreateOrgIssueRequest, CreateOrgIssueResponse, GetOrgIssueRequest, GetOrgIssueByDisplayNumberRequest, OrgIssue, ListOrgIssuesRequest, ListOrgIssuesResponse, UpdateOrgIssueRequest, UpdateOrgIssueResponse, DeleteOrgIssueRequest, DeleteOrgIssueResponse, GetOrgConfigRequest, OrgConfig, UpdateOrgConfigRequest, UpdateOrgConfigResponse, User, CreateUserRequest, CreateUserResponse, GetUserRequest, ListUsersRequest, ListUsersResponse, UpdateUserRequest, UpdateUserResponse, DeleteUserRequest, DeleteUserResponse, SyncUsersRequest, SyncUsersResponse, AssignIssueRequest, AssignIssueResponse, UnassignIssueRequest, UnassignIssueResponse, SpawnAgentRequest, SpawnAgentResponse } from './types.js';
2
+ import type { InitRequest, InitResponse, GetReconciliationPlanRequest, ReconciliationPlan, ExecuteReconciliationRequest, IsInitializedRequest, IsInitializedResponse, CreateIssueRequest, CreateIssueResponse, GetManifestRequest, Manifest, GetConfigRequest, Config, UpdateConfigRequest, UpdateConfigResponse, GetIssueRequest, GetIssueByDisplayNumberRequest, GetIssuesByUuidRequest, GetIssuesByUuidResponse, Issue, ListIssuesRequest, ListIssuesResponse, UpdateIssueRequest, UpdateIssueResponse, DeleteIssueRequest, DeleteIssueResponse, MoveIssueRequest, MoveIssueResponse, DuplicateIssueRequest, DuplicateIssueResponse, CreateDocRequest, CreateDocResponse, GetDocRequest, GetDocsBySlugRequest, GetDocsBySlugResponse, Doc, ListDocsRequest, ListDocsResponse, UpdateDocRequest, UpdateDocResponse, DeleteDocRequest, DeleteDocResponse, MoveDocRequest, MoveDocResponse, DuplicateDocRequest, DuplicateDocResponse, AddAssetRequest, AddAssetResponse, ListAssetsRequest, ListAssetsResponse, GetAssetRequest, GetAssetResponse, DeleteAssetRequest, DeleteAssetResponse, ListSharedAssetsRequest, GetPlanRequest, GetPlanResponse, UpdatePlanRequest, UpdatePlanResponse, DeletePlanRequest, DeletePlanResponse, ListProjectsRequest, ListProjectsResponse, RegisterProjectRequest, RegisterProjectResponse, UntrackProjectRequest, UntrackProjectResponse, GetProjectInfoRequest, GetProjectInfoResponse, SetProjectFavoriteRequest, SetProjectFavoriteResponse, SetProjectArchivedRequest, SetProjectArchivedResponse, GetDaemonInfoRequest, DaemonInfo, GetProjectVersionRequest, ProjectVersionInfo, UpdateVersionRequest, UpdateVersionResponse, GetNextIssueNumberRequest, GetNextIssueNumberResponse, ShutdownRequest, ShutdownResponse, RestartRequest, RestartResponse, CreatePrRequest, CreatePrResponse, GetPrRequest, GetPrByDisplayNumberRequest, GetPrsByUuidRequest, GetPrsByUuidResponse, PullRequest, ListPrsRequest, ListPrsResponse, UpdatePrRequest, UpdatePrResponse, DeletePrRequest, DeletePrResponse, GetNextPrNumberRequest, GetNextPrNumberResponse, GetFeatureStatusRequest, GetFeatureStatusResponse, ListUncompactedIssuesRequest, ListUncompactedIssuesResponse, GetInstructionRequest, GetInstructionResponse, GetCompactRequest, GetCompactResponse, UpdateCompactRequest, UpdateCompactResponse, SaveMigrationRequest, SaveMigrationResponse, MarkIssuesCompactedRequest, MarkIssuesCompactedResponse, SetProjectOrganizationRequest, SetProjectOrganizationResponse, SetProjectUserTitleRequest, SetProjectUserTitleResponse, SetProjectTitleRequest, SetProjectTitleResponse, CreateOrganizationRequest, CreateOrganizationResponse, ListOrganizationsRequest, ListOrganizationsResponse, GetOrganizationRequest, GetOrganizationResponse, UpdateOrganizationRequest, UpdateOrganizationResponse, DeleteOrganizationRequest, DeleteOrganizationResponse, CreateOrgIssueRequest, CreateOrgIssueResponse, GetOrgIssueRequest, GetOrgIssueByDisplayNumberRequest, OrgIssue, ListOrgIssuesRequest, ListOrgIssuesResponse, UpdateOrgIssueRequest, UpdateOrgIssueResponse, DeleteOrgIssueRequest, DeleteOrgIssueResponse, GetOrgConfigRequest, OrgConfig, UpdateOrgConfigRequest, UpdateOrgConfigResponse, User, CreateUserRequest, CreateUserResponse, GetUserRequest, ListUsersRequest, ListUsersResponse, UpdateUserRequest, UpdateUserResponse, DeleteUserRequest, DeleteUserResponse, SyncUsersRequest, SyncUsersResponse, AssignIssueRequest, AssignIssueResponse, UnassignIssueRequest, UnassignIssueResponse, SpawnAgentRequest, SpawnAgentResponse, OpenInTempVscodeRequest, OpenInTempVscodeResponse, ListTempWorkspacesRequest, ListTempWorkspacesResponse, CloseTempWorkspaceRequest, CloseTempWorkspaceResponse, CleanupExpiredWorkspacesRequest, CleanupExpiredWorkspacesResponse } from './types.js';
3
3
  interface CentyDaemonClient {
4
4
  init(request: InitRequest, callback: (error: ServiceError | null, response: InitResponse) => void): void;
5
5
  getReconciliationPlan(request: GetReconciliationPlanRequest, callback: (error: ServiceError | null, response: ReconciliationPlan) => void): void;
@@ -85,6 +85,10 @@ interface CentyDaemonClient {
85
85
  assignIssue(request: AssignIssueRequest, callback: (error: ServiceError | null, response: AssignIssueResponse) => void): void;
86
86
  unassignIssue(request: UnassignIssueRequest, callback: (error: ServiceError | null, response: UnassignIssueResponse) => void): void;
87
87
  spawnAgent(request: SpawnAgentRequest, callback: (error: ServiceError | null, response: SpawnAgentResponse) => void): void;
88
+ openInTempVscode(request: OpenInTempVscodeRequest, callback: (error: ServiceError | null, response: OpenInTempVscodeResponse) => void): void;
89
+ listTempWorkspaces(request: ListTempWorkspacesRequest, callback: (error: ServiceError | null, response: ListTempWorkspacesResponse) => void): void;
90
+ closeTempWorkspace(request: CloseTempWorkspaceRequest, callback: (error: ServiceError | null, response: CloseTempWorkspaceResponse) => void): void;
91
+ cleanupExpiredWorkspaces(request: CleanupExpiredWorkspacesRequest, callback: (error: ServiceError | null, response: CleanupExpiredWorkspacesResponse) => void): void;
88
92
  }
89
93
  /**
90
94
  * Load proto and create daemon client