@opsee/mcp-server 0.5.7 → 0.6.3
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 +90 -3
- package/gen/api/v1/acceptance_criterion_pb.d.ts +195 -0
- package/gen/api/v1/acceptance_criterion_pb.js +73 -0
- package/gen/api/v1/doc_template_pb.d.ts +244 -0
- package/gen/api/v1/doc_template_pb.js +77 -0
- package/gen/api/v1/models_pb.d.ts +163 -1
- package/gen/api/v1/models_pb.js +28 -2
- package/gen/api/v1/task_dependency_pb.d.ts +217 -0
- package/gen/api/v1/task_dependency_pb.js +74 -0
- package/gen/api/v1/task_pb.d.ts +54 -1
- package/gen/api/v1/task_pb.js +1 -1
- package/gen/api/v1/task_template_pb.d.ts +349 -0
- package/gen/api/v1/task_template_pb.js +77 -0
- package/package.json +1 -1
- package/src/__tests__/tools.test.ts +409 -3
- package/src/client/api.ts +18 -0
- package/src/server.ts +12 -0
- package/src/tools/acceptance-criteria.ts +127 -0
- package/src/tools/comments.ts +135 -0
- package/src/tools/cycles.ts +189 -1
- package/src/tools/docs.ts +1 -1
- package/src/tools/labels.ts +199 -0
- package/src/tools/milestones.ts +3 -3
- package/src/tools/notifications.ts +171 -0
- package/src/tools/task-dependencies.ts +138 -0
- package/src/tools/tasks.ts +364 -11
- package/src/tools/user.ts +41 -1
- package/src/tools/work-logs.ts +123 -0
- package/src/utils/format.ts +84 -1
package/README.md
CHANGED
|
@@ -31,17 +31,43 @@ Ask Claude things like:
|
|
|
31
31
|
- "What cycles are active in project 1?"
|
|
32
32
|
- "Show me the docs in project 1"
|
|
33
33
|
|
|
34
|
-
## Available Tools (
|
|
34
|
+
## Available Tools (47)
|
|
35
35
|
|
|
36
36
|
| Tool | Description |
|
|
37
37
|
|------|-------------|
|
|
38
38
|
| `opsee_get_me` | Get your profile info |
|
|
39
|
+
| `opsee_list_users` | List company users (resolve assignee IDs) |
|
|
40
|
+
| `opsee_get_user` | Get user details |
|
|
39
41
|
| `opsee_list_projects` | List all projects |
|
|
40
42
|
| `opsee_get_project` | Get project details |
|
|
41
43
|
| `opsee_list_tasks` | List tasks with filters |
|
|
42
44
|
| `opsee_get_task` | Get task details |
|
|
43
|
-
| `
|
|
44
|
-
| `
|
|
45
|
+
| `opsee_get_task_with_context` | Get task plus labels, comments, dependencies, parent, subtasks in one call |
|
|
46
|
+
| `opsee_create_task` | Create a new task (accepts inline labelIds[] to skip follow-up attach calls) |
|
|
47
|
+
| `opsee_update_task` | Update task fields (accepts labelIds[] with replace-set semantics) |
|
|
48
|
+
| `opsee_bulk_update_tasks` | Update many tasks in one transaction (storyPoints, estimatedHours, parentTaskId, labelIds all supported) |
|
|
49
|
+
| `opsee_bulk_move_to_cycle` | Move many tasks to the same cycle in one call |
|
|
50
|
+
| `opsee_bulk_move_to_column` | Move many tasks to the same status column in one call |
|
|
51
|
+
| `opsee_bulk_assign` | Assign many tasks to the same user in one call |
|
|
52
|
+
| `opsee_bulk_set_priority` | Set the same priority on many tasks in one call |
|
|
53
|
+
| `opsee_replace_task_labels` | Replace a single task's full set of labels |
|
|
54
|
+
| `opsee_delete_task` | Delete a task by ID |
|
|
55
|
+
| `opsee_bulk_delete_tasks` | Delete many tasks in one call |
|
|
56
|
+
| `opsee_list_comments` | List comments on a task |
|
|
57
|
+
| `opsee_add_comment` | Add a comment to a task |
|
|
58
|
+
| `opsee_edit_comment` | Edit an existing comment |
|
|
59
|
+
| `opsee_delete_comment` | Delete a comment |
|
|
60
|
+
| `opsee_list_labels` | List labels in a project |
|
|
61
|
+
| `opsee_get_label` | Get label details |
|
|
62
|
+
| `opsee_create_label` | Create a label |
|
|
63
|
+
| `opsee_update_label` | Update a label |
|
|
64
|
+
| `opsee_delete_label` | Delete a label |
|
|
65
|
+
| `opsee_attach_label_to_task` | Attach a label to a task |
|
|
66
|
+
| `opsee_detach_label_from_task` | Detach a label from a task (pass TaskLabel join-row id) |
|
|
67
|
+
| `opsee_list_task_labels` | List labels attached to a task |
|
|
68
|
+
| `opsee_create_task_dependency` | Add a typed task-to-task relation (BLOCKS / BLOCKED_BY / DUPLICATES / RELATES_TO) |
|
|
69
|
+
| `opsee_list_task_dependencies` | List a task's dependencies (both directions) |
|
|
70
|
+
| `opsee_delete_task_dependency` | Delete a task dependency by ID |
|
|
45
71
|
| `opsee_list_task_types` | Get task types (Bug, Feature, etc.) |
|
|
46
72
|
| `opsee_list_task_priorities` | Get priority levels |
|
|
47
73
|
| `opsee_list_boards` | List Kanban boards |
|
|
@@ -49,12 +75,73 @@ Ask Claude things like:
|
|
|
49
75
|
| `opsee_list_cycles` | List cycles/sprints |
|
|
50
76
|
| `opsee_get_cycle` | Get cycle details |
|
|
51
77
|
| `opsee_create_cycle` | Create a new cycle |
|
|
78
|
+
| `opsee_update_cycle` | Update a cycle's fields |
|
|
79
|
+
| `opsee_delete_cycle` | Delete a cycle |
|
|
52
80
|
| `opsee_list_doc_spaces` | List doc spaces |
|
|
53
81
|
| `opsee_list_doc_pages` | List pages in a doc space |
|
|
54
82
|
| `opsee_get_doc_page` | Read a doc page |
|
|
55
83
|
| `opsee_create_doc_page` | Create a new doc page |
|
|
56
84
|
| `opsee_list_repositories` | List connected repositories |
|
|
57
85
|
|
|
86
|
+
## Task description format
|
|
87
|
+
|
|
88
|
+
The `description` field on tasks accepts and returns user-supplied text, but the Opsee backend may normalize the stored representation. The exact round-trip behavior depends on the backend version and is not yet fully documented here.
|
|
89
|
+
|
|
90
|
+
### Acceptance criteria → description checklist
|
|
91
|
+
|
|
92
|
+
Write acceptance criteria **inline in the task description** using a `## Acceptance criteria` heading followed by markdown checkbox lines. The frontend (BlockNote) renders those as clickable checkboxes; users can toggle them in the UI.
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
## Acceptance criteria
|
|
96
|
+
|
|
97
|
+
- [ ] WaiveLateFee RPC compiles and builds
|
|
98
|
+
- [ ] Admin can waive full or partial late fee with reason
|
|
99
|
+
- [ ] Apply-as-credit reduces next payment amount
|
|
100
|
+
- [x] Audit log entry with before/after snapshots
|
|
101
|
+
- [ ] Modal UI matches mockup
|
|
102
|
+
- [ ] Non-admin users cannot access waive action
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
This is the path `/tpm` and any other AI agent should use when creating or updating tasks via `opsee_create_task` / `opsee_update_task`. The heading casing doesn't matter to the parser (`## Acceptance Criteria` works too).
|
|
106
|
+
|
|
107
|
+
**Do not use the structured `opsee_add_acceptance_criterion` tool for typical AC.** That tool writes to a separate `acceptance_criteria` DB table that does NOT surface in the task detail UI; it's reserved for automation paths that need machine-trackable criteria outside the description (PR-to-criterion mapping, AI workflow outputs, reporting).
|
|
108
|
+
|
|
109
|
+
### What's confirmed
|
|
110
|
+
|
|
111
|
+
- The MCP wrapper passes `description` to the backend unmodified. Whatever transformation happens is server-side.
|
|
112
|
+
- Read tools (`opsee_get_task`, `opsee_list_tasks`) return whatever the backend has stored, byte-for-byte.
|
|
113
|
+
|
|
114
|
+
### What needs empirical verification
|
|
115
|
+
|
|
116
|
+
The following test plan, run against a live Opsee instance, captures round-trip behavior for the three common input forms. **Results have not yet been recorded here — run the test and fill in the observed strings below.**
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
# Plain text with separator and trailer
|
|
120
|
+
opsee_create_task(projectId=<P>, title="rt plain",
|
|
121
|
+
description="line one\nline two\n---\nLabels: x")
|
|
122
|
+
opsee_get_task(taskId=<id>) → record exact returned description
|
|
123
|
+
|
|
124
|
+
# Markdown with headers, list, fenced code
|
|
125
|
+
opsee_create_task(projectId=<P>, title="rt md",
|
|
126
|
+
description="# H1\n- bullet\n\n```ts\ncode\n```")
|
|
127
|
+
opsee_get_task(taskId=<id>) → record exact returned description
|
|
128
|
+
|
|
129
|
+
# BlockNote JSON
|
|
130
|
+
opsee_create_task(projectId=<P>, title="rt blocknote",
|
|
131
|
+
description='[{"type":"paragraph","content":[{"type":"text","text":"x"}]}]')
|
|
132
|
+
opsee_get_task(taskId=<id>) → record exact returned description
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Observed round-trip outcomes
|
|
136
|
+
|
|
137
|
+
| Input form | Stored form (from `opsee_get_task`) | Notes |
|
|
138
|
+
|---|---|---|
|
|
139
|
+
| Plain text | _Pending empirical verification_ | |
|
|
140
|
+
| Markdown | _Pending empirical verification_ | |
|
|
141
|
+
| BlockNote JSON | _Pending empirical verification_ | |
|
|
142
|
+
|
|
143
|
+
> If the round trip is lossy (e.g. plain text becomes BlockNote JSON on read), callers relying on byte-identical round-trip should treat `description` as backend-defined and avoid parsing trailers; use first-class fields (`opsee_attach_label_to_task`, `opsee_add_comment`, etc.) for structured metadata instead.
|
|
144
|
+
|
|
58
145
|
## Remote MCP Server (Recommended)
|
|
59
146
|
|
|
60
147
|
The remote server runs in the cloud with OAuth 2.0 authentication - no local setup or tokens needed.
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
// @generated by protoc-gen-es v2.2.3
|
|
2
|
+
// @generated from file api/v1/acceptance_criterion.proto (package api.v1, syntax proto3)
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
|
|
5
|
+
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1";
|
|
6
|
+
import type { Message } from "@bufbuild/protobuf";
|
|
7
|
+
import type { TaskAcceptanceCriterion } from "./models_pb";
|
|
8
|
+
import type { EmptySchema } from "@bufbuild/protobuf/wkt";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Describes the file api/v1/acceptance_criterion.proto.
|
|
12
|
+
*/
|
|
13
|
+
export declare const file_api_v1_acceptance_criterion: GenFile;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Request definitions
|
|
17
|
+
*
|
|
18
|
+
* @generated from message api.v1.AddAcceptanceCriterionRequest
|
|
19
|
+
*/
|
|
20
|
+
export declare type AddAcceptanceCriterionRequest = Message<"api.v1.AddAcceptanceCriterionRequest"> & {
|
|
21
|
+
/**
|
|
22
|
+
* @generated from field: uint32 task_id = 1;
|
|
23
|
+
*/
|
|
24
|
+
taskId: number;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @generated from field: string text = 2;
|
|
28
|
+
*/
|
|
29
|
+
text: string;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @generated from field: optional int32 display_order = 3;
|
|
33
|
+
*/
|
|
34
|
+
displayOrder?: number;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Describes the message api.v1.AddAcceptanceCriterionRequest.
|
|
39
|
+
* Use `create(AddAcceptanceCriterionRequestSchema)` to create a new message.
|
|
40
|
+
*/
|
|
41
|
+
export declare const AddAcceptanceCriterionRequestSchema: GenMessage<AddAcceptanceCriterionRequest>;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @generated from message api.v1.EditAcceptanceCriterionRequest
|
|
45
|
+
*/
|
|
46
|
+
export declare type EditAcceptanceCriterionRequest = Message<"api.v1.EditAcceptanceCriterionRequest"> & {
|
|
47
|
+
/**
|
|
48
|
+
* @generated from field: uint32 id = 1;
|
|
49
|
+
*/
|
|
50
|
+
id: number;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @generated from field: optional string text = 2;
|
|
54
|
+
*/
|
|
55
|
+
text?: string;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @generated from field: optional bool done = 3;
|
|
59
|
+
*/
|
|
60
|
+
done?: boolean;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @generated from field: optional int32 display_order = 4;
|
|
64
|
+
*/
|
|
65
|
+
displayOrder?: number;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Describes the message api.v1.EditAcceptanceCriterionRequest.
|
|
70
|
+
* Use `create(EditAcceptanceCriterionRequestSchema)` to create a new message.
|
|
71
|
+
*/
|
|
72
|
+
export declare const EditAcceptanceCriterionRequestSchema: GenMessage<EditAcceptanceCriterionRequest>;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @generated from message api.v1.GetAcceptanceCriteriaByTaskRequest
|
|
76
|
+
*/
|
|
77
|
+
export declare type GetAcceptanceCriteriaByTaskRequest = Message<"api.v1.GetAcceptanceCriteriaByTaskRequest"> & {
|
|
78
|
+
/**
|
|
79
|
+
* @generated from field: uint32 task_id = 1;
|
|
80
|
+
*/
|
|
81
|
+
taskId: number;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Describes the message api.v1.GetAcceptanceCriteriaByTaskRequest.
|
|
86
|
+
* Use `create(GetAcceptanceCriteriaByTaskRequestSchema)` to create a new message.
|
|
87
|
+
*/
|
|
88
|
+
export declare const GetAcceptanceCriteriaByTaskRequestSchema: GenMessage<GetAcceptanceCriteriaByTaskRequest>;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* @generated from message api.v1.DeleteAcceptanceCriterionRequest
|
|
92
|
+
*/
|
|
93
|
+
export declare type DeleteAcceptanceCriterionRequest = Message<"api.v1.DeleteAcceptanceCriterionRequest"> & {
|
|
94
|
+
/**
|
|
95
|
+
* @generated from field: uint32 id = 1;
|
|
96
|
+
*/
|
|
97
|
+
id: number;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Describes the message api.v1.DeleteAcceptanceCriterionRequest.
|
|
102
|
+
* Use `create(DeleteAcceptanceCriterionRequestSchema)` to create a new message.
|
|
103
|
+
*/
|
|
104
|
+
export declare const DeleteAcceptanceCriterionRequestSchema: GenMessage<DeleteAcceptanceCriterionRequest>;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Response definitions
|
|
108
|
+
*
|
|
109
|
+
* @generated from message api.v1.AddAcceptanceCriterionResponse
|
|
110
|
+
*/
|
|
111
|
+
export declare type AddAcceptanceCriterionResponse = Message<"api.v1.AddAcceptanceCriterionResponse"> & {
|
|
112
|
+
/**
|
|
113
|
+
* @generated from field: api.v1.TaskAcceptanceCriterion criterion = 1;
|
|
114
|
+
*/
|
|
115
|
+
criterion?: TaskAcceptanceCriterion;
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Describes the message api.v1.AddAcceptanceCriterionResponse.
|
|
120
|
+
* Use `create(AddAcceptanceCriterionResponseSchema)` to create a new message.
|
|
121
|
+
*/
|
|
122
|
+
export declare const AddAcceptanceCriterionResponseSchema: GenMessage<AddAcceptanceCriterionResponse>;
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* @generated from message api.v1.EditAcceptanceCriterionResponse
|
|
126
|
+
*/
|
|
127
|
+
export declare type EditAcceptanceCriterionResponse = Message<"api.v1.EditAcceptanceCriterionResponse"> & {
|
|
128
|
+
/**
|
|
129
|
+
* @generated from field: api.v1.TaskAcceptanceCriterion criterion = 1;
|
|
130
|
+
*/
|
|
131
|
+
criterion?: TaskAcceptanceCriterion;
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Describes the message api.v1.EditAcceptanceCriterionResponse.
|
|
136
|
+
* Use `create(EditAcceptanceCriterionResponseSchema)` to create a new message.
|
|
137
|
+
*/
|
|
138
|
+
export declare const EditAcceptanceCriterionResponseSchema: GenMessage<EditAcceptanceCriterionResponse>;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* @generated from message api.v1.GetAcceptanceCriteriaByTaskResponse
|
|
142
|
+
*/
|
|
143
|
+
export declare type GetAcceptanceCriteriaByTaskResponse = Message<"api.v1.GetAcceptanceCriteriaByTaskResponse"> & {
|
|
144
|
+
/**
|
|
145
|
+
* @generated from field: repeated api.v1.TaskAcceptanceCriterion criteria = 1;
|
|
146
|
+
*/
|
|
147
|
+
criteria: TaskAcceptanceCriterion[];
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Describes the message api.v1.GetAcceptanceCriteriaByTaskResponse.
|
|
152
|
+
* Use `create(GetAcceptanceCriteriaByTaskResponseSchema)` to create a new message.
|
|
153
|
+
*/
|
|
154
|
+
export declare const GetAcceptanceCriteriaByTaskResponseSchema: GenMessage<GetAcceptanceCriteriaByTaskResponse>;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Service
|
|
158
|
+
*
|
|
159
|
+
* @generated from service api.v1.AcceptanceCriterionService
|
|
160
|
+
*/
|
|
161
|
+
export declare const AcceptanceCriterionService: GenService<{
|
|
162
|
+
/**
|
|
163
|
+
* @generated from rpc api.v1.AcceptanceCriterionService.AddAcceptanceCriterion
|
|
164
|
+
*/
|
|
165
|
+
addAcceptanceCriterion: {
|
|
166
|
+
methodKind: "unary";
|
|
167
|
+
input: typeof AddAcceptanceCriterionRequestSchema;
|
|
168
|
+
output: typeof AddAcceptanceCriterionResponseSchema;
|
|
169
|
+
},
|
|
170
|
+
/**
|
|
171
|
+
* @generated from rpc api.v1.AcceptanceCriterionService.EditAcceptanceCriterion
|
|
172
|
+
*/
|
|
173
|
+
editAcceptanceCriterion: {
|
|
174
|
+
methodKind: "unary";
|
|
175
|
+
input: typeof EditAcceptanceCriterionRequestSchema;
|
|
176
|
+
output: typeof EditAcceptanceCriterionResponseSchema;
|
|
177
|
+
},
|
|
178
|
+
/**
|
|
179
|
+
* @generated from rpc api.v1.AcceptanceCriterionService.GetAcceptanceCriteriaByTask
|
|
180
|
+
*/
|
|
181
|
+
getAcceptanceCriteriaByTask: {
|
|
182
|
+
methodKind: "unary";
|
|
183
|
+
input: typeof GetAcceptanceCriteriaByTaskRequestSchema;
|
|
184
|
+
output: typeof GetAcceptanceCriteriaByTaskResponseSchema;
|
|
185
|
+
},
|
|
186
|
+
/**
|
|
187
|
+
* @generated from rpc api.v1.AcceptanceCriterionService.DeleteAcceptanceCriterion
|
|
188
|
+
*/
|
|
189
|
+
deleteAcceptanceCriterion: {
|
|
190
|
+
methodKind: "unary";
|
|
191
|
+
input: typeof DeleteAcceptanceCriterionRequestSchema;
|
|
192
|
+
output: typeof EmptySchema;
|
|
193
|
+
},
|
|
194
|
+
}>;
|
|
195
|
+
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// @generated by protoc-gen-es v2.2.3
|
|
2
|
+
// @generated from file api/v1/acceptance_criterion.proto (package api.v1, syntax proto3)
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
|
|
5
|
+
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv1";
|
|
6
|
+
import { file_google_protobuf_empty } from "@bufbuild/protobuf/wkt";
|
|
7
|
+
import { file_google_api_annotations } from "../../google/api/annotations_pb";
|
|
8
|
+
import { file_validate_validate } from "../../validate/validate_pb";
|
|
9
|
+
import { file_api_v1_models } from "./models_pb";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Describes the file api/v1/acceptance_criterion.proto.
|
|
13
|
+
*/
|
|
14
|
+
export const file_api_v1_acceptance_criterion = /*@__PURE__*/
|
|
15
|
+
fileDesc("CiFhcGkvdjEvYWNjZXB0YW5jZV9jcml0ZXJpb24ucHJvdG8SBmFwaS52MSKBAQodQWRkQWNjZXB0YW5jZUNyaXRlcmlvblJlcXVlc3QSGAoHdGFza19pZBgBIAEoDUIH+kIEKgIoARIYCgR0ZXh0GAIgASgJQgr6QgdyBRABGNAPEhoKDWRpc3BsYXlfb3JkZXIYAyABKAVIAIgBAUIQCg5fZGlzcGxheV9vcmRlciKlAQoeRWRpdEFjY2VwdGFuY2VDcml0ZXJpb25SZXF1ZXN0EhMKAmlkGAEgASgNQgf6QgQqAigBEhsKBHRleHQYAiABKAlCCPpCBXIDGNAPSACIAQESEQoEZG9uZRgDIAEoCEgBiAEBEhoKDWRpc3BsYXlfb3JkZXIYBCABKAVIAogBAUIHCgVfdGV4dEIHCgVfZG9uZUIQCg5fZGlzcGxheV9vcmRlciI+CiJHZXRBY2NlcHRhbmNlQ3JpdGVyaWFCeVRhc2tSZXF1ZXN0EhgKB3Rhc2tfaWQYASABKA1CB/pCBCoCKAEiNwogRGVsZXRlQWNjZXB0YW5jZUNyaXRlcmlvblJlcXVlc3QSEwoCaWQYASABKA1CB/pCBCoCKAEiVAoeQWRkQWNjZXB0YW5jZUNyaXRlcmlvblJlc3BvbnNlEjIKCWNyaXRlcmlvbhgBIAEoCzIfLmFwaS52MS5UYXNrQWNjZXB0YW5jZUNyaXRlcmlvbiJVCh9FZGl0QWNjZXB0YW5jZUNyaXRlcmlvblJlc3BvbnNlEjIKCWNyaXRlcmlvbhgBIAEoCzIfLmFwaS52MS5UYXNrQWNjZXB0YW5jZUNyaXRlcmlvbiJYCiNHZXRBY2NlcHRhbmNlQ3JpdGVyaWFCeVRhc2tSZXNwb25zZRIxCghjcml0ZXJpYRgBIAMoCzIfLmFwaS52MS5UYXNrQWNjZXB0YW5jZUNyaXRlcmlvbjKABQoaQWNjZXB0YW5jZUNyaXRlcmlvblNlcnZpY2USjwEKFkFkZEFjY2VwdGFuY2VDcml0ZXJpb24SJS5hcGkudjEuQWRkQWNjZXB0YW5jZUNyaXRlcmlvblJlcXVlc3QaJi5hcGkudjEuQWRkQWNjZXB0YW5jZUNyaXRlcmlvblJlc3BvbnNlIiaC0+STAiA6ASoiGy9hcGkvdjEvYWNjZXB0YW5jZS1jcml0ZXJpYRKXAQoXRWRpdEFjY2VwdGFuY2VDcml0ZXJpb24SJi5hcGkudjEuRWRpdEFjY2VwdGFuY2VDcml0ZXJpb25SZXF1ZXN0GicuYXBpLnYxLkVkaXRBY2NlcHRhbmNlQ3JpdGVyaW9uUmVzcG9uc2UiK4LT5JMCJToBKhogL2FwaS92MS9hY2NlcHRhbmNlLWNyaXRlcmlhL3tpZH0SqwEKG0dldEFjY2VwdGFuY2VDcml0ZXJpYUJ5VGFzaxIqLmFwaS52MS5HZXRBY2NlcHRhbmNlQ3JpdGVyaWFCeVRhc2tSZXF1ZXN0GisuYXBpLnYxLkdldEFjY2VwdGFuY2VDcml0ZXJpYUJ5VGFza1Jlc3BvbnNlIjOC0+STAi0SKy9hcGkvdjEvdGFza3Mve3Rhc2tfaWR9L2FjY2VwdGFuY2UtY3JpdGVyaWEShwEKGURlbGV0ZUFjY2VwdGFuY2VDcml0ZXJpb24SKC5hcGkudjEuRGVsZXRlQWNjZXB0YW5jZUNyaXRlcmlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKILT5JMCIiogL2FwaS92MS9hY2NlcHRhbmNlLWNyaXRlcmlhL3tpZH1CfQoKY29tLmFwaS52MUIYQWNjZXB0YW5jZUNyaXRlcmlvblByb3RvUAFaHG9wc2VlL2JhY2tlbmQvZ2VuL2FwaS92MTtnZW6iAgNBWFiqAgZBcGkuVjHKAgZBcGlcVjHiAhJBcGlcVjFcR1BCTWV0YWRhdGHqAgdBcGk6OlYxYgZwcm90bzM", [file_google_protobuf_empty, file_google_api_annotations, file_validate_validate, file_api_v1_models]);
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Describes the message api.v1.AddAcceptanceCriterionRequest.
|
|
19
|
+
* Use `create(AddAcceptanceCriterionRequestSchema)` to create a new message.
|
|
20
|
+
*/
|
|
21
|
+
export const AddAcceptanceCriterionRequestSchema = /*@__PURE__*/
|
|
22
|
+
messageDesc(file_api_v1_acceptance_criterion, 0);
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Describes the message api.v1.EditAcceptanceCriterionRequest.
|
|
26
|
+
* Use `create(EditAcceptanceCriterionRequestSchema)` to create a new message.
|
|
27
|
+
*/
|
|
28
|
+
export const EditAcceptanceCriterionRequestSchema = /*@__PURE__*/
|
|
29
|
+
messageDesc(file_api_v1_acceptance_criterion, 1);
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Describes the message api.v1.GetAcceptanceCriteriaByTaskRequest.
|
|
33
|
+
* Use `create(GetAcceptanceCriteriaByTaskRequestSchema)` to create a new message.
|
|
34
|
+
*/
|
|
35
|
+
export const GetAcceptanceCriteriaByTaskRequestSchema = /*@__PURE__*/
|
|
36
|
+
messageDesc(file_api_v1_acceptance_criterion, 2);
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Describes the message api.v1.DeleteAcceptanceCriterionRequest.
|
|
40
|
+
* Use `create(DeleteAcceptanceCriterionRequestSchema)` to create a new message.
|
|
41
|
+
*/
|
|
42
|
+
export const DeleteAcceptanceCriterionRequestSchema = /*@__PURE__*/
|
|
43
|
+
messageDesc(file_api_v1_acceptance_criterion, 3);
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Describes the message api.v1.AddAcceptanceCriterionResponse.
|
|
47
|
+
* Use `create(AddAcceptanceCriterionResponseSchema)` to create a new message.
|
|
48
|
+
*/
|
|
49
|
+
export const AddAcceptanceCriterionResponseSchema = /*@__PURE__*/
|
|
50
|
+
messageDesc(file_api_v1_acceptance_criterion, 4);
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Describes the message api.v1.EditAcceptanceCriterionResponse.
|
|
54
|
+
* Use `create(EditAcceptanceCriterionResponseSchema)` to create a new message.
|
|
55
|
+
*/
|
|
56
|
+
export const EditAcceptanceCriterionResponseSchema = /*@__PURE__*/
|
|
57
|
+
messageDesc(file_api_v1_acceptance_criterion, 5);
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Describes the message api.v1.GetAcceptanceCriteriaByTaskResponse.
|
|
61
|
+
* Use `create(GetAcceptanceCriteriaByTaskResponseSchema)` to create a new message.
|
|
62
|
+
*/
|
|
63
|
+
export const GetAcceptanceCriteriaByTaskResponseSchema = /*@__PURE__*/
|
|
64
|
+
messageDesc(file_api_v1_acceptance_criterion, 6);
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Service
|
|
68
|
+
*
|
|
69
|
+
* @generated from service api.v1.AcceptanceCriterionService
|
|
70
|
+
*/
|
|
71
|
+
export const AcceptanceCriterionService = /*@__PURE__*/
|
|
72
|
+
serviceDesc(file_api_v1_acceptance_criterion, 0);
|
|
73
|
+
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
// @generated by protoc-gen-es v2.2.3
|
|
2
|
+
// @generated from file api/v1/doc_template.proto (package api.v1, syntax proto3)
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
|
|
5
|
+
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1";
|
|
6
|
+
import type { Message } from "@bufbuild/protobuf";
|
|
7
|
+
import type { EmptySchema, Timestamp } from "@bufbuild/protobuf/wkt";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Describes the file api/v1/doc_template.proto.
|
|
11
|
+
*/
|
|
12
|
+
export declare const file_api_v1_doc_template: GenFile;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @generated from message api.v1.DocTemplate
|
|
16
|
+
*/
|
|
17
|
+
export declare type DocTemplate = Message<"api.v1.DocTemplate"> & {
|
|
18
|
+
/**
|
|
19
|
+
* @generated from field: uint32 id = 1;
|
|
20
|
+
*/
|
|
21
|
+
id: number;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @generated from field: uint32 project_id = 2;
|
|
25
|
+
*/
|
|
26
|
+
projectId: number;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @generated from field: uint32 company_id = 3;
|
|
30
|
+
*/
|
|
31
|
+
companyId: number;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @generated from field: string name = 4;
|
|
35
|
+
*/
|
|
36
|
+
name: string;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @generated from field: string title = 5;
|
|
40
|
+
*/
|
|
41
|
+
title: string;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @generated from field: string content = 6;
|
|
45
|
+
*/
|
|
46
|
+
content: string;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @generated from field: google.protobuf.Timestamp created_at = 7;
|
|
50
|
+
*/
|
|
51
|
+
createdAt?: Timestamp;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @generated from field: google.protobuf.Timestamp updated_at = 8;
|
|
55
|
+
*/
|
|
56
|
+
updatedAt?: Timestamp;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Describes the message api.v1.DocTemplate.
|
|
61
|
+
* Use `create(DocTemplateSchema)` to create a new message.
|
|
62
|
+
*/
|
|
63
|
+
export declare const DocTemplateSchema: GenMessage<DocTemplate>;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* @generated from message api.v1.CreateDocTemplateRequest
|
|
67
|
+
*/
|
|
68
|
+
export declare type CreateDocTemplateRequest = Message<"api.v1.CreateDocTemplateRequest"> & {
|
|
69
|
+
/**
|
|
70
|
+
* @generated from field: uint32 project_id = 1;
|
|
71
|
+
*/
|
|
72
|
+
projectId: number;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @generated from field: string name = 2;
|
|
76
|
+
*/
|
|
77
|
+
name: string;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* @generated from field: string title = 3;
|
|
81
|
+
*/
|
|
82
|
+
title: string;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* @generated from field: string content = 4;
|
|
86
|
+
*/
|
|
87
|
+
content: string;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Describes the message api.v1.CreateDocTemplateRequest.
|
|
92
|
+
* Use `create(CreateDocTemplateRequestSchema)` to create a new message.
|
|
93
|
+
*/
|
|
94
|
+
export declare const CreateDocTemplateRequestSchema: GenMessage<CreateDocTemplateRequest>;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* @generated from message api.v1.CreateDocTemplateResponse
|
|
98
|
+
*/
|
|
99
|
+
export declare type CreateDocTemplateResponse = Message<"api.v1.CreateDocTemplateResponse"> & {
|
|
100
|
+
/**
|
|
101
|
+
* @generated from field: api.v1.DocTemplate doc_template = 1;
|
|
102
|
+
*/
|
|
103
|
+
docTemplate?: DocTemplate;
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Describes the message api.v1.CreateDocTemplateResponse.
|
|
108
|
+
* Use `create(CreateDocTemplateResponseSchema)` to create a new message.
|
|
109
|
+
*/
|
|
110
|
+
export declare const CreateDocTemplateResponseSchema: GenMessage<CreateDocTemplateResponse>;
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* @generated from message api.v1.UpdateDocTemplateRequest
|
|
114
|
+
*/
|
|
115
|
+
export declare type UpdateDocTemplateRequest = Message<"api.v1.UpdateDocTemplateRequest"> & {
|
|
116
|
+
/**
|
|
117
|
+
* @generated from field: uint32 id = 1;
|
|
118
|
+
*/
|
|
119
|
+
id: number;
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* @generated from field: string name = 2;
|
|
123
|
+
*/
|
|
124
|
+
name: string;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* @generated from field: string title = 3;
|
|
128
|
+
*/
|
|
129
|
+
title: string;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* @generated from field: string content = 4;
|
|
133
|
+
*/
|
|
134
|
+
content: string;
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Describes the message api.v1.UpdateDocTemplateRequest.
|
|
139
|
+
* Use `create(UpdateDocTemplateRequestSchema)` to create a new message.
|
|
140
|
+
*/
|
|
141
|
+
export declare const UpdateDocTemplateRequestSchema: GenMessage<UpdateDocTemplateRequest>;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* @generated from message api.v1.UpdateDocTemplateResponse
|
|
145
|
+
*/
|
|
146
|
+
export declare type UpdateDocTemplateResponse = Message<"api.v1.UpdateDocTemplateResponse"> & {
|
|
147
|
+
/**
|
|
148
|
+
* @generated from field: api.v1.DocTemplate doc_template = 1;
|
|
149
|
+
*/
|
|
150
|
+
docTemplate?: DocTemplate;
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Describes the message api.v1.UpdateDocTemplateResponse.
|
|
155
|
+
* Use `create(UpdateDocTemplateResponseSchema)` to create a new message.
|
|
156
|
+
*/
|
|
157
|
+
export declare const UpdateDocTemplateResponseSchema: GenMessage<UpdateDocTemplateResponse>;
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* @generated from message api.v1.DeleteDocTemplateRequest
|
|
161
|
+
*/
|
|
162
|
+
export declare type DeleteDocTemplateRequest = Message<"api.v1.DeleteDocTemplateRequest"> & {
|
|
163
|
+
/**
|
|
164
|
+
* @generated from field: uint32 id = 1;
|
|
165
|
+
*/
|
|
166
|
+
id: number;
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Describes the message api.v1.DeleteDocTemplateRequest.
|
|
171
|
+
* Use `create(DeleteDocTemplateRequestSchema)` to create a new message.
|
|
172
|
+
*/
|
|
173
|
+
export declare const DeleteDocTemplateRequestSchema: GenMessage<DeleteDocTemplateRequest>;
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* @generated from message api.v1.ListDocTemplatesRequest
|
|
177
|
+
*/
|
|
178
|
+
export declare type ListDocTemplatesRequest = Message<"api.v1.ListDocTemplatesRequest"> & {
|
|
179
|
+
/**
|
|
180
|
+
* @generated from field: uint32 project_id = 1;
|
|
181
|
+
*/
|
|
182
|
+
projectId: number;
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Describes the message api.v1.ListDocTemplatesRequest.
|
|
187
|
+
* Use `create(ListDocTemplatesRequestSchema)` to create a new message.
|
|
188
|
+
*/
|
|
189
|
+
export declare const ListDocTemplatesRequestSchema: GenMessage<ListDocTemplatesRequest>;
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* @generated from message api.v1.ListDocTemplatesResponse
|
|
193
|
+
*/
|
|
194
|
+
export declare type ListDocTemplatesResponse = Message<"api.v1.ListDocTemplatesResponse"> & {
|
|
195
|
+
/**
|
|
196
|
+
* @generated from field: repeated api.v1.DocTemplate doc_templates = 1;
|
|
197
|
+
*/
|
|
198
|
+
docTemplates: DocTemplate[];
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Describes the message api.v1.ListDocTemplatesResponse.
|
|
203
|
+
* Use `create(ListDocTemplatesResponseSchema)` to create a new message.
|
|
204
|
+
*/
|
|
205
|
+
export declare const ListDocTemplatesResponseSchema: GenMessage<ListDocTemplatesResponse>;
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* @generated from service api.v1.DocTemplateService
|
|
209
|
+
*/
|
|
210
|
+
export declare const DocTemplateService: GenService<{
|
|
211
|
+
/**
|
|
212
|
+
* @generated from rpc api.v1.DocTemplateService.CreateDocTemplate
|
|
213
|
+
*/
|
|
214
|
+
createDocTemplate: {
|
|
215
|
+
methodKind: "unary";
|
|
216
|
+
input: typeof CreateDocTemplateRequestSchema;
|
|
217
|
+
output: typeof CreateDocTemplateResponseSchema;
|
|
218
|
+
},
|
|
219
|
+
/**
|
|
220
|
+
* @generated from rpc api.v1.DocTemplateService.UpdateDocTemplate
|
|
221
|
+
*/
|
|
222
|
+
updateDocTemplate: {
|
|
223
|
+
methodKind: "unary";
|
|
224
|
+
input: typeof UpdateDocTemplateRequestSchema;
|
|
225
|
+
output: typeof UpdateDocTemplateResponseSchema;
|
|
226
|
+
},
|
|
227
|
+
/**
|
|
228
|
+
* @generated from rpc api.v1.DocTemplateService.DeleteDocTemplate
|
|
229
|
+
*/
|
|
230
|
+
deleteDocTemplate: {
|
|
231
|
+
methodKind: "unary";
|
|
232
|
+
input: typeof DeleteDocTemplateRequestSchema;
|
|
233
|
+
output: typeof EmptySchema;
|
|
234
|
+
},
|
|
235
|
+
/**
|
|
236
|
+
* @generated from rpc api.v1.DocTemplateService.ListDocTemplates
|
|
237
|
+
*/
|
|
238
|
+
listDocTemplates: {
|
|
239
|
+
methodKind: "unary";
|
|
240
|
+
input: typeof ListDocTemplatesRequestSchema;
|
|
241
|
+
output: typeof ListDocTemplatesResponseSchema;
|
|
242
|
+
},
|
|
243
|
+
}>;
|
|
244
|
+
|