@codio-ai/opencode-authoring-agent 0.1.0

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 (88) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/bin/codio-authoring-register.js +77 -0
  4. package/bin/codio-authoring-unregister.js +45 -0
  5. package/dist/agents/assessment-author.d.ts +3 -0
  6. package/dist/agents/assessment-author.d.ts.map +1 -0
  7. package/dist/agents/assessment-author.test.d.ts +2 -0
  8. package/dist/agents/assessment-author.test.d.ts.map +1 -0
  9. package/dist/agents/index.d.ts +6 -0
  10. package/dist/agents/index.d.ts.map +1 -0
  11. package/dist/agents/index.test.d.ts +2 -0
  12. package/dist/agents/index.test.d.ts.map +1 -0
  13. package/dist/agents/orchestrator.d.ts +4 -0
  14. package/dist/agents/orchestrator.d.ts.map +1 -0
  15. package/dist/agents/orchestrator.test.d.ts +2 -0
  16. package/dist/agents/orchestrator.test.d.ts.map +1 -0
  17. package/dist/agents/outline-architect.d.ts +3 -0
  18. package/dist/agents/outline-architect.d.ts.map +1 -0
  19. package/dist/agents/outline-architect.test.d.ts +2 -0
  20. package/dist/agents/outline-architect.test.d.ts.map +1 -0
  21. package/dist/agents/page-author.d.ts +3 -0
  22. package/dist/agents/page-author.d.ts.map +1 -0
  23. package/dist/agents/page-author.test.d.ts +2 -0
  24. package/dist/agents/page-author.test.d.ts.map +1 -0
  25. package/dist/agents/source-ingester.d.ts +3 -0
  26. package/dist/agents/source-ingester.d.ts.map +1 -0
  27. package/dist/agents/source-ingester.test.d.ts +2 -0
  28. package/dist/agents/source-ingester.test.d.ts.map +1 -0
  29. package/dist/agents/types.d.ts +39 -0
  30. package/dist/agents/types.d.ts.map +1 -0
  31. package/dist/agents/types.test.d.ts +2 -0
  32. package/dist/agents/types.test.d.ts.map +1 -0
  33. package/dist/agents/validator.d.ts +3 -0
  34. package/dist/agents/validator.d.ts.map +1 -0
  35. package/dist/agents/validator.test.d.ts +2 -0
  36. package/dist/agents/validator.test.d.ts.map +1 -0
  37. package/dist/config/bedrock-models.d.ts +11 -0
  38. package/dist/config/bedrock-models.d.ts.map +1 -0
  39. package/dist/config/index.d.ts +26 -0
  40. package/dist/config/index.d.ts.map +1 -0
  41. package/dist/config/index.test.d.ts +2 -0
  42. package/dist/config/index.test.d.ts.map +1 -0
  43. package/dist/index.d.ts +5 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +1398 -0
  46. package/dist/index.test.d.ts +2 -0
  47. package/dist/index.test.d.ts.map +1 -0
  48. package/dist/tools/create-assessment.d.ts +310 -0
  49. package/dist/tools/create-assessment.d.ts.map +1 -0
  50. package/dist/tools/create-assessment.test.d.ts +2 -0
  51. package/dist/tools/create-assessment.test.d.ts.map +1 -0
  52. package/dist/tools/create-page.d.ts +49 -0
  53. package/dist/tools/create-page.d.ts.map +1 -0
  54. package/dist/tools/create-page.test.d.ts +2 -0
  55. package/dist/tools/create-page.test.d.ts.map +1 -0
  56. package/dist/tools/index.d.ts +62 -0
  57. package/dist/tools/index.d.ts.map +1 -0
  58. package/dist/tools/index.test.d.ts +2 -0
  59. package/dist/tools/index.test.d.ts.map +1 -0
  60. package/dist/tools/validate-guide.d.ts +17 -0
  61. package/dist/tools/validate-guide.d.ts.map +1 -0
  62. package/dist/tools/validate-guide.test.d.ts +2 -0
  63. package/dist/tools/validate-guide.test.d.ts.map +1 -0
  64. package/dist/utils/codio-paths.d.ts +13 -0
  65. package/dist/utils/codio-paths.d.ts.map +1 -0
  66. package/dist/utils/codio-paths.test.d.ts +2 -0
  67. package/dist/utils/codio-paths.test.d.ts.map +1 -0
  68. package/dist/utils/taskid.d.ts +7 -0
  69. package/dist/utils/taskid.d.ts.map +1 -0
  70. package/dist/utils/taskid.test.d.ts +2 -0
  71. package/dist/utils/taskid.test.d.ts.map +1 -0
  72. package/dist/utils/uuid.d.ts +3 -0
  73. package/dist/utils/uuid.d.ts.map +1 -0
  74. package/dist/utils/uuid.test.d.ts +2 -0
  75. package/dist/utils/uuid.test.d.ts.map +1 -0
  76. package/package.json +70 -0
  77. package/src/skills/reference-assessment-types/SKILL.md +309 -0
  78. package/src/skills/reference-authoring-notes/SKILL.md +297 -0
  79. package/src/skills/reference-mcq-quality/SKILL.md +56 -0
  80. package/src/skills/reference-page-flow/SKILL.md +62 -0
  81. package/src/skills/reference-project-defaults/SKILL.md +80 -0
  82. package/src/skills/reference-style/SKILL.md +14 -0
  83. package/src/skills/workflow-add-assessment/SKILL.md +29 -0
  84. package/src/skills/workflow-add-page/SKILL.md +32 -0
  85. package/src/skills/workflow-import-source/SKILL.md +31 -0
  86. package/src/skills/workflow-new-assignment/SKILL.md +69 -0
  87. package/src/skills/workflow-reorder/SKILL.md +24 -0
  88. package/src/skills/workflow-revise-page/SKILL.md +30 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,310 @@
1
+ import { z } from 'zod';
2
+ interface MetadataTag {
3
+ name: string;
4
+ value: string;
5
+ }
6
+ export declare const mcqPayloadSchema: z.ZodObject<{
7
+ name: z.ZodDefault<z.ZodString>;
8
+ instructions: z.ZodString;
9
+ answers: z.ZodArray<z.ZodObject<{
10
+ answer: z.ZodString;
11
+ correct: z.ZodDefault<z.ZodBoolean>;
12
+ }, z.core.$strip>>;
13
+ multiple_response: z.ZodDefault<z.ZodBoolean>;
14
+ randomize: z.ZodDefault<z.ZodBoolean>;
15
+ tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
16
+ name: z.ZodString;
17
+ value: z.ZodString;
18
+ }, z.core.$strip>>>;
19
+ blooms: z.ZodDefault<z.ZodString>;
20
+ lo: z.ZodDefault<z.ZodString>;
21
+ guidance: z.ZodDefault<z.ZodString>;
22
+ max_attempts: z.ZodDefault<z.ZodNumber>;
23
+ points: z.ZodDefault<z.ZodNumber>;
24
+ }, z.core.$strip>;
25
+ export type McqPayload = z.infer<typeof mcqPayloadSchema>;
26
+ export interface McqAssessmentJson {
27
+ type: 'multiple-choice';
28
+ taskId: string;
29
+ source: {
30
+ name: string;
31
+ showName: boolean;
32
+ instructions: string;
33
+ multipleResponse: boolean;
34
+ isRandomized: boolean;
35
+ answers: Array<{
36
+ _id: string;
37
+ correct: boolean;
38
+ answer: string;
39
+ }>;
40
+ metadata: {
41
+ tags: MetadataTag[];
42
+ files: string[];
43
+ opened: unknown[];
44
+ };
45
+ bloomsObjectiveLevel: string;
46
+ learningObjectives: string;
47
+ guidance: string;
48
+ showGuidanceAfterResponseOption: {
49
+ type: string;
50
+ passedFrom: number;
51
+ };
52
+ maxAttemptsCount: number;
53
+ showExpectedAnswerOption: {
54
+ type: string;
55
+ };
56
+ points: number;
57
+ incorrectPoints: number;
58
+ arePartialPointsAllowed: boolean;
59
+ useMaximumScore: boolean;
60
+ };
61
+ }
62
+ export declare function buildMcqAssessment(raw: unknown, taskId?: string): McqAssessmentJson;
63
+ export declare const codeTestPayloadSchema: z.ZodObject<{
64
+ name: z.ZodDefault<z.ZodString>;
65
+ command: z.ZodString;
66
+ test_cases: z.ZodDefault<z.ZodArray<z.ZodObject<{
67
+ input: z.ZodDefault<z.ZodString>;
68
+ output: z.ZodDefault<z.ZodString>;
69
+ arguments: z.ZodDefault<z.ZodString>;
70
+ feedback: z.ZodDefault<z.ZodString>;
71
+ show_feedback: z.ZodDefault<z.ZodBoolean>;
72
+ }, z.core.$strip>>>;
73
+ starter_file_path: z.ZodDefault<z.ZodString>;
74
+ starter_file_content: z.ZodOptional<z.ZodString>;
75
+ options: z.ZodDefault<z.ZodObject<{
76
+ ignoreCase: z.ZodDefault<z.ZodBoolean>;
77
+ ignoreNewline: z.ZodDefault<z.ZodBoolean>;
78
+ ignoreWhitespaces: z.ZodDefault<z.ZodBoolean>;
79
+ matchSubstring: z.ZodDefault<z.ZodBoolean>;
80
+ timeout: z.ZodDefault<z.ZodNumber>;
81
+ }, z.core.$strip>>;
82
+ pre_execute_command: z.ZodDefault<z.ZodString>;
83
+ one_time_test: z.ZodDefault<z.ZodBoolean>;
84
+ partial_points: z.ZodDefault<z.ZodBoolean>;
85
+ show_name: z.ZodDefault<z.ZodBoolean>;
86
+ show_expected_answer: z.ZodDefault<z.ZodBoolean>;
87
+ show_guidance_after_response: z.ZodDefault<z.ZodBoolean>;
88
+ instructions: z.ZodDefault<z.ZodString>;
89
+ tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
90
+ name: z.ZodString;
91
+ value: z.ZodString;
92
+ }, z.core.$strip>>>;
93
+ blooms: z.ZodDefault<z.ZodString>;
94
+ lo: z.ZodDefault<z.ZodString>;
95
+ guidance: z.ZodDefault<z.ZodString>;
96
+ points: z.ZodDefault<z.ZodNumber>;
97
+ }, z.core.$strip>;
98
+ export type CodeTestPayload = z.infer<typeof codeTestPayloadSchema>;
99
+ export interface CodeTestAssessmentJson {
100
+ type: 'code-output-compare';
101
+ taskId: string;
102
+ source: Record<string, unknown>;
103
+ }
104
+ export declare function buildCodeTestAssessment(raw: unknown, taskId?: string): CodeTestAssessmentJson;
105
+ export declare function parseFitbText(raw: string): {
106
+ blank: string[];
107
+ text: Array<string | 0>;
108
+ };
109
+ export declare const fitbPayloadSchema: z.ZodObject<{
110
+ name: z.ZodDefault<z.ZodString>;
111
+ instructions: z.ZodString;
112
+ text: z.ZodString;
113
+ show_name: z.ZodDefault<z.ZodBoolean>;
114
+ show_values: z.ZodDefault<z.ZodBoolean>;
115
+ distractors: z.ZodDefault<z.ZodString>;
116
+ tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
117
+ name: z.ZodString;
118
+ value: z.ZodString;
119
+ }, z.core.$strip>>>;
120
+ blooms: z.ZodDefault<z.ZodString>;
121
+ lo: z.ZodDefault<z.ZodString>;
122
+ guidance: z.ZodDefault<z.ZodString>;
123
+ max_attempts: z.ZodDefault<z.ZodNumber>;
124
+ points: z.ZodDefault<z.ZodNumber>;
125
+ partial_points: z.ZodDefault<z.ZodBoolean>;
126
+ }, z.core.$strip>;
127
+ export type FitbPayload = z.infer<typeof fitbPayloadSchema>;
128
+ export interface FitbAssessmentJson {
129
+ type: 'fill-in-the-blanks';
130
+ taskId: string;
131
+ source: Record<string, unknown>;
132
+ }
133
+ export declare function buildFitbAssessment(raw: unknown, taskId?: string): FitbAssessmentJson;
134
+ export declare const parsonsOptionsSchema: z.ZodObject<{
135
+ sortableId: z.ZodDefault<z.ZodString>;
136
+ max_wrong_lines: z.ZodDefault<z.ZodNumber>;
137
+ exec_limit: z.ZodDefault<z.ZodNumber>;
138
+ can_indent: z.ZodDefault<z.ZodBoolean>;
139
+ x_indent: z.ZodDefault<z.ZodNumber>;
140
+ lang: z.ZodDefault<z.ZodString>;
141
+ show_feedback: z.ZodDefault<z.ZodBoolean>;
142
+ python3: z.ZodDefault<z.ZodBoolean>;
143
+ trashId: z.ZodDefault<z.ZodString>;
144
+ }, z.core.$strip>;
145
+ export declare const parsonsPayloadSchema: z.ZodObject<{
146
+ name: z.ZodOptional<z.ZodString>;
147
+ instructions: z.ZodString;
148
+ initial: z.ZodString;
149
+ options: z.ZodOptional<z.ZodObject<{
150
+ sortableId: z.ZodDefault<z.ZodString>;
151
+ max_wrong_lines: z.ZodDefault<z.ZodNumber>;
152
+ exec_limit: z.ZodDefault<z.ZodNumber>;
153
+ can_indent: z.ZodDefault<z.ZodBoolean>;
154
+ x_indent: z.ZodDefault<z.ZodNumber>;
155
+ lang: z.ZodDefault<z.ZodString>;
156
+ show_feedback: z.ZodDefault<z.ZodBoolean>;
157
+ python3: z.ZodDefault<z.ZodBoolean>;
158
+ trashId: z.ZodDefault<z.ZodString>;
159
+ }, z.core.$strip>>;
160
+ grader: z.ZodDefault<z.ZodString>;
161
+ points: z.ZodDefault<z.ZodNumber>;
162
+ blooms: z.ZodDefault<z.ZodString>;
163
+ lo: z.ZodDefault<z.ZodString>;
164
+ guidance: z.ZodDefault<z.ZodString>;
165
+ max_attempts: z.ZodDefault<z.ZodNumber>;
166
+ use_maximum_score: z.ZodDefault<z.ZodBoolean>;
167
+ tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
168
+ name: z.ZodString;
169
+ value: z.ZodString;
170
+ }, z.core.$strip>>>;
171
+ show_name: z.ZodDefault<z.ZodBoolean>;
172
+ show_guidance_after_attempts: z.ZodDefault<z.ZodNumber>;
173
+ }, z.core.$strip>;
174
+ export type ParsonsPayload = z.infer<typeof parsonsPayloadSchema>;
175
+ export interface ParsonsAssessmentJson {
176
+ type: 'parsons-puzzle';
177
+ taskId: string;
178
+ source: {
179
+ name: string;
180
+ showName: boolean;
181
+ instructions: string;
182
+ initial: string;
183
+ options: string;
184
+ grader: string;
185
+ metadata: {
186
+ tags: MetadataTag[];
187
+ files: string[];
188
+ opened: unknown[];
189
+ };
190
+ bloomsObjectiveLevel: string;
191
+ learningObjectives: string;
192
+ guidance: string;
193
+ showGuidanceAfterResponseOption: {
194
+ type: string;
195
+ passedFrom: number;
196
+ };
197
+ maxAttemptsCount: number;
198
+ points: number;
199
+ useMaximumScore: boolean;
200
+ };
201
+ }
202
+ export declare function buildParsonsAssessment(raw: unknown, taskId?: string): ParsonsAssessmentJson;
203
+ export declare const llmAutoRubricRubricSchema: z.ZodObject<{
204
+ id: z.ZodOptional<z.ZodString>;
205
+ title: z.ZodString;
206
+ description: z.ZodString;
207
+ points: z.ZodNumber;
208
+ }, z.core.$strip>;
209
+ export declare const llmAutoRubricSolutionSchema: z.ZodObject<{
210
+ path: z.ZodString;
211
+ content: z.ZodString;
212
+ }, z.core.$strip>;
213
+ export declare const llmAutoRubricPayloadSchema: z.ZodObject<{
214
+ name: z.ZodOptional<z.ZodString>;
215
+ instructions: z.ZodString;
216
+ files: z.ZodDefault<z.ZodArray<z.ZodString>>;
217
+ rubrics: z.ZodArray<z.ZodObject<{
218
+ id: z.ZodOptional<z.ZodString>;
219
+ title: z.ZodString;
220
+ description: z.ZodString;
221
+ points: z.ZodNumber;
222
+ }, z.core.$strip>>;
223
+ rubrics_requirements: z.ZodDefault<z.ZodString>;
224
+ solutions: z.ZodDefault<z.ZodArray<z.ZodObject<{
225
+ path: z.ZodString;
226
+ content: z.ZodString;
227
+ }, z.core.$strip>>>;
228
+ points: z.ZodDefault<z.ZodNumber>;
229
+ partial_points: z.ZodDefault<z.ZodBoolean>;
230
+ blooms: z.ZodDefault<z.ZodString>;
231
+ lo: z.ZodDefault<z.ZodString>;
232
+ guidance: z.ZodDefault<z.ZodString>;
233
+ max_attempts: z.ZodDefault<z.ZodNumber>;
234
+ tags: z.ZodOptional<z.ZodArray<z.ZodObject<{
235
+ name: z.ZodString;
236
+ value: z.ZodString;
237
+ }, z.core.$strip>>>;
238
+ show_name: z.ZodDefault<z.ZodBoolean>;
239
+ show_guidance_after_attempts: z.ZodDefault<z.ZodNumber>;
240
+ }, z.core.$strip>;
241
+ export type LlmAutoRubricPayload = z.infer<typeof llmAutoRubricPayloadSchema>;
242
+ export interface LlmAutoRubricAssessmentJson {
243
+ type: 'llm-based-auto-rubric';
244
+ taskId: string;
245
+ source: {
246
+ name: string;
247
+ showName: boolean;
248
+ instructions: string;
249
+ metadata: {
250
+ tags: MetadataTag[];
251
+ files: string[];
252
+ opened: Array<{
253
+ type: string;
254
+ panelNumber: number;
255
+ content: string;
256
+ }>;
257
+ };
258
+ bloomsObjectiveLevel: string;
259
+ learningObjectives: string;
260
+ guidance: string;
261
+ showGuidanceAfterResponseOption: {
262
+ type: string;
263
+ passedFrom: number;
264
+ };
265
+ maxAttemptsCount: number;
266
+ points: number;
267
+ arePartialPointsAllowed: boolean;
268
+ rubrics: Array<{
269
+ id: string;
270
+ title: string;
271
+ description: string;
272
+ points: number;
273
+ }>;
274
+ rubricsRequirements: string;
275
+ solutions: Array<{
276
+ path: string;
277
+ content: string;
278
+ }>;
279
+ };
280
+ }
281
+ export declare function buildLlmAutoRubricAssessment(raw: unknown, taskId?: string): LlmAutoRubricAssessmentJson;
282
+ export declare const createAssessmentInputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
283
+ type: z.ZodLiteral<"multiple-choice">;
284
+ workspace: z.ZodString;
285
+ payload: z.ZodUnknown;
286
+ }, z.core.$strip>, z.ZodObject<{
287
+ type: z.ZodLiteral<"code-output-compare">;
288
+ workspace: z.ZodString;
289
+ payload: z.ZodUnknown;
290
+ }, z.core.$strip>, z.ZodObject<{
291
+ type: z.ZodLiteral<"fill-in-the-blanks">;
292
+ workspace: z.ZodString;
293
+ payload: z.ZodUnknown;
294
+ }, z.core.$strip>, z.ZodObject<{
295
+ type: z.ZodLiteral<"parsons-puzzle">;
296
+ workspace: z.ZodString;
297
+ payload: z.ZodUnknown;
298
+ }, z.core.$strip>, z.ZodObject<{
299
+ type: z.ZodLiteral<"llm-based-auto-rubric">;
300
+ workspace: z.ZodString;
301
+ payload: z.ZodUnknown;
302
+ }, z.core.$strip>], "type">;
303
+ export interface CreateAssessmentResult {
304
+ taskId: string;
305
+ jsonPath: string;
306
+ embedLine: string;
307
+ }
308
+ export declare function createAssessmentHandler(raw: unknown): Promise<CreateAssessmentResult>;
309
+ export {};
310
+ //# sourceMappingURL=create-assessment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-assessment.d.ts","sourceRoot":"","sources":["../../src/tools/create-assessment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAkBD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;iBAqBzB,CAAC;AAEL,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,YAAY,EAAE,OAAO,CAAC;QACtB,OAAO,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAClE,QAAQ,EAAE;YAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,EAAE,CAAC;YAAC,MAAM,EAAE,OAAO,EAAE,CAAA;SAAE,CAAC;QACtE,oBAAoB,EAAE,MAAM,CAAC;QAC7B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,+BAA+B,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QACtE,gBAAgB,EAAE,MAAM,CAAC;QACzB,wBAAwB,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3C,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,CAAC;QACxB,uBAAuB,EAAE,OAAO,CAAC;QACjC,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,OAAO,EACZ,MAAM,GAAE,MAA0C,GACjD,iBAAiB,CAiCnB;AAID,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2ChC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,EACZ,MAAM,GAAE,MAA8C,GACrD,sBAAsB,CAsCxB;AAMD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAC1C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;CACzB,CAcA;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;iBAoB1B,CAAC;AAEL,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,EACZ,MAAM,GAAE,MAA6C,GACpD,kBAAkB,CA8BpB;AAID,eAAO,MAAM,oBAAoB;;;;;;;;;;iBAU/B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAe/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE;YAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,EAAE,CAAC;YAAC,MAAM,EAAE,OAAO,EAAE,CAAA;SAAE,CAAC;QACtE,oBAAoB,EAAE,MAAM,CAAC;QAC7B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,+BAA+B,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QACtE,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,OAAO,EACZ,MAAM,GAAE,MAAyC,GAChD,qBAAqB,CA8BvB;AAID,eAAO,MAAM,yBAAyB;;;;;iBAKpC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;iBAGtC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgBrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,uBAAuB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE;YACR,IAAI,EAAE,WAAW,EAAE,CAAC;YACpB,KAAK,EAAE,MAAM,EAAE,CAAC;YAChB,MAAM,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,WAAW,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SACvE,CAAC;QACF,oBAAoB,EAAE,MAAM,CAAC;QAC7B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,+BAA+B,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QACtE,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,uBAAuB,EAAE,OAAO,CAAC;QACjC,OAAO,EAAE,KAAK,CAAC;YACb,EAAE,EAAE,MAAM,CAAC;YACX,KAAK,EAAE,MAAM,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;YACpB,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;QACH,mBAAmB,EAAE,MAAM,CAAC;QAC5B,SAAS,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACrD,CAAC;CACH;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,OAAO,EACZ,MAAM,GAAE,MAAgD,GACvD,2BAA2B,CAuC7B;AAID,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;2BA0BtC,CAAC;AAEH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,sBAAsB,CAAC,CAqFjC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=create-assessment.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-assessment.test.d.ts","sourceRoot":"","sources":["../../src/tools/create-assessment.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,49 @@
1
+ import { z } from 'zod';
2
+ export declare const PAGE_TYPES: readonly ["intro", "objectives", "instructional", "assessment", "conclusion"];
3
+ export declare const PAGE_LAYOUTS: readonly ["1-panel", "2-panels-tree"];
4
+ export declare const createPageInputSchema: z.ZodObject<{
5
+ workspace: z.ZodString;
6
+ stem: z.ZodString;
7
+ title: z.ZodString;
8
+ type: z.ZodEnum<{
9
+ intro: "intro";
10
+ objectives: "objectives";
11
+ instructional: "instructional";
12
+ assessment: "assessment";
13
+ conclusion: "conclusion";
14
+ }>;
15
+ layout: z.ZodEnum<{
16
+ "1-panel": "1-panel";
17
+ "2-panels-tree": "2-panels-tree";
18
+ }>;
19
+ learningObjectives: z.ZodDefault<z.ZodArray<z.ZodString>>;
20
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
21
+ markdownBody: z.ZodString;
22
+ chapterFolder: z.ZodOptional<z.ZodString>;
23
+ }, z.core.$strip>;
24
+ export type CreatePageInput = z.infer<typeof createPageInputSchema>;
25
+ export interface FileEntry {
26
+ path: string;
27
+ panel: number;
28
+ action: string;
29
+ }
30
+ export interface PageJson {
31
+ id: string;
32
+ title: string;
33
+ type: 'page';
34
+ contentType: 'markdown';
35
+ layout: (typeof PAGE_LAYOUTS)[number];
36
+ files: FileEntry[];
37
+ teacherOnly: boolean;
38
+ learningObjectives: string;
39
+ }
40
+ export declare function buildPageJson(input: CreatePageInput): PageJson;
41
+ export interface CreatePageResult {
42
+ uuid: string;
43
+ stem: string;
44
+ jsonPath: string;
45
+ mdPath: string;
46
+ }
47
+ export declare function writeCreatedPage(workspace: string, chapterFolder: string | undefined, input: CreatePageInput): CreatePageResult;
48
+ export declare function createPageHandler(raw: unknown): Promise<CreatePageResult>;
49
+ //# sourceMappingURL=create-page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-page.d.ts","sourceRoot":"","sources":["../../src/tools/create-page.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,UAAU,+EAMb,CAAC;AAEX,eAAO,MAAM,YAAY,uCAAwC,CAAC;AAElE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;iBAuB/B,CAAC;AAEJ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;IACtC,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,QAAQ,CAgB9D;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,KAAK,EAAE,eAAe,GACrB,gBAAgB,CA6BlB;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,gBAAgB,CAAC,CAG3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=create-page.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-page.test.d.ts","sourceRoot":"","sources":["../../src/tools/create-page.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,62 @@
1
+ export declare const create_page: {
2
+ description: string;
3
+ args: {
4
+ workspace: import("zod").ZodString;
5
+ stem: import("zod").ZodString;
6
+ title: import("zod").ZodString;
7
+ type: import("zod").ZodEnum<{
8
+ intro: "intro";
9
+ objectives: "objectives";
10
+ instructional: "instructional";
11
+ assessment: "assessment";
12
+ conclusion: "conclusion";
13
+ }>;
14
+ layout: import("zod").ZodEnum<{
15
+ "1-panel": "1-panel";
16
+ "2-panels-tree": "2-panels-tree";
17
+ }>;
18
+ learningObjectives: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodString>>;
19
+ files: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
20
+ markdownBody: import("zod").ZodString;
21
+ chapterFolder: import("zod").ZodOptional<import("zod").ZodString>;
22
+ };
23
+ execute(args: {
24
+ workspace: string;
25
+ stem: string;
26
+ title: string;
27
+ type: "intro" | "objectives" | "instructional" | "assessment" | "conclusion";
28
+ layout: "1-panel" | "2-panels-tree";
29
+ learningObjectives: string[];
30
+ markdownBody: string;
31
+ files?: string[] | undefined;
32
+ chapterFolder?: string | undefined;
33
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
34
+ };
35
+ export declare const create_assessment: {
36
+ description: string;
37
+ args: {
38
+ type: import("zod").ZodEnum<{
39
+ "multiple-choice": "multiple-choice";
40
+ "code-output-compare": "code-output-compare";
41
+ "fill-in-the-blanks": "fill-in-the-blanks";
42
+ }>;
43
+ workspace: import("zod").ZodString;
44
+ payload: import("zod").ZodUnknown;
45
+ };
46
+ execute(args: {
47
+ type: "multiple-choice" | "code-output-compare" | "fill-in-the-blanks";
48
+ workspace: string;
49
+ payload: unknown;
50
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
51
+ };
52
+ export declare const validate_guide: {
53
+ description: string;
54
+ args: {
55
+ workspace: import("zod").ZodString;
56
+ };
57
+ execute(args: {
58
+ workspace: string;
59
+ }, context: import("@opencode-ai/plugin").ToolContext): Promise<import("@opencode-ai/plugin").ToolResult>;
60
+ };
61
+ export declare const tools: Record<string, unknown>;
62
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOtB,CAAC;AAOH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;CAkB5B,CAAC;AAIH,eAAO,MAAM,cAAc;;;;;;;;CAOzB,CAAC;AAQH,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAIzC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/tools/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ export declare const validateGuideInputSchema: z.ZodObject<{
3
+ workspace: z.ZodString;
4
+ }, z.core.$strip>;
5
+ export type ValidateGuideInput = z.infer<typeof validateGuideInputSchema>;
6
+ export type FindingCategory = 'missing_content_dir' | 'invalid_uuid' | 'orphan_order_stem' | 'broken_assessment_ref' | 'taskid_filename_mismatch';
7
+ export interface Finding {
8
+ category: FindingCategory;
9
+ detail: string;
10
+ severity: 'error' | 'warning';
11
+ }
12
+ export interface ValidateGuideResult {
13
+ findings: Finding[];
14
+ passed: boolean;
15
+ }
16
+ export declare function validateGuideHandler(raw: unknown): Promise<ValidateGuideResult>;
17
+ //# sourceMappingURL=validate-guide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-guide.d.ts","sourceRoot":"","sources":["../../src/tools/validate-guide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,wBAAwB;;iBAEnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,MAAM,MAAM,eAAe,GACvB,qBAAqB,GACrB,cAAc,GACd,mBAAmB,GACnB,uBAAuB,GACvB,0BAA0B,CAAC;AAE/B,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAyCD,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,mBAAmB,CAAC,CAwG9B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validate-guide.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-guide.test.d.ts","sourceRoot":"","sources":["../../src/tools/validate-guide.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ export interface CodioPaths {
2
+ workspace: string;
3
+ guides: string;
4
+ content: string;
5
+ assessments: string;
6
+ secure: string;
7
+ materials: string;
8
+ pluginDir: string;
9
+ }
10
+ export declare function resolveCodioPaths(ctx: {
11
+ directory: string;
12
+ }): CodioPaths;
13
+ //# sourceMappingURL=codio-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codio-paths.d.ts","sourceRoot":"","sources":["../../src/utils/codio-paths.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAWxE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=codio-paths.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codio-paths.test.d.ts","sourceRoot":"","sources":["../../src/utils/codio-paths.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export type AssessmentType = 'multiple-choice' | 'code-output-compare' | 'fill-in-the-blanks' | 'parsons-puzzle' | 'llm-based-auto-rubric';
2
+ export declare const ASSESSMENT_TYPES: AssessmentType[];
3
+ export declare const ANY_TASKID_RE: RegExp;
4
+ export declare function generateTaskId(type: AssessmentType): string;
5
+ export declare function isTaskId(value: string): boolean;
6
+ export declare function parseTaskIdType(value: string): AssessmentType | null;
7
+ //# sourceMappingURL=taskid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskid.d.ts","sourceRoot":"","sources":["../../src/utils/taskid.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GACtB,iBAAiB,GACjB,qBAAqB,GACrB,oBAAoB,GACpB,gBAAgB,GAChB,uBAAuB,CAAC;AAE5B,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAM5C,CAAC;AAMF,eAAO,MAAM,aAAa,QAGzB,CAAC;AAEF,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAI3D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAKpE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=taskid.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskid.test.d.ts","sourceRoot":"","sources":["../../src/utils/taskid.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export declare function generateUuidV4(): string;
2
+ export declare function isUuidV4(value: string): boolean;
3
+ //# sourceMappingURL=uuid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../src/utils/uuid.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE/C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=uuid.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.test.d.ts","sourceRoot":"","sources":["../../src/utils/uuid.test.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,70 @@
1
+ {
2
+ "name": "@codio-ai/opencode-authoring-agent",
3
+ "version": "0.1.0",
4
+ "description": "Opencode plugin for authoring Codio guide assignments — orchestrator, subagents, tools, and skills.",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "src/skills",
17
+ "bin",
18
+ "README.md",
19
+ "LICENSE"
20
+ ],
21
+ "bin": {
22
+ "codio-authoring-register": "bin/codio-authoring-register.js",
23
+ "codio-authoring-unregister": "bin/codio-authoring-unregister.js"
24
+ },
25
+ "scripts": {
26
+ "build": "bun build src/index.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/sdk --external zod && tsc --emitDeclarationOnly",
27
+ "postinstall": "node ./bin/codio-authoring-register.js || true",
28
+ "preuninstall": "node ./bin/codio-authoring-unregister.js || true",
29
+ "test": "bun test",
30
+ "typecheck": "tsc --noEmit",
31
+ "lint": "biome lint .",
32
+ "format": "biome format . --write",
33
+ "check": "biome check --write .",
34
+ "check:ci": "biome check ."
35
+ },
36
+ "keywords": [
37
+ "opencode",
38
+ "opencode-plugin",
39
+ "codio",
40
+ "assignment-authoring",
41
+ "education"
42
+ ],
43
+ "license": "MIT",
44
+ "repository": {
45
+ "type": "git",
46
+ "url": "git+https://github.com/codio-extensions/codio-authoring-opencode-plugin.git"
47
+ },
48
+ "homepage": "https://github.com/codio-extensions/codio-authoring-opencode-plugin#readme",
49
+ "bugs": "https://github.com/codio-extensions/codio-authoring-opencode-plugin/issues",
50
+ "engines": {
51
+ "node": ">=20"
52
+ },
53
+ "publishConfig": {
54
+ "access": "public"
55
+ },
56
+ "dependencies": {
57
+ "@opencode-ai/plugin": "^1.14.48",
58
+ "@opencode-ai/sdk": "^1.14.48"
59
+ },
60
+ "devDependencies": {
61
+ "@biomejs/biome": "2.4.11",
62
+ "@types/node": "^24.6.1",
63
+ "bun-types": "1.3.12",
64
+ "typescript": "^5.9.3",
65
+ "zod": "~4.1.0"
66
+ },
67
+ "peerDependencies": {
68
+ "zod": "~4.1.0"
69
+ }
70
+ }