@bendyline/gilde 0.1.23 → 0.1.24

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 (24) hide show
  1. package/data/connector-types/ai/airtable-records/versions/1.0.1/manifest.json +81 -0
  2. package/data/connector-types/bl/bluesky-posts/versions/1.0.1/manifest.json +93 -0
  3. package/data/connector-types/gi/github-issues/versions/1.0.2/manifest.json +82 -0
  4. package/data/connector-types/gi/github-pulls/versions/1.0.1/manifest.json +52 -0
  5. package/data/connector-types/gi/github-releases/versions/1.0.1/manifest.json +86 -0
  6. package/data/connector-types/gi/github-wiki/versions/1.0.1/manifest.json +56 -0
  7. package/data/connector-types/index.json +1 -1
  8. package/data/connector-types/li/linear-issues/versions/1.0.1/manifest.json +70 -0
  9. package/data/connector-types/ma/mail-imap/versions/1.0.1/manifest.json +71 -0
  10. package/data/craftbook-templates/an/anniversary-cut/manifest.json +3 -1
  11. package/data/craftbook-templates/an/anniversary-cut/versions/1.0.2/craftbook.json +212 -0
  12. package/data/craftbook-templates/an/anniversary-cut/versions/1.0.2/test.json +157 -0
  13. package/data/craftbook-templates/au/audiobook-master-pack/manifest.json +3 -1
  14. package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.2/craftbook.json +197 -0
  15. package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.2/test.json +221 -0
  16. package/data/craftbook-templates/dr/draft-social-post/logo.webp +0 -0
  17. package/data/craftbook-templates/dr/draft-social-post/manifest.json +1 -0
  18. package/data/craftbook-templates/index.json +1 -1
  19. package/data/craftbook-templates/re/reception-report/logo.webp +0 -0
  20. package/data/craftbook-templates/re/reception-report/manifest.json +1 -0
  21. package/data/craftbook-templates/so/social-digest/logo.webp +0 -0
  22. package/data/craftbook-templates/so/social-digest/manifest.json +1 -0
  23. package/package.json +1 -1
  24. package/schemas/connector-type-version.schema.json +31 -0
@@ -0,0 +1,221 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "title": "Master the Audiobook smoke eval",
4
+ "objective": "Task-specific eval for the Master the Audiobook craftbook: six rendered chapters with run logs are swept against the table of contents, described in a verified manifest, concatenated through the fake mastering pipeline, and packaged with listener copy.",
5
+ "tags": [
6
+ "external"
7
+ ],
8
+ "prompt": "all six chapters are rendered — can you master the audiobok and get the metadata sorted? theres a fake concat pipeline wired up",
9
+ "setup": {
10
+ "projectName": "Audiobook Studio — Mastering Eval",
11
+ "about": "Self-contained eval project for audiobook-master-pack. The table of contents is manuscript/toc.md; the six rendered chapters sit under audio/ as chapter-XX.wav with a chapter-XX-log.json run log each (durations in durationSeconds). The manifest goes to master/manifest.json; the fake mastering pipeline is the ready-made mock-probe project script (writes master/book.m4b plus master/assembly-log.json, and cross-checks manifest durations against the chapter logs). The listener description and release notes go to master/release-notes.md.",
12
+ "missionObjectives": "Use the Master the Audiobook craftbook/template, sweep the chapters against the table of contents, build master/manifest.json with file, duration, and order per chapter taken from the run logs, assemble through the provided mock-probe script, and write master/release-notes.md. No real audio tools or services — only the wired fake pipeline.",
13
+ "files": [
14
+ {
15
+ "path": "manuscript/toc.md",
16
+ "content": "# A Field Guide to Vanishing - table of contents\n\n1. The Door in the Sea Wall\n2. The Ferry at Dusk\n3. The Handwriting House\n4. What the Buoy Knew\n5. The Smallest Lantern\n6. Come Anyway\n"
17
+ },
18
+ {
19
+ "path": "audio/chapter-01.wav",
20
+ "content": "MOCKWAV chapter-01 rendered audio stub (The Door in the Sea Wall)\n0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n"
21
+ },
22
+ {
23
+ "path": "audio/chapter-01-log.json",
24
+ "content": "{\n \"status\": \"ok\",\n \"engine\": \"mock-tts\",\n \"chapter\": \"The Door in the Sea Wall\",\n \"file\": \"audio/chapter-01.wav\",\n \"durationSeconds\": 1712.4,\n \"wordCount\": 4310\n}\n"
25
+ },
26
+ {
27
+ "path": "audio/chapter-02.wav",
28
+ "content": "MOCKWAV chapter-02 rendered audio stub (The Ferry at Dusk)\n0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n"
29
+ },
30
+ {
31
+ "path": "audio/chapter-02-log.json",
32
+ "content": "{\n \"status\": \"ok\",\n \"engine\": \"mock-tts\",\n \"chapter\": \"The Ferry at Dusk\",\n \"file\": \"audio/chapter-02.wav\",\n \"durationSeconds\": 1544.8,\n \"wordCount\": 3890\n}\n"
33
+ },
34
+ {
35
+ "path": "audio/chapter-03.wav",
36
+ "content": "MOCKWAV chapter-03 rendered audio stub (The Handwriting House)\n0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n"
37
+ },
38
+ {
39
+ "path": "audio/chapter-03-log.json",
40
+ "content": "{\n \"status\": \"ok\",\n \"engine\": \"mock-tts\",\n \"chapter\": \"The Handwriting House\",\n \"file\": \"audio/chapter-03.wav\",\n \"durationSeconds\": 1836.2,\n \"wordCount\": 4620\n}\n"
41
+ },
42
+ {
43
+ "path": "audio/chapter-04.wav",
44
+ "content": "MOCKWAV chapter-04 rendered audio stub (What the Buoy Knew)\n0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n"
45
+ },
46
+ {
47
+ "path": "audio/chapter-04-log.json",
48
+ "content": "{\n \"status\": \"ok\",\n \"engine\": \"mock-tts\",\n \"chapter\": \"What the Buoy Knew\",\n \"file\": \"audio/chapter-04.wav\",\n \"durationSeconds\": 1490.5,\n \"wordCount\": 3750\n}\n"
49
+ },
50
+ {
51
+ "path": "audio/chapter-05.wav",
52
+ "content": "MOCKWAV chapter-05 rendered audio stub (The Smallest Lantern)\n0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n"
53
+ },
54
+ {
55
+ "path": "audio/chapter-05-log.json",
56
+ "content": "{\n \"status\": \"ok\",\n \"engine\": \"mock-tts\",\n \"chapter\": \"The Smallest Lantern\",\n \"file\": \"audio/chapter-05.wav\",\n \"durationSeconds\": 1671.9,\n \"wordCount\": 4205\n}\n"
57
+ },
58
+ {
59
+ "path": "audio/chapter-06.wav",
60
+ "content": "MOCKWAV chapter-06 rendered audio stub (Come Anyway)\n0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n"
61
+ },
62
+ {
63
+ "path": "audio/chapter-06-log.json",
64
+ "content": "{\n \"status\": \"ok\",\n \"engine\": \"mock-tts\",\n \"chapter\": \"Come Anyway\",\n \"file\": \"audio/chapter-06.wav\",\n \"durationSeconds\": 1922.7,\n \"wordCount\": 4840\n}\n"
65
+ }
66
+ ],
67
+ "worker": {
68
+ "name": "Ruben",
69
+ "role": "Producer"
70
+ }
71
+ },
72
+ "mocks": [
73
+ {
74
+ "kind": "cli",
75
+ "id": "probe",
76
+ "description": "Provenance-trusted project script `mock-probe` that runs the fake mastering pipeline: verifies master/manifest.json against the audio files and their run logs, then writes the stub master and its run log.",
77
+ "shim": {
78
+ "path": "scripts/mock-probe.ts",
79
+ "content": "import { defineScript, gezel } from '@bendyline/gezel-sdk';\n\nexport const meta = defineScript({\n name: 'mock-probe',\n description:\n 'Fake mastering pipeline for this eval: reads master/manifest.json, verifies every referenced audio file exists with a sane duration and order, cross-checks durations against the per-chapter run logs, then writes the stub master to master/book.m4b and its run log to master/assembly-log.json.',\n inputs: {},\n outputs: {\n log: { type: 'string', description: 'The mastering run log JSON written to master/assembly-log.json.' },\n },\n requires: ['workspace.read', 'workspace.write'],\n});\n\nconst manifest = JSON.parse(await gezel.fs.read('master/manifest.json'));\nif (!Array.isArray(manifest) || manifest.length === 0) {\n throw new Error('master/manifest.json must be a non-empty JSON array');\n}\nconst entries = await gezel.fs.list('audio');\nconst present = new Set(entries.filter((entry) => !entry.isDirectory).map((entry) => entry.name));\nlet total = 0;\nconst orders = new Set();\nfor (const row of manifest) {\n const base = String(row.file ?? '').split('/').pop();\n if (!base || !present.has(base)) {\n throw new Error(`manifest references a missing audio file: ${row.file}`);\n }\n if (typeof row.duration !== 'number' || row.duration <= 0) {\n throw new Error(`bad duration for chapter ${row.chapter}: ${row.duration}`);\n }\n if (typeof row.order !== 'number' || orders.has(row.order)) {\n throw new Error(`bad or duplicate order for chapter ${row.chapter}: ${row.order}`);\n }\n orders.add(row.order);\n const logName = base.replace(/\\.wav$/, '-log.json');\n if (present.has(logName)) {\n const chapterLog = JSON.parse(await gezel.fs.read(`audio/${logName}`));\n if (\n typeof chapterLog.durationSeconds === 'number' &&\n Math.abs(chapterLog.durationSeconds - row.duration) > 0.01\n ) {\n throw new Error(`manifest duration for chapter ${row.chapter} does not match its run log`);\n }\n }\n total += row.duration;\n}\nconst log = {\n status: 'ok',\n engine: 'mock-concat',\n chapters: manifest.length,\n totalDurationSeconds: Math.round(total * 100) / 100,\n};\nawait gezel.fs.write('master/book.m4b', `MOCKM4B audiobook master stub\\n${'0'.repeat(2048)}\\n`);\nawait gezel.fs.write('master/assembly-log.json', `${JSON.stringify(log, null, 2)}\\n`);\ngezel.output({ log: JSON.stringify(log) });\n"
80
+ }
81
+ }
82
+ ],
83
+ "success": {
84
+ "summary": "master/manifest.json describes all six chapters exactly once with log-true durations, the fake pipeline produced the master and a status-ok log counting six chapters, and the release notes carry the total running time plus listener copy.",
85
+ "deliverables": [
86
+ {
87
+ "path": "master/manifest.json",
88
+ "kind": "json",
89
+ "checks": [
90
+ {
91
+ "kind": "recordSchema",
92
+ "file": "master/manifest.json",
93
+ "fields": [
94
+ {
95
+ "name": "chapter",
96
+ "type": "nonempty"
97
+ },
98
+ {
99
+ "name": "file",
100
+ "type": "nonempty"
101
+ },
102
+ {
103
+ "name": "duration"
104
+ },
105
+ {
106
+ "name": "order"
107
+ }
108
+ ],
109
+ "minRows": 6,
110
+ "uniqueBy": "chapter"
111
+ },
112
+ {
113
+ "kind": "valuesSubsetOf",
114
+ "file": "master/manifest.json",
115
+ "sourceFiles": [
116
+ "audio/chapter-01-log.json",
117
+ "audio/chapter-02-log.json",
118
+ "audio/chapter-03-log.json",
119
+ "audio/chapter-04-log.json",
120
+ "audio/chapter-05-log.json",
121
+ "audio/chapter-06-log.json"
122
+ ],
123
+ "pattern": "\"file\"\\s*:\\s*\"([^\"]+)\"",
124
+ "label": "every manifest file reference matches a rendered chapter from the run logs"
125
+ }
126
+ ]
127
+ },
128
+ {
129
+ "path": "master/book.m4b",
130
+ "kind": "generic-file",
131
+ "minBytes": 200
132
+ },
133
+ {
134
+ "path": "master/assembly-log.json",
135
+ "kind": "json",
136
+ "checks": [
137
+ {
138
+ "kind": "jsonPathEquals",
139
+ "file": "master/assembly-log.json",
140
+ "path": "status",
141
+ "value": "ok",
142
+ "label": "the mastering log reports status ok"
143
+ },
144
+ {
145
+ "kind": "jsonPathEquals",
146
+ "file": "master/assembly-log.json",
147
+ "path": "chapters",
148
+ "value": 6,
149
+ "label": "all six chapters were assembled"
150
+ }
151
+ ]
152
+ },
153
+ {
154
+ "path": "master/release-notes.md",
155
+ "kind": "markdown-report",
156
+ "minBytes": 500,
157
+ "checks": [
158
+ {
159
+ "kind": "contains",
160
+ "file": "master/release-notes.md",
161
+ "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
162
+ "flags": "i"
163
+ },
164
+ {
165
+ "kind": "contains",
166
+ "file": "master/release-notes.md",
167
+ "pattern": "duration|running time",
168
+ "flags": "i",
169
+ "label": "the total running time is stated"
170
+ },
171
+ {
172
+ "kind": "contains",
173
+ "file": "master/release-notes.md",
174
+ "pattern": "chapter",
175
+ "flags": "i",
176
+ "label": "the chapter list is present"
177
+ },
178
+ {
179
+ "kind": "judge",
180
+ "file": "master/release-notes.md",
181
+ "rubric": "The listener-facing description reads like store copy for the book (warm, no spoilers, aimed at a browsing listener), and the stated total running time matches the mastering log rather than being invented.",
182
+ "sourceFiles": [
183
+ "master/assembly-log.json",
184
+ "manuscript/toc.md"
185
+ ],
186
+ "label": "store-copy quality and log-true numbers"
187
+ }
188
+ ]
189
+ }
190
+ ]
191
+ },
192
+ "rubric": {
193
+ "artifact": {
194
+ "path": "master/release-notes.md",
195
+ "kind": "markdown"
196
+ },
197
+ "axes": [
198
+ {
199
+ "name": "completeness",
200
+ "description": "All six chapters swept, present, and in manuscript order — no holes."
201
+ },
202
+ {
203
+ "name": "metadata-quality",
204
+ "description": "Manifest durations and orders come from the run logs, never estimated."
205
+ },
206
+ {
207
+ "name": "listener-copy",
208
+ "description": "The description sells the book to a browsing listener without spoiling it."
209
+ },
210
+ {
211
+ "name": "release-readiness",
212
+ "description": "The notes confirm the master's numbers match the manifest."
213
+ }
214
+ ]
215
+ },
216
+ "qualityFocus": [
217
+ "completeness sweep",
218
+ "log-true metadata",
219
+ "listener-facing copy"
220
+ ]
221
+ }
@@ -18,6 +18,7 @@
18
18
  "maintainer": {
19
19
  "name": "Gezel"
20
20
  },
21
+ "logo": "logo.webp",
21
22
  "license": "MIT",
22
23
  "yankedVersions": [],
23
24
  "workflow": "build-loop"