centy 0.0.1 → 0.0.2

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.
@@ -68,10 +68,13 @@ export interface CreateIssueRequest {
68
68
  priority: number;
69
69
  status: string;
70
70
  customFields: Record<string, string>;
71
+ template?: string;
71
72
  }
72
73
  export interface CreateIssueResponse {
73
74
  success: boolean;
74
75
  error: string;
76
+ id: string;
77
+ displayNumber: number;
75
78
  issueNumber: string;
76
79
  createdFiles: string[];
77
80
  manifest?: Manifest;
@@ -91,6 +94,10 @@ export interface GetConfigRequest {
91
94
  export interface Config {
92
95
  customFields: CustomFieldDefinition[];
93
96
  defaults: Record<string, string>;
97
+ priorityLevels: number;
98
+ allowedStates: string[];
99
+ defaultState: string;
100
+ version: string;
94
101
  }
95
102
  export interface CustomFieldDefinition {
96
103
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/daemon/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/daemon/types.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,uBAAuB,CAAA;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,QAAQ,EAAE,CAAA;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,OAAO,EAAE,QAAQ,EAAE,CAAA;IACnB,QAAQ,EAAE,QAAQ,EAAE,CAAA;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,cAAc,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,uBAAuB,CAAA;CACpC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,uBAAuB,GAAG,gBAAgB,GAAG,qBAAqB,CAAA;IAC5E,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,WAAW,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,uBAAuB,GAAG,gBAAgB,GAAG,qBAAqB,CAAA;CAC7E;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB;AAID,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAA;CACpB;AAID,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAA;CACpB;AAID,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,YAAY,EAAE,qBAAqB,EAAE,CAAA;IACrC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAID,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,aAAa,CAAA;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACtC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAID,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,WAAW,CAAA;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAID,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,KAAK,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,KAAK,CAAA;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAA;CACpB;AAID,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,OAAO,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,WAAW,CAAA;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,WAAW,CAAA;CACrB;AAKD,MAAM,WAAW,oBAAoB;CAAG;AAExC,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,OAAO,GAAG,gBAAgB,GAAG,eAAe,CAAA;IACxD,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B"}
@@ -1050,5 +1050,5 @@
1050
1050
  ]
1051
1051
  }
1052
1052
  },
1053
- "version": "0.0.1"
1053
+ "version": "0.0.2"
1054
1054
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "centy",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
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",
@@ -17,6 +17,7 @@
17
17
  "files": [
18
18
  "bin",
19
19
  "dist",
20
+ "proto",
20
21
  "oclif.manifest.json"
21
22
  ],
22
23
  "keywords": [
@@ -0,0 +1,585 @@
1
+ syntax = "proto3";
2
+
3
+ package centy;
4
+
5
+ // CentyDaemon service - manages .centy folder operations
6
+ service CentyDaemon {
7
+ // Initialize a .centy folder in the specified directory
8
+ rpc Init(InitRequest) returns (InitResponse);
9
+
10
+ // Get reconciliation plan without executing it
11
+ rpc GetReconciliationPlan(GetReconciliationPlanRequest) returns (ReconciliationPlan);
12
+
13
+ // Execute reconciliation with user decisions
14
+ rpc ExecuteReconciliation(ExecuteReconciliationRequest) returns (InitResponse);
15
+
16
+ // Create a new issue
17
+ rpc CreateIssue(CreateIssueRequest) returns (CreateIssueResponse);
18
+
19
+ // Get a single issue by ID (UUID or legacy number)
20
+ rpc GetIssue(GetIssueRequest) returns (Issue);
21
+
22
+ // Get a single issue by display number (human-readable number like 1, 2, 3)
23
+ rpc GetIssueByDisplayNumber(GetIssueByDisplayNumberRequest) returns (Issue);
24
+
25
+ // List all issues with optional filtering
26
+ rpc ListIssues(ListIssuesRequest) returns (ListIssuesResponse);
27
+
28
+ // Update an existing issue
29
+ rpc UpdateIssue(UpdateIssueRequest) returns (UpdateIssueResponse);
30
+
31
+ // Delete an issue
32
+ rpc DeleteIssue(DeleteIssueRequest) returns (DeleteIssueResponse);
33
+
34
+ // Get the next issue number
35
+ rpc GetNextIssueNumber(GetNextIssueNumberRequest) returns (GetNextIssueNumberResponse);
36
+
37
+ // Read the manifest
38
+ rpc GetManifest(GetManifestRequest) returns (Manifest);
39
+
40
+ // Read configuration
41
+ rpc GetConfig(GetConfigRequest) returns (Config);
42
+
43
+ // Check if centy is initialized in a directory
44
+ rpc IsInitialized(IsInitializedRequest) returns (IsInitializedResponse);
45
+
46
+ // ============ Doc RPCs ============
47
+
48
+ // Create a new documentation file
49
+ rpc CreateDoc(CreateDocRequest) returns (CreateDocResponse);
50
+
51
+ // Get a single doc by slug
52
+ rpc GetDoc(GetDocRequest) returns (Doc);
53
+
54
+ // List all docs
55
+ rpc ListDocs(ListDocsRequest) returns (ListDocsResponse);
56
+
57
+ // Update an existing doc
58
+ rpc UpdateDoc(UpdateDocRequest) returns (UpdateDocResponse);
59
+
60
+ // Delete a doc
61
+ rpc DeleteDoc(DeleteDocRequest) returns (DeleteDocResponse);
62
+
63
+ // ============ Asset RPCs ============
64
+
65
+ // Add an asset to an issue or as a shared asset
66
+ rpc AddAsset(AddAssetRequest) returns (AddAssetResponse);
67
+
68
+ // List assets for an issue (optionally including shared assets)
69
+ rpc ListAssets(ListAssetsRequest) returns (ListAssetsResponse);
70
+
71
+ // Get a specific asset's data
72
+ rpc GetAsset(GetAssetRequest) returns (GetAssetResponse);
73
+
74
+ // Delete an asset
75
+ rpc DeleteAsset(DeleteAssetRequest) returns (DeleteAssetResponse);
76
+
77
+ // List all shared assets
78
+ rpc ListSharedAssets(ListSharedAssetsRequest) returns (ListAssetsResponse);
79
+
80
+ // ============ Project Registry RPCs ============
81
+
82
+ // List all tracked projects
83
+ rpc ListProjects(ListProjectsRequest) returns (ListProjectsResponse);
84
+
85
+ // Manually register a project for tracking
86
+ rpc RegisterProject(RegisterProjectRequest) returns (RegisterProjectResponse);
87
+
88
+ // Remove a project from tracking
89
+ rpc UntrackProject(UntrackProjectRequest) returns (UntrackProjectResponse);
90
+
91
+ // Get info about a specific project
92
+ rpc GetProjectInfo(GetProjectInfoRequest) returns (GetProjectInfoResponse);
93
+
94
+ // ============ Version RPCs ============
95
+
96
+ // Get daemon version info
97
+ rpc GetDaemonInfo(GetDaemonInfoRequest) returns (DaemonInfo);
98
+
99
+ // Get project version info and comparison with daemon
100
+ rpc GetProjectVersion(GetProjectVersionRequest) returns (ProjectVersionInfo);
101
+
102
+ // Update project to target version (runs migrations)
103
+ rpc UpdateVersion(UpdateVersionRequest) returns (UpdateVersionResponse);
104
+ }
105
+
106
+ // ============ Init Messages ============
107
+
108
+ message InitRequest {
109
+ // The project directory path where .centy should be initialized
110
+ string project_path = 1;
111
+
112
+ // If true, skip prompts and use defaults (create all, restore all, reset none)
113
+ bool force = 2;
114
+
115
+ // Decisions for files that need user input (only used when force=false)
116
+ ReconciliationDecisions decisions = 3;
117
+ }
118
+
119
+ message InitResponse {
120
+ bool success = 1;
121
+ string error = 2;
122
+
123
+ // Summary of what was done
124
+ repeated string created = 3;
125
+ repeated string restored = 4;
126
+ repeated string reset = 5;
127
+ repeated string skipped = 6;
128
+
129
+ // The updated manifest
130
+ Manifest manifest = 7;
131
+ }
132
+
133
+ message GetReconciliationPlanRequest {
134
+ string project_path = 1;
135
+ }
136
+
137
+ message ReconciliationPlan {
138
+ // Files that need to be created (not on disk, not in manifest)
139
+ repeated FileInfo to_create = 1;
140
+
141
+ // Files that were deleted but exist in manifest (can be restored)
142
+ repeated FileInfo to_restore = 2;
143
+
144
+ // Files that were modified from original (hash mismatch)
145
+ repeated FileInfo to_reset = 3;
146
+
147
+ // Files that are up to date
148
+ repeated FileInfo up_to_date = 4;
149
+
150
+ // User-created files (not managed by centy)
151
+ repeated FileInfo user_files = 5;
152
+
153
+ // Whether user decisions are needed
154
+ bool needs_decisions = 6;
155
+ }
156
+
157
+ message ExecuteReconciliationRequest {
158
+ string project_path = 1;
159
+ ReconciliationDecisions decisions = 2;
160
+ }
161
+
162
+ message ReconciliationDecisions {
163
+ // Paths of files to restore (from to_restore list)
164
+ repeated string restore = 1;
165
+
166
+ // Paths of files to reset (from to_reset list)
167
+ repeated string reset = 2;
168
+ }
169
+
170
+ // ============ Issue Messages ============
171
+
172
+ message CreateIssueRequest {
173
+ string project_path = 1;
174
+ string title = 2;
175
+ string description = 3;
176
+ int32 priority = 4; // 1 = highest priority, 0 = use default
177
+ string status = 5; // default: "open"
178
+ map<string, string> custom_fields = 6;
179
+ string template = 7; // Optional template name (without .md extension)
180
+ }
181
+
182
+ message CreateIssueResponse {
183
+ bool success = 1;
184
+ string error = 2;
185
+
186
+ // The created issue ID (UUID)
187
+ string id = 3;
188
+
189
+ // Human-readable display number (1, 2, 3...)
190
+ uint32 display_number = 4;
191
+
192
+ // Legacy: same as id (for backward compatibility)
193
+ string issue_number = 5;
194
+
195
+ // Paths to created files
196
+ repeated string created_files = 6;
197
+
198
+ // The updated manifest
199
+ Manifest manifest = 7;
200
+ }
201
+
202
+ message GetNextIssueNumberRequest {
203
+ string project_path = 1;
204
+ }
205
+
206
+ message GetNextIssueNumberResponse {
207
+ string issue_number = 1;
208
+ }
209
+
210
+ // Issue represents a full issue with all its data
211
+ message Issue {
212
+ // UUID-based issue ID (folder name)
213
+ string id = 1;
214
+
215
+ // Human-readable display number (1, 2, 3...)
216
+ uint32 display_number = 2;
217
+
218
+ // Legacy: same as id (for backward compatibility)
219
+ string issue_number = 3;
220
+
221
+ string title = 4;
222
+ string description = 5;
223
+ IssueMetadata metadata = 6;
224
+ }
225
+
226
+ message IssueMetadata {
227
+ // Human-readable display number (1, 2, 3...)
228
+ uint32 display_number = 1;
229
+ string status = 2; // e.g., "open", "in-progress", "closed"
230
+ int32 priority = 3; // 1 = highest priority, N = lowest
231
+ string created_at = 4; // ISO timestamp
232
+ string updated_at = 5; // ISO timestamp
233
+ map<string, string> custom_fields = 6;
234
+ string priority_label = 7; // Human-readable label (e.g., "high", "P1")
235
+ }
236
+
237
+ message GetIssueRequest {
238
+ string project_path = 1;
239
+ string issue_id = 2; // UUID or legacy issue number (e.g., "0001")
240
+ }
241
+
242
+ message GetIssueByDisplayNumberRequest {
243
+ string project_path = 1;
244
+ uint32 display_number = 2; // Human-readable number (1, 2, 3...)
245
+ }
246
+
247
+ message ListIssuesRequest {
248
+ string project_path = 1;
249
+
250
+ // Optional filters
251
+ string status = 2; // Filter by status (empty = all)
252
+ int32 priority = 3; // Filter by priority (0 = all)
253
+ }
254
+
255
+ message ListIssuesResponse {
256
+ repeated Issue issues = 1;
257
+ int32 total_count = 2;
258
+ }
259
+
260
+ message UpdateIssueRequest {
261
+ string project_path = 1;
262
+ string issue_id = 2; // UUID or legacy issue number
263
+
264
+ // Fields to update (empty string = don't update, 0 = don't update priority)
265
+ string title = 3;
266
+ string description = 4;
267
+ string status = 5;
268
+ int32 priority = 6; // 0 = don't update, otherwise 1-N
269
+ map<string, string> custom_fields = 7;
270
+ }
271
+
272
+ message UpdateIssueResponse {
273
+ bool success = 1;
274
+ string error = 2;
275
+ Issue issue = 3; // The updated issue
276
+ Manifest manifest = 4;
277
+ }
278
+
279
+ message DeleteIssueRequest {
280
+ string project_path = 1;
281
+ string issue_id = 2; // UUID or legacy issue number
282
+ }
283
+
284
+ message DeleteIssueResponse {
285
+ bool success = 1;
286
+ string error = 2;
287
+ Manifest manifest = 3; // Updated manifest after deletion
288
+ }
289
+
290
+ // ============ Manifest Messages ============
291
+
292
+ message GetManifestRequest {
293
+ string project_path = 1;
294
+ }
295
+
296
+ message Manifest {
297
+ int32 schema_version = 1;
298
+ string centy_version = 2;
299
+ string created_at = 3;
300
+ string updated_at = 4;
301
+ repeated ManagedFile managed_files = 5;
302
+ }
303
+
304
+ message ManagedFile {
305
+ string path = 1;
306
+ string hash = 2;
307
+ string version = 3;
308
+ string created_at = 4;
309
+ FileType file_type = 5;
310
+ }
311
+
312
+ enum FileType {
313
+ FILE_TYPE_UNSPECIFIED = 0;
314
+ FILE_TYPE_FILE = 1;
315
+ FILE_TYPE_DIRECTORY = 2;
316
+ }
317
+
318
+ message FileInfo {
319
+ string path = 1;
320
+ FileType file_type = 2;
321
+ string hash = 3;
322
+ string content_preview = 4; // For display purposes
323
+ }
324
+
325
+ // ============ Config Messages ============
326
+
327
+ message GetConfigRequest {
328
+ string project_path = 1;
329
+ }
330
+
331
+ message Config {
332
+ repeated CustomFieldDefinition custom_fields = 1;
333
+ map<string, string> defaults = 2;
334
+ int32 priority_levels = 3; // Number of priority levels (default: 3)
335
+ repeated string allowed_states = 4; // Allowed status values (default: ["open", "in-progress", "closed"])
336
+ string default_state = 5; // Default state for new issues (default: "open")
337
+ string version = 6; // Project version (semver, empty = daemon default)
338
+ }
339
+
340
+ message CustomFieldDefinition {
341
+ string name = 1;
342
+ string field_type = 2; // "string", "number", "boolean", "enum"
343
+ bool required = 3;
344
+ string default_value = 4;
345
+ repeated string enum_values = 5; // For enum type
346
+ }
347
+
348
+ // ============ Utility Messages ============
349
+
350
+ message IsInitializedRequest {
351
+ string project_path = 1;
352
+ }
353
+
354
+ message IsInitializedResponse {
355
+ bool initialized = 1;
356
+ string centy_path = 2; // Full path to .centy folder if initialized
357
+ }
358
+
359
+ // ============ Doc Messages ============
360
+
361
+ message CreateDocRequest {
362
+ string project_path = 1;
363
+ string title = 2; // Doc title (used to generate slug)
364
+ string content = 3; // Markdown content
365
+ string slug = 4; // Optional custom slug (auto-generated from title if empty)
366
+ string template = 5; // Optional template name (without .md extension)
367
+ }
368
+
369
+ message CreateDocResponse {
370
+ bool success = 1;
371
+ string error = 2;
372
+ string slug = 3; // The created doc slug
373
+ string created_file = 4; // Path to created file
374
+ Manifest manifest = 5;
375
+ }
376
+
377
+ message GetDocRequest {
378
+ string project_path = 1;
379
+ string slug = 2; // e.g., "getting-started"
380
+ }
381
+
382
+ message ListDocsRequest {
383
+ string project_path = 1;
384
+ }
385
+
386
+ message ListDocsResponse {
387
+ repeated Doc docs = 1;
388
+ int32 total_count = 2;
389
+ }
390
+
391
+ // Doc represents a documentation file
392
+ message Doc {
393
+ string slug = 1; // e.g., "getting-started"
394
+ string title = 2;
395
+ string content = 3; // Full markdown content
396
+ DocMetadata metadata = 4;
397
+ }
398
+
399
+ message DocMetadata {
400
+ string created_at = 1; // ISO timestamp
401
+ string updated_at = 2; // ISO timestamp
402
+ }
403
+
404
+ message UpdateDocRequest {
405
+ string project_path = 1;
406
+ string slug = 2;
407
+
408
+ // Fields to update (empty string = don't update)
409
+ string title = 3;
410
+ string content = 4;
411
+ string new_slug = 5; // Rename the doc (empty = keep current slug)
412
+ }
413
+
414
+ message UpdateDocResponse {
415
+ bool success = 1;
416
+ string error = 2;
417
+ Doc doc = 3; // The updated doc
418
+ Manifest manifest = 4;
419
+ }
420
+
421
+ message DeleteDocRequest {
422
+ string project_path = 1;
423
+ string slug = 2;
424
+ }
425
+
426
+ message DeleteDocResponse {
427
+ bool success = 1;
428
+ string error = 2;
429
+ Manifest manifest = 3;
430
+ }
431
+
432
+ // ============ Asset Messages ============
433
+
434
+ // Asset represents file metadata
435
+ message Asset {
436
+ string filename = 1; // Original filename
437
+ string hash = 2; // SHA-256 hash
438
+ uint64 size = 3; // File size in bytes
439
+ string mime_type = 4; // MIME type (e.g., "image/png")
440
+ bool is_shared = 5; // Whether this is a shared asset
441
+ string created_at = 6; // ISO timestamp
442
+ }
443
+
444
+ message AddAssetRequest {
445
+ string project_path = 1;
446
+ string issue_id = 2; // Issue ID (required for issue-specific assets)
447
+ string filename = 3; // Filename to save as
448
+ bytes data = 4; // Binary file data
449
+ bool is_shared = 5; // If true, store as shared asset (default: false)
450
+ }
451
+
452
+ message AddAssetResponse {
453
+ bool success = 1;
454
+ string error = 2;
455
+ Asset asset = 3; // The created asset info
456
+ string path = 4; // Full path to the asset file
457
+ Manifest manifest = 5;
458
+ }
459
+
460
+ message ListAssetsRequest {
461
+ string project_path = 1;
462
+ string issue_id = 2; // Issue ID to list assets for
463
+ bool include_shared = 3; // Include shared assets in result (default: false)
464
+ }
465
+
466
+ message ListAssetsResponse {
467
+ repeated Asset assets = 1;
468
+ int32 total_count = 2;
469
+ }
470
+
471
+ message GetAssetRequest {
472
+ string project_path = 1;
473
+ string issue_id = 2; // Issue ID (required for issue-specific assets)
474
+ string filename = 3; // Asset filename
475
+ bool is_shared = 4; // Whether to look for a shared asset
476
+ }
477
+
478
+ message GetAssetResponse {
479
+ bool success = 1;
480
+ string error = 2;
481
+ bytes data = 3; // Binary file data
482
+ Asset asset = 4; // Asset metadata
483
+ }
484
+
485
+ message DeleteAssetRequest {
486
+ string project_path = 1;
487
+ string issue_id = 2; // Issue ID (required for issue-specific assets)
488
+ string filename = 3; // Asset filename
489
+ bool is_shared = 4; // Whether to delete a shared asset
490
+ }
491
+
492
+ message DeleteAssetResponse {
493
+ bool success = 1;
494
+ string error = 2;
495
+ string filename = 3; // Deleted filename
496
+ bool was_shared = 4; // Whether it was a shared asset
497
+ Manifest manifest = 5;
498
+ }
499
+
500
+ message ListSharedAssetsRequest {
501
+ string project_path = 1;
502
+ }
503
+
504
+ // ============ Project Registry Messages ============
505
+
506
+ // Returned by API (enriched with live data from disk)
507
+ message ProjectInfo {
508
+ string path = 1; // Absolute path to project
509
+ string first_accessed = 2; // ISO timestamp
510
+ string last_accessed = 3; // ISO timestamp
511
+ uint32 issue_count = 4; // Fetched live from .centy/issues/
512
+ uint32 doc_count = 5; // Fetched live from .centy/docs/
513
+ bool initialized = 6; // Fetched live (manifest exists)
514
+ string name = 7; // Fetched live (directory name)
515
+ }
516
+
517
+ message ListProjectsRequest {
518
+ bool include_stale = 1; // Include projects where path no longer exists
519
+ }
520
+
521
+ message ListProjectsResponse {
522
+ repeated ProjectInfo projects = 1;
523
+ int32 total_count = 2;
524
+ }
525
+
526
+ message RegisterProjectRequest {
527
+ string project_path = 1; // Path to register
528
+ }
529
+
530
+ message RegisterProjectResponse {
531
+ bool success = 1;
532
+ string error = 2;
533
+ ProjectInfo project = 3; // The registered project info
534
+ }
535
+
536
+ message UntrackProjectRequest {
537
+ string project_path = 1;
538
+ }
539
+
540
+ message UntrackProjectResponse {
541
+ bool success = 1;
542
+ string error = 2;
543
+ }
544
+
545
+ message GetProjectInfoRequest {
546
+ string project_path = 1;
547
+ }
548
+
549
+ message GetProjectInfoResponse {
550
+ bool found = 1;
551
+ ProjectInfo project = 2;
552
+ }
553
+
554
+ // ============ Version Messages ============
555
+
556
+ message GetDaemonInfoRequest {}
557
+
558
+ message DaemonInfo {
559
+ string version = 1; // Current daemon version (e.g., "0.1.0")
560
+ repeated string available_versions = 2; // All versions we can migrate to
561
+ }
562
+
563
+ message GetProjectVersionRequest {
564
+ string project_path = 1;
565
+ }
566
+
567
+ message ProjectVersionInfo {
568
+ string project_version = 1; // Version from config (or default)
569
+ string daemon_version = 2; // Current daemon version
570
+ string comparison = 3; // "equal", "project_behind", "project_ahead"
571
+ bool degraded_mode = 4; // True if project > daemon
572
+ }
573
+
574
+ message UpdateVersionRequest {
575
+ string project_path = 1;
576
+ string target_version = 2; // Target version to migrate to
577
+ }
578
+
579
+ message UpdateVersionResponse {
580
+ bool success = 1;
581
+ string error = 2;
582
+ string from_version = 3;
583
+ string to_version = 4;
584
+ repeated string migrations_applied = 5;
585
+ }