@sudobility/music_types 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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,278 @@
1
+ /**
2
+ * @sudobility/music_types — types and Zod schemas for the ScoreSmith music family.
3
+ *
4
+ * Single sectioned entry point (sudojo_types convention):
5
+ * 1. Score model types (spec §4 of the ScoreSmith spec)
6
+ * 2. Type guards
7
+ * 3. Selection / fragment types
8
+ * 4. Zod schemas for the score tree
9
+ * 5. AI generation contracts (requests, results, provider interface)
10
+ * 6. Zod schemas for the generation contracts
11
+ * 7. Project API types (music_api payloads)
12
+ * 8. Zod schemas for the project API
13
+ * 9. Response envelope + error codes
14
+ *
15
+ * This package contains types, schemas, and pure helpers only — no domain
16
+ * logic (tick math, factories, commands live in @sudobility/music_lib).
17
+ */
18
+ import { z } from 'zod';
19
+ // ---------------------------------------------------------------------------
20
+ // 2. Type guards
21
+ // ---------------------------------------------------------------------------
22
+ /** True for `NoteEvent`s (distinguished from `RestEvent` by the `pitch` property). */
23
+ export function isNoteEvent(event) {
24
+ return 'pitch' in event;
25
+ }
26
+ /** True for `RestEvent`s (distinguished from `NoteEvent` by lacking a `pitch` property). */
27
+ export function isRestEvent(event) {
28
+ return !('pitch' in event);
29
+ }
30
+ // ---------------------------------------------------------------------------
31
+ // 4. Zod schemas for the score tree
32
+ // ---------------------------------------------------------------------------
33
+ // Runtime constraints: velocity 0-127, midiProgram 0-127, midiChannel 0-15,
34
+ // ppq positive int, accidental -2..2, octave -1..9. `noteEventSchema` /
35
+ // `restEventSchema` are `.strict()` so an object with a stray `pitch` field
36
+ // cannot be silently accepted as a rest (and vice versa); every other schema
37
+ // stays permissive to tolerate forward-compatible additions.
38
+ export const uuidSchema = z.string().min(1);
39
+ export const pitchStepSchema = z.enum(['C', 'D', 'E', 'F', 'G', 'A', 'B']);
40
+ export const accidentalSchema = z.union([
41
+ z.literal(-2),
42
+ z.literal(-1),
43
+ z.literal(0),
44
+ z.literal(1),
45
+ z.literal(2),
46
+ ]);
47
+ export const pitchSchema = z.object({
48
+ step: pitchStepSchema,
49
+ accidental: accidentalSchema,
50
+ octave: z.number().int().min(-1).max(9),
51
+ });
52
+ export const timeSignatureSchema = z.object({
53
+ numerator: z.number().int().positive(),
54
+ denominator: z.number().int().positive(),
55
+ });
56
+ export const keySignatureSchema = z.object({
57
+ fifths: z.number().int(),
58
+ mode: z.enum(['major', 'minor']),
59
+ });
60
+ export const tempoEventSchema = z.object({
61
+ id: uuidSchema,
62
+ tick: z.number().int().nonnegative(),
63
+ bpm: z.number().positive(),
64
+ });
65
+ export const articulationSchema = z.enum(['staccato', 'accent', 'tenuto', 'marcato']);
66
+ export const clefSchema = z.enum(['treble', 'bass', 'alto', 'tenor', 'percussion']);
67
+ export const noteEventSchema = z
68
+ .object({
69
+ id: uuidSchema,
70
+ pitch: pitchSchema,
71
+ startTick: z.number().int().nonnegative(),
72
+ durationTicks: z.number().int().positive(),
73
+ velocity: z.number().int().min(0).max(127),
74
+ voiceId: uuidSchema,
75
+ trackId: uuidSchema,
76
+ tieStart: z.boolean().optional(),
77
+ tieStop: z.boolean().optional(),
78
+ articulation: articulationSchema.optional(),
79
+ })
80
+ .strict();
81
+ export const restEventSchema = z
82
+ .object({
83
+ id: uuidSchema,
84
+ startTick: z.number().int().nonnegative(),
85
+ durationTicks: z.number().int().positive(),
86
+ voiceId: uuidSchema,
87
+ trackId: uuidSchema,
88
+ })
89
+ .strict();
90
+ export const musicalEventSchema = z.union([noteEventSchema, restEventSchema]);
91
+ export const voiceSchema = z.object({
92
+ id: uuidSchema,
93
+ name: z.string(),
94
+ events: z.array(musicalEventSchema),
95
+ });
96
+ export const measureSchema = z.object({
97
+ id: uuidSchema,
98
+ index: z.number().int().nonnegative(),
99
+ startTick: z.number().int().nonnegative(),
100
+ durationTicks: z.number().int().positive(),
101
+ timeSignature: timeSignatureSchema,
102
+ keySignature: keySignatureSchema,
103
+ voices: z.array(voiceSchema),
104
+ });
105
+ export const trackSchema = z.object({
106
+ id: uuidSchema,
107
+ name: z.string(),
108
+ instrumentName: z.string(),
109
+ midiProgram: z.number().int().min(0).max(127),
110
+ midiChannel: z.number().int().min(0).max(15),
111
+ clef: clefSchema,
112
+ volume: z.number(),
113
+ pan: z.number(),
114
+ muted: z.boolean(),
115
+ solo: z.boolean(),
116
+ measures: z.array(measureSchema),
117
+ });
118
+ export const scoreMetadataSchema = z.object({
119
+ title: z.string(),
120
+ composer: z.string().optional(),
121
+ description: z.string().optional(),
122
+ createdAt: z.string(),
123
+ updatedAt: z.string(),
124
+ });
125
+ export const scoreSchema = z.object({
126
+ id: uuidSchema,
127
+ version: z.number().int().nonnegative(),
128
+ ppq: z.number().int().positive(),
129
+ metadata: scoreMetadataSchema,
130
+ tempoMap: z.array(tempoEventSchema),
131
+ tracks: z.array(trackSchema),
132
+ });
133
+ /** Parses and validates untrusted JSON as a `Score`. Throws `ZodError` on invalid input. */
134
+ export function parseScore(json) {
135
+ return scoreSchema.parse(json);
136
+ }
137
+ // ---------------------------------------------------------------------------
138
+ // 6. Zod schemas for the generation contracts
139
+ // ---------------------------------------------------------------------------
140
+ export const midiRangeSchema = z.object({
141
+ lowestMidi: z.number().int().min(0).max(127),
142
+ highestMidi: z.number().int().min(0).max(127),
143
+ });
144
+ export const scoreRangeSchema = z.object({
145
+ startTick: z.number().int().nonnegative(),
146
+ endTick: z.number().int().nonnegative(),
147
+ trackIds: z.array(z.string().min(1)),
148
+ });
149
+ export const scoreFragmentSchema = z.object({
150
+ range: scoreRangeSchema,
151
+ ppq: z.number().int().positive(),
152
+ tracks: z.array(z.object({ trackId: z.string().min(1), measures: z.array(measureSchema) })),
153
+ });
154
+ export const generateScoreRequestTrackSchema = z.object({
155
+ name: z.string(),
156
+ instrumentName: z.string(),
157
+ midiProgram: z.number().int().min(0).max(127),
158
+ clef: clefSchema,
159
+ range: midiRangeSchema.optional(),
160
+ maximumPolyphony: z.number().int().positive().optional(),
161
+ });
162
+ export const generateScoreRequestSchema = z.object({
163
+ prompt: z.string(),
164
+ title: z.string().optional(),
165
+ style: z.string().optional(),
166
+ mood: z.string().optional(),
167
+ durationMeasures: z.number().int().positive(),
168
+ tempo: z.number().positive().optional(),
169
+ timeSignature: timeSignatureSchema.optional(),
170
+ keySignature: keySignatureSchema.optional(),
171
+ tracks: z.array(generateScoreRequestTrackSchema),
172
+ complexity: z.enum(['simple', 'moderate', 'complex']).optional(),
173
+ });
174
+ export const generateScoreResultSchema = z.object({
175
+ score: scoreSchema,
176
+ warnings: z.array(z.string()),
177
+ });
178
+ export const regenerationConstraintsSchema = z.object({
179
+ preserveMeasureCount: z.literal(true),
180
+ preserveTimeSignatures: z.literal(true),
181
+ preserveTempoEvents: z.literal(true),
182
+ preserveBoundaryNotes: z.boolean().optional(),
183
+ preserveHarmony: z.boolean().optional(),
184
+ preserveRhythm: z.boolean().optional(),
185
+ preserveMelody: z.boolean().optional(),
186
+ maximumPolyphony: z.number().int().positive().optional(),
187
+ allowedPitchRangeByTrack: z.record(z.string(), midiRangeSchema).optional(),
188
+ });
189
+ export const regenerateRegionRequestSchema = z.object({
190
+ scoreId: z.string().min(1),
191
+ instruction: z.string(),
192
+ range: scoreRangeSchema,
193
+ precedingContext: scoreFragmentSchema,
194
+ selectedFragment: scoreFragmentSchema,
195
+ followingContext: scoreFragmentSchema,
196
+ constraints: regenerationConstraintsSchema,
197
+ candidateCount: z.number().int().positive(),
198
+ });
199
+ export const regenerationCandidateSchema = z.object({
200
+ id: z.string().min(1),
201
+ label: z.string(),
202
+ fragment: scoreFragmentSchema,
203
+ });
204
+ export const regenerateRegionResultSchema = z.object({
205
+ candidates: z.array(regenerationCandidateSchema),
206
+ warnings: z.array(z.string()),
207
+ });
208
+ /** Parses and validates untrusted JSON as a `GenerateScoreRequest`. Throws `ZodError` on invalid input. */
209
+ export function parseGenerateScoreRequest(json) {
210
+ return generateScoreRequestSchema.parse(json);
211
+ }
212
+ /** Parses and validates untrusted JSON as a `GenerateScoreResult`. Throws `ZodError` on invalid input. */
213
+ export function parseGenerateScoreResult(json) {
214
+ return generateScoreResultSchema.parse(json);
215
+ }
216
+ /** Parses and validates untrusted JSON as a `RegenerateRegionRequest`. Throws `ZodError` on invalid input. */
217
+ export function parseRegenerateRegionRequest(json) {
218
+ return regenerateRegionRequestSchema.parse(json);
219
+ }
220
+ /** Parses and validates untrusted JSON as a `RegenerateRegionResult`. Throws `ZodError` on invalid input. */
221
+ export function parseRegenerateRegionResult(json) {
222
+ return regenerateRegionResultSchema.parse(json);
223
+ }
224
+ /** Parses and validates untrusted JSON as a `RegenerationCandidate`. Throws `ZodError` on invalid input. */
225
+ export function parseRegenerationCandidate(json) {
226
+ return regenerationCandidateSchema.parse(json);
227
+ }
228
+ // ---------------------------------------------------------------------------
229
+ // 8. Zod schemas for the project API
230
+ // ---------------------------------------------------------------------------
231
+ export const projectUiPrefsSchema = z.object({
232
+ view: z.enum(['notation', 'piano-roll']),
233
+ zoom: z.number().positive(),
234
+ });
235
+ export const projectSummarySchema = z.object({
236
+ id: z.string().min(1),
237
+ name: z.string().min(1),
238
+ createdAt: z.string(),
239
+ updatedAt: z.string(),
240
+ schemaVersion: z.number().int().nonnegative(),
241
+ });
242
+ export const projectRecordSchema = projectSummarySchema.extend({
243
+ score: scoreSchema,
244
+ uiPrefs: projectUiPrefsSchema.optional(),
245
+ });
246
+ export const projectCreateRequestSchema = z.object({
247
+ name: z.string().min(1),
248
+ score: scoreSchema,
249
+ uiPrefs: projectUiPrefsSchema.optional(),
250
+ });
251
+ export const projectUpdateRequestSchema = z.object({
252
+ name: z.string().min(1).optional(),
253
+ score: scoreSchema.optional(),
254
+ uiPrefs: projectUiPrefsSchema.optional(),
255
+ });
256
+ export const projectListQuerySchema = z.object({
257
+ search: z.string().optional(),
258
+ sort: z.enum(['updatedAt', 'name']).optional(),
259
+ });
260
+ // ---------------------------------------------------------------------------
261
+ // 9. Response envelope + error codes
262
+ // ---------------------------------------------------------------------------
263
+ export const API_ERROR_CODES = {
264
+ QUOTA_EXCEEDED: 'QUOTA_EXCEEDED',
265
+ AI_GENERATION_FAILED: 'AI_GENERATION_FAILED',
266
+ AI_OUTPUT_INVALID: 'AI_OUTPUT_INVALID',
267
+ PROJECT_NOT_FOUND: 'PROJECT_NOT_FOUND',
268
+ UNAUTHORIZED: 'UNAUTHORIZED',
269
+ };
270
+ /** Wraps payload data in the standard success envelope. */
271
+ export function successResponse(data) {
272
+ return { success: true, data };
273
+ }
274
+ /** Wraps an error message (and optional typed code) in the standard error envelope. */
275
+ export function errorResponse(message, code) {
276
+ return code ? { success: false, error: message, code } : { success: false, error: message };
277
+ }
278
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@sudobility/music_types",
3
+ "version": "0.1.0",
4
+ "description": "TypeScript types and Zod schemas for the ScoreSmith music API - scores, generation contracts, project payloads",
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
+ "scripts": {
15
+ "build": "tsc -p tsconfig.esm.json",
16
+ "clean": "rimraf dist",
17
+ "test": "vitest run",
18
+ "test:watch": "vitest",
19
+ "lint": "eslint src",
20
+ "typecheck": "tsc --noEmit",
21
+ "verify": "bun run typecheck && bun run lint && bun run test && bun run build",
22
+ "prepublishOnly": "bun run clean && bun run verify"
23
+ },
24
+ "files": ["dist/**/*", "CLAUDE.md"],
25
+ "keywords": ["typescript", "types", "music", "scoresmith", "api"],
26
+ "author": "Sudobility",
27
+ "license": "BUSL-1.1",
28
+ "dependencies": {
29
+ "zod": "^4.0.0"
30
+ },
31
+ "peerDependencies": {
32
+ "@sudobility/types": "^1.9.62"
33
+ },
34
+ "devDependencies": {
35
+ "@eslint/js": "^9.38.0",
36
+ "@sudobility/types": "^1.9.62",
37
+ "@typescript-eslint/eslint-plugin": "^8.46.2",
38
+ "@typescript-eslint/parser": "^8.46.2",
39
+ "eslint": "^9.38.0",
40
+ "globals": "^16.4.0",
41
+ "rimraf": "^6.0.1",
42
+ "typescript": "^5.9.3",
43
+ "vitest": "^4.0.15"
44
+ },
45
+ "publishConfig": { "access": "public" },
46
+ "repository": { "type": "git", "url": "https://github.com/johnqh/music_types.git" }
47
+ }