centy 0.0.9 → 0.0.11

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 (71) hide show
  1. package/dist/commands/daemon/autostart.d.ts +14 -0
  2. package/dist/commands/daemon/autostart.d.ts.map +1 -0
  3. package/dist/commands/daemon/autostart.js +74 -0
  4. package/dist/commands/daemon/autostart.js.map +1 -0
  5. package/dist/commands/info.d.ts.map +1 -1
  6. package/dist/commands/info.js +3 -0
  7. package/dist/commands/info.js.map +1 -1
  8. package/dist/commands/list/projects.d.ts.map +1 -1
  9. package/dist/commands/list/projects.js +11 -2
  10. package/dist/commands/list/projects.js.map +1 -1
  11. package/dist/commands/project/favorite.d.ts +16 -0
  12. package/dist/commands/project/favorite.d.ts.map +1 -0
  13. package/dist/commands/project/favorite.js +39 -0
  14. package/dist/commands/project/favorite.js.map +1 -0
  15. package/dist/commands/restart.d.ts.map +1 -1
  16. package/dist/commands/restart.js +7 -16
  17. package/dist/commands/restart.js.map +1 -1
  18. package/dist/commands/shutdown.d.ts.map +1 -1
  19. package/dist/commands/shutdown.js +7 -21
  20. package/dist/commands/shutdown.js.map +1 -1
  21. package/dist/commands/start.d.ts.map +1 -1
  22. package/dist/commands/start.js +24 -14
  23. package/dist/commands/start.js.map +1 -1
  24. package/dist/daemon/daemon-control-service.d.ts +19 -0
  25. package/dist/daemon/daemon-control-service.d.ts.map +1 -0
  26. package/dist/daemon/daemon-control-service.js +56 -0
  27. package/dist/daemon/daemon-control-service.js.map +1 -0
  28. package/dist/daemon/daemon-set-project-favorite.d.ts +6 -0
  29. package/dist/daemon/daemon-set-project-favorite.d.ts.map +1 -0
  30. package/dist/daemon/daemon-set-project-favorite.js +17 -0
  31. package/dist/daemon/daemon-set-project-favorite.js.map +1 -0
  32. package/dist/daemon/load-proto.d.ts +2 -1
  33. package/dist/daemon/load-proto.d.ts.map +1 -1
  34. package/dist/daemon/load-proto.js.map +1 -1
  35. package/dist/daemon/types.d.ts +11 -0
  36. package/dist/daemon/types.d.ts.map +1 -1
  37. package/dist/hooks/prerun.d.ts.map +1 -1
  38. package/dist/hooks/prerun.js +12 -2
  39. package/dist/hooks/prerun.js.map +1 -1
  40. package/dist/lib/autostart/launchd.d.ts +13 -0
  41. package/dist/lib/autostart/launchd.d.ts.map +1 -0
  42. package/dist/lib/autostart/launchd.js +91 -0
  43. package/dist/lib/autostart/launchd.js.map +1 -0
  44. package/dist/tui/App.d.ts.map +1 -1
  45. package/dist/tui/App.js +16 -1
  46. package/dist/tui/App.js.map +1 -1
  47. package/dist/tui/components/domain/DaemonPanel.d.ts.map +1 -1
  48. package/dist/tui/components/domain/DaemonPanel.js +13 -4
  49. package/dist/tui/components/domain/DaemonPanel.js.map +1 -1
  50. package/dist/tui/components/domain/ProjectList.d.ts.map +1 -1
  51. package/dist/tui/components/domain/ProjectList.js +45 -9
  52. package/dist/tui/components/domain/ProjectList.js.map +1 -1
  53. package/dist/tui/hooks/useAutostart.d.ts +13 -0
  54. package/dist/tui/hooks/useAutostart.d.ts.map +1 -0
  55. package/dist/tui/hooks/useAutostart.js +96 -0
  56. package/dist/tui/hooks/useAutostart.js.map +1 -0
  57. package/dist/tui/hooks/useProjects.d.ts +1 -0
  58. package/dist/tui/hooks/useProjects.d.ts.map +1 -1
  59. package/dist/tui/hooks/useProjects.js +8 -0
  60. package/dist/tui/hooks/useProjects.js.map +1 -1
  61. package/dist/tui/services/daemon-service.d.ts +1 -0
  62. package/dist/tui/services/daemon-service.d.ts.map +1 -1
  63. package/dist/tui/services/daemon-service.js +17 -15
  64. package/dist/tui/services/daemon-service.js.map +1 -1
  65. package/dist/tui/state/app-state.d.ts +3 -0
  66. package/dist/tui/state/app-state.d.ts.map +1 -1
  67. package/dist/tui/state/app-state.js +5 -0
  68. package/dist/tui/state/app-state.js.map +1 -1
  69. package/oclif.manifest.json +85 -1
  70. package/package.json +1 -1
  71. package/proto/centy.proto +39 -9
@@ -19,6 +19,13 @@ export function useProjects() {
19
19
  const selectProject = useCallback((path) => {
20
20
  dispatch({ type: 'SELECT_PROJECT', path });
21
21
  }, [dispatch]);
22
+ const toggleFavorite = useCallback(async (path, isFavorite) => {
23
+ const result = await daemonService.setProjectFavorite(path, isFavorite);
24
+ if (result.success && result.data) {
25
+ // Update the project in the list
26
+ dispatch({ type: 'UPDATE_PROJECT', project: result.data });
27
+ }
28
+ }, [dispatch]);
22
29
  // Load projects when daemon connects
23
30
  useEffect(() => {
24
31
  if (state.daemonConnected && state.projects.length === 0) {
@@ -31,6 +38,7 @@ export function useProjects() {
31
38
  isLoading: state.isLoading,
32
39
  loadProjects,
33
40
  selectProject,
41
+ toggleFavorite,
34
42
  };
35
43
  }
36
44
  //# sourceMappingURL=useProjects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useProjects.js","sourceRoot":"","sources":["../../../src/tui/hooks/useProjects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAE7D,MAAM,UAAU,WAAW;IACzB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAA;IAEzC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC1C,IAAI,CAAC,KAAK,CAAC,eAAe;YAAE,OAAM;QAElC,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACrD,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QAEjD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAClC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3D,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACxB,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QACtD,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAA;IAErC,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,IAAY,EAAE,EAAE;QACf,QAAQ,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5C,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,qCAAqC;IACrC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,YAAY,EAAE,CAAA;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAEhE,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,YAAY;QACZ,aAAa;KACd,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"useProjects.js","sourceRoot":"","sources":["../../../src/tui/hooks/useProjects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAE7D,MAAM,UAAU,WAAW;IACzB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAA;IAEzC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC1C,IAAI,CAAC,KAAK,CAAC,eAAe;YAAE,OAAM;QAElC,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACrD,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QAEjD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAClC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3D,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACxB,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QACtD,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAA;IAErC,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,IAAY,EAAE,EAAE;QACf,QAAQ,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5C,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,MAAM,cAAc,GAAG,WAAW,CAChC,KAAK,EAAE,IAAY,EAAE,UAAmB,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACvE,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAClC,iCAAiC;YACjC,QAAQ,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,qCAAqC;IACrC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,YAAY,EAAE,CAAA;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAEhE,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,YAAY;QACZ,aAAa;QACb,cAAc;KACf,CAAA;AACH,CAAC"}
@@ -23,6 +23,7 @@ export declare class DaemonService {
23
23
  getDaemonInfo(): Promise<DaemonServiceResult<DaemonInfo>>;
24
24
  shutdown(delaySeconds?: number): Promise<DaemonServiceResult<ShutdownResponse>>;
25
25
  restart(delaySeconds?: number): Promise<DaemonServiceResult<RestartResponse>>;
26
+ setProjectFavorite(projectPath: string, isFavorite: boolean): Promise<DaemonServiceResult<ProjectInfo>>;
26
27
  }
27
28
  export declare const daemonService: DaemonService;
28
29
  //# sourceMappingURL=daemon-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"daemon-service.d.ts","sourceRoot":"","sources":["../../../src/tui/services/daemon-service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,KAAK,EACV,WAAW,EACX,KAAK,EACL,GAAG,EACH,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,eAAe,EAChB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,CAAC,CAAA;IACR,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,aAAa;IAClB,eAAe,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAIlE,YAAY,CAChB,YAAY,UAAQ,GACnB,OAAO,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC;IAaxC,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/C,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC;IAgBlC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC;IAYlE,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAYpE,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAazD,QAAQ,CACZ,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAa3C,OAAO,CACX,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;CAYjD;AAED,eAAO,MAAM,aAAa,eAAsB,CAAA"}
1
+ {"version":3,"file":"daemon-service.d.ts","sourceRoot":"","sources":["../../../src/tui/services/daemon-service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,KAAK,EACV,WAAW,EACX,KAAK,EACL,GAAG,EACH,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,eAAe,EAChB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,CAAC,CAAA;IACR,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,aAAa;IAClB,eAAe,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAIlE,YAAY,CAChB,YAAY,UAAQ,GACnB,OAAO,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC;IAaxC,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/C,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC;IAgBlC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC;IAYlE,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAYpE,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAazD,QAAQ,CACZ,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAI3C,OAAO,CACX,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAI1C,kBAAkB,CACtB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;CAoB7C;AAED,eAAO,MAAM,aAAa,eAAsB,CAAA"}
@@ -7,9 +7,9 @@ import { daemonListIssues } from '../../daemon/daemon-list-issues.js';
7
7
  import { daemonListDocs } from '../../daemon/daemon-list-docs.js';
8
8
  import { daemonGetConfig } from '../../daemon/daemon-get-config.js';
9
9
  import { daemonGetDaemonInfo } from '../../daemon/daemon-get-daemon-info.js';
10
- import { daemonShutdown } from '../../daemon/daemon-shutdown.js';
11
- import { daemonRestart } from '../../daemon/daemon-restart.js';
10
+ import { daemonControlService } from '../../daemon/daemon-control-service.js';
12
11
  import { checkDaemonConnection } from '../../daemon/check-daemon-connection.js';
12
+ import { daemonSetProjectFavorite } from '../../daemon/daemon-set-project-favorite.js';
13
13
  export class DaemonService {
14
14
  async checkConnection() {
15
15
  return checkDaemonConnection();
@@ -79,26 +79,28 @@ export class DaemonService {
79
79
  }
80
80
  }
81
81
  async shutdown(delaySeconds) {
82
- try {
83
- const response = await daemonShutdown({ delaySeconds });
84
- return { success: true, data: response };
85
- }
86
- catch (error) {
87
- return {
88
- success: false,
89
- error: error instanceof Error ? error.message : 'Failed to shutdown daemon',
90
- };
91
- }
82
+ return daemonControlService.shutdown({ delaySeconds });
92
83
  }
93
84
  async restart(delaySeconds) {
85
+ return daemonControlService.restart({ delaySeconds });
86
+ }
87
+ async setProjectFavorite(projectPath, isFavorite) {
94
88
  try {
95
- const response = await daemonRestart({ delaySeconds });
96
- return { success: true, data: response };
89
+ const response = await daemonSetProjectFavorite({
90
+ projectPath,
91
+ isFavorite,
92
+ });
93
+ if (!response.success) {
94
+ return { success: false, error: response.error };
95
+ }
96
+ return { success: true, data: response.project };
97
97
  }
98
98
  catch (error) {
99
99
  return {
100
100
  success: false,
101
- error: error instanceof Error ? error.message : 'Failed to restart daemon',
101
+ error: error instanceof Error
102
+ ? error.message
103
+ : 'Failed to set project favorite',
102
104
  };
103
105
  }
104
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"daemon-service.js","sourceRoot":"","sources":["../../../src/tui/services/daemon-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon-service.js","sourceRoot":"","sources":["../../../src/tui/services/daemon-service.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,9 @@ export type AppAction = {
30
30
  } | {
31
31
  type: 'SET_PROJECTS';
32
32
  projects: ProjectInfo[];
33
+ } | {
34
+ type: 'UPDATE_PROJECT';
35
+ project: ProjectInfo;
33
36
  } | {
34
37
  type: 'SELECT_PROJECT';
35
38
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"app-state.d.ts","sourceRoot":"","sources":["../../../src/tui/state/app-state.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,QAAQ,EACd,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,EACV,KAAK,EACL,GAAG,EACH,WAAW,EACX,MAAM,EACN,UAAU,EACX,MAAM,uBAAuB,CAAA;AAE9B,MAAM,WAAW,QAAQ;IAEvB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,UAAU,CAAA;IACtB,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC,CAAA;IAGxD,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAGlC,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;IAG7B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,YAAY,EAAE,MAAM,CAAA;IAGpB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAGpB,eAAe,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,WAAW,EAAE,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,KAAK,EAAE,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAA;AA4FrD,UAAU,eAAe;IACvB,KAAK,EAAE,QAAQ,CAAA;IACf,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;CAC9B;AAID,UAAU,gBAAgB;IACxB,QAAQ,EAAE,SAAS,CAAA;IACnB,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,sBAA8B,GAC/B,EAAE,gBAAgB,aAWlB;AAED,wBAAgB,WAAW,oBAM1B"}
1
+ {"version":3,"file":"app-state.d.ts","sourceRoot":"","sources":["../../../src/tui/state/app-state.tsx"],"names":[],"mappings":"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"}
@@ -42,6 +42,11 @@ function appReducer(state, action) {
42
42
  }
43
43
  case 'SET_PROJECTS':
44
44
  return { ...state, projects: action.projects };
45
+ case 'UPDATE_PROJECT':
46
+ return {
47
+ ...state,
48
+ projects: state.projects.map(p => p.path === action.project.path ? action.project : p),
49
+ };
45
50
  case 'SELECT_PROJECT':
46
51
  return {
47
52
  ...state,
@@ -1 +1 @@
1
- {"version":3,"file":"app-state.js","sourceRoot":"","sources":["../../../src/tui/state/app-state.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-state.js","sourceRoot":"","sources":["../../../src/tui/state/app-state.tsx"],"names":[],"mappings":"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"}
@@ -478,6 +478,51 @@
478
478
  "issue.js"
479
479
  ]
480
480
  },
481
+ "daemon:autostart": {
482
+ "aliases": [],
483
+ "args": {},
484
+ "description": "Configure daemon to start automatically on boot",
485
+ "examples": [
486
+ "<%= config.bin %> daemon autostart",
487
+ "<%= config.bin %> daemon autostart --enable",
488
+ "<%= config.bin %> daemon autostart --disable"
489
+ ],
490
+ "flags": {
491
+ "enable": {
492
+ "description": "Enable autostart on boot",
493
+ "exclusive": [
494
+ "disable"
495
+ ],
496
+ "name": "enable",
497
+ "allowNo": false,
498
+ "type": "boolean"
499
+ },
500
+ "disable": {
501
+ "description": "Disable autostart on boot",
502
+ "exclusive": [
503
+ "enable"
504
+ ],
505
+ "name": "disable",
506
+ "allowNo": false,
507
+ "type": "boolean"
508
+ }
509
+ },
510
+ "hasDynamicHelp": false,
511
+ "hiddenAliases": [],
512
+ "id": "daemon:autostart",
513
+ "pluginAlias": "centy",
514
+ "pluginName": "centy",
515
+ "pluginType": "core",
516
+ "strict": true,
517
+ "enableJsonFlag": false,
518
+ "isESM": true,
519
+ "relativePath": [
520
+ "dist",
521
+ "commands",
522
+ "daemon",
523
+ "autostart.js"
524
+ ]
525
+ },
481
526
  "delete:asset": {
482
527
  "aliases": [],
483
528
  "args": {
@@ -1006,6 +1051,45 @@
1006
1051
  "projects.js"
1007
1052
  ]
1008
1053
  },
1054
+ "project:favorite": {
1055
+ "aliases": [],
1056
+ "args": {
1057
+ "path": {
1058
+ "description": "Path to the project (defaults to current directory)",
1059
+ "name": "path",
1060
+ "required": false
1061
+ }
1062
+ },
1063
+ "description": "Mark a project as favorite or unfavorite",
1064
+ "examples": [
1065
+ "<%= config.bin %> project favorite",
1066
+ "<%= config.bin %> project favorite /path/to/project",
1067
+ "<%= config.bin %> project favorite --off"
1068
+ ],
1069
+ "flags": {
1070
+ "off": {
1071
+ "description": "Remove from favorites",
1072
+ "name": "off",
1073
+ "allowNo": false,
1074
+ "type": "boolean"
1075
+ }
1076
+ },
1077
+ "hasDynamicHelp": false,
1078
+ "hiddenAliases": [],
1079
+ "id": "project:favorite",
1080
+ "pluginAlias": "centy",
1081
+ "pluginName": "centy",
1082
+ "pluginType": "core",
1083
+ "strict": true,
1084
+ "enableJsonFlag": false,
1085
+ "isESM": true,
1086
+ "relativePath": [
1087
+ "dist",
1088
+ "commands",
1089
+ "project",
1090
+ "favorite.js"
1091
+ ]
1092
+ },
1009
1093
  "register:project": {
1010
1094
  "aliases": [],
1011
1095
  "args": {
@@ -1199,5 +1283,5 @@
1199
1283
  ]
1200
1284
  }
1201
1285
  },
1202
- "version": "0.0.9"
1286
+ "version": "0.0.11"
1203
1287
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "centy",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "description": "CLI for managing project issues and docs via code in the .centy folder",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/proto/centy.proto CHANGED
@@ -40,6 +40,9 @@ service CentyDaemon {
40
40
  // Read configuration
41
41
  rpc GetConfig(GetConfigRequest) returns (Config);
42
42
 
43
+ // Update configuration
44
+ rpc UpdateConfig(UpdateConfigRequest) returns (UpdateConfigResponse);
45
+
43
46
  // Check if centy is initialized in a directory
44
47
  rpc IsInitialized(IsInitializedRequest) returns (IsInitializedResponse);
45
48
 
@@ -91,6 +94,9 @@ service CentyDaemon {
91
94
  // Get info about a specific project
92
95
  rpc GetProjectInfo(GetProjectInfoRequest) returns (GetProjectInfoResponse);
93
96
 
97
+ // Set project favorite status
98
+ rpc SetProjectFavorite(SetProjectFavoriteRequest) returns (SetProjectFavoriteResponse);
99
+
94
100
  // ============ Version RPCs ============
95
101
 
96
102
  // Get daemon version info
@@ -306,15 +312,6 @@ message Manifest {
306
312
  string centy_version = 2;
307
313
  string created_at = 3;
308
314
  string updated_at = 4;
309
- repeated ManagedFile managed_files = 5;
310
- }
311
-
312
- message ManagedFile {
313
- string path = 1;
314
- string hash = 2;
315
- string version = 3;
316
- string created_at = 4;
317
- FileType file_type = 5;
318
315
  }
319
316
 
320
317
  enum FileType {
@@ -343,6 +340,9 @@ message Config {
343
340
  repeated string allowed_states = 4; // Allowed status values (default: ["open", "in-progress", "closed"])
344
341
  string default_state = 5; // Default state for new issues (default: "open")
345
342
  string version = 6; // Project version (semver, empty = daemon default)
343
+ map<string, string> state_colors = 7; // State name → hex color (e.g., "open" → "#10b981")
344
+ map<string, string> priority_colors = 8; // Priority level → hex color (e.g., "1" → "#ef4444")
345
+ LlmConfig llm = 9; // LLM-related settings
346
346
  }
347
347
 
348
348
  message CustomFieldDefinition {
@@ -353,6 +353,23 @@ message CustomFieldDefinition {
353
353
  repeated string enum_values = 5; // For enum type
354
354
  }
355
355
 
356
+ message LlmConfig {
357
+ bool auto_close_on_complete = 1; // Auto-close issues when marked complete by LLM
358
+ bool update_status_on_start = 2; // Update status to in-progress when LLM starts work
359
+ bool allow_direct_edits = 3; // Allow LLM to directly edit issue files
360
+ }
361
+
362
+ message UpdateConfigRequest {
363
+ string project_path = 1;
364
+ Config config = 2;
365
+ }
366
+
367
+ message UpdateConfigResponse {
368
+ bool success = 1;
369
+ string error = 2;
370
+ Config config = 3; // The saved config (with any normalization applied)
371
+ }
372
+
356
373
  // ============ Utility Messages ============
357
374
 
358
375
  message IsInitializedRequest {
@@ -520,6 +537,7 @@ message ProjectInfo {
520
537
  uint32 doc_count = 5; // Fetched live from .centy/docs/
521
538
  bool initialized = 6; // Fetched live (manifest exists)
522
539
  string name = 7; // Fetched live (directory name)
540
+ bool is_favorite = 8; // User-marked favorite status
523
541
  }
524
542
 
525
543
  message ListProjectsRequest {
@@ -559,6 +577,17 @@ message GetProjectInfoResponse {
559
577
  ProjectInfo project = 2;
560
578
  }
561
579
 
580
+ message SetProjectFavoriteRequest {
581
+ string project_path = 1;
582
+ bool is_favorite = 2;
583
+ }
584
+
585
+ message SetProjectFavoriteResponse {
586
+ bool success = 1;
587
+ string error = 2;
588
+ ProjectInfo project = 3; // The updated project info
589
+ }
590
+
562
591
  // ============ Version Messages ============
563
592
 
564
593
  message GetDaemonInfoRequest {}
@@ -566,6 +595,7 @@ message GetDaemonInfoRequest {}
566
595
  message DaemonInfo {
567
596
  string version = 1; // Current daemon version (e.g., "0.1.0")
568
597
  repeated string available_versions = 2; // All versions we can migrate to
598
+ string binary_path = 3; // Absolute path to the running daemon binary
569
599
  }
570
600
 
571
601
  message GetProjectVersionRequest {