dsh-draw 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 (104) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/LICENSE +201 -0
  3. package/README.es.md +194 -0
  4. package/README.hi.md +194 -0
  5. package/README.md +194 -0
  6. package/README.pt.md +194 -0
  7. package/README.zh.md +194 -0
  8. package/SECURITY.md +39 -0
  9. package/THIRD_PARTY_NOTICES.md +21 -0
  10. package/cordis.patch.yml +48 -0
  11. package/lib/client.js +4787 -0
  12. package/lib/client.js.map +1 -0
  13. package/lib/index.js +1429 -0
  14. package/lib/typert.host.js +26 -0
  15. package/lib/types/client/DrawResultCard.d.ts +58 -0
  16. package/lib/types/client/DrawResultCard.d.ts.map +1 -0
  17. package/lib/types/client/DrawResultCard.js +48 -0
  18. package/lib/types/client/DrawSettingsTab.d.ts +31 -0
  19. package/lib/types/client/DrawSettingsTab.d.ts.map +1 -0
  20. package/lib/types/client/DrawSettingsTab.js +129 -0
  21. package/lib/types/client/index.d.ts +35 -0
  22. package/lib/types/client/index.d.ts.map +1 -0
  23. package/lib/types/client/index.js +98 -0
  24. package/lib/types/client/locales.d.ts +14 -0
  25. package/lib/types/client/locales.d.ts.map +1 -0
  26. package/lib/types/client/locales.js +57 -0
  27. package/lib/types/client/present.d.ts +80 -0
  28. package/lib/types/client/present.d.ts.map +1 -0
  29. package/lib/types/client/present.js +86 -0
  30. package/lib/types/client/remote.d.ts +268 -0
  31. package/lib/types/client/remote.d.ts.map +1 -0
  32. package/lib/types/client/remote.js +15 -0
  33. package/lib/types/client/styles.d.ts +11 -0
  34. package/lib/types/client/styles.d.ts.map +1 -0
  35. package/lib/types/client/styles.js +43 -0
  36. package/lib/types/config.d.ts +160 -0
  37. package/lib/types/config.d.ts.map +1 -0
  38. package/lib/types/config.js +230 -0
  39. package/lib/types/drawer.d.ts +114 -0
  40. package/lib/types/drawer.d.ts.map +1 -0
  41. package/lib/types/drawer.js +138 -0
  42. package/lib/types/engine.d.ts +58 -0
  43. package/lib/types/engine.d.ts.map +1 -0
  44. package/lib/types/engine.js +135 -0
  45. package/lib/types/http.d.ts +89 -0
  46. package/lib/types/http.d.ts.map +1 -0
  47. package/lib/types/http.js +127 -0
  48. package/lib/types/index.d.ts +43 -0
  49. package/lib/types/index.d.ts.map +1 -0
  50. package/lib/types/index.js +78 -0
  51. package/lib/types/quota.d.ts +69 -0
  52. package/lib/types/quota.d.ts.map +1 -0
  53. package/lib/types/quota.js +56 -0
  54. package/lib/types/router.d.ts +141 -0
  55. package/lib/types/router.d.ts.map +1 -0
  56. package/lib/types/router.js +207 -0
  57. package/lib/types/sanitize.d.ts +40 -0
  58. package/lib/types/sanitize.d.ts.map +1 -0
  59. package/lib/types/sanitize.js +103 -0
  60. package/lib/types/service.d.ts +59 -0
  61. package/lib/types/service.d.ts.map +1 -0
  62. package/lib/types/service.js +131 -0
  63. package/lib/types/session-events.d.ts +66 -0
  64. package/lib/types/session-events.d.ts.map +1 -0
  65. package/lib/types/session-events.js +32 -0
  66. package/lib/types/tool.d.ts +30 -0
  67. package/lib/types/tool.d.ts.map +1 -0
  68. package/lib/types/tool.js +131 -0
  69. package/lib/types/translate.d.ts +64 -0
  70. package/lib/types/translate.d.ts.map +1 -0
  71. package/lib/types/translate.js +56 -0
  72. package/lib/types/typert.host.d.ts +250 -0
  73. package/lib/types/typert.host.d.ts.map +1 -0
  74. package/lib/types/typert.host.js +23 -0
  75. package/lib/types/version.d.ts +10 -0
  76. package/lib/types/version.d.ts.map +1 -0
  77. package/lib/types/version.js +9 -0
  78. package/lib/types/wire.d.ts +699 -0
  79. package/lib/types/wire.d.ts.map +1 -0
  80. package/lib/types/wire.js +273 -0
  81. package/lib/wire-Cc4JZ3jR.js +4370 -0
  82. package/package.json +179 -0
  83. package/src/client/DrawResultCard.tsx +100 -0
  84. package/src/client/DrawSettingsTab.tsx +159 -0
  85. package/src/client/index.ts +123 -0
  86. package/src/client/locales.ts +84 -0
  87. package/src/client/present.ts +137 -0
  88. package/src/client/remote.ts +44 -0
  89. package/src/client/styles.ts +44 -0
  90. package/src/config.ts +358 -0
  91. package/src/drawer.ts +234 -0
  92. package/src/engine.ts +182 -0
  93. package/src/http.ts +161 -0
  94. package/src/index.ts +93 -0
  95. package/src/quota.ts +98 -0
  96. package/src/router.ts +309 -0
  97. package/src/sanitize.ts +113 -0
  98. package/src/service.ts +169 -0
  99. package/src/session-events.ts +70 -0
  100. package/src/tool.ts +145 -0
  101. package/src/translate.ts +101 -0
  102. package/src/typert.host.ts +25 -0
  103. package/src/version.ts +10 -0
  104. package/src/wire.ts +417 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/wire.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,273 @@
1
+ /**
2
+ * The panel's wire vocabulary: the snapshot and action types served over the
3
+ * `draw` Remote namespace, their zod v4 validation schemas (the strict codecs
4
+ * both Typert faces carry), and the invocation descriptors shared verbatim by
5
+ * the host `./typert` manifest and the client Remote contribution. One
6
+ * canonical source for both faces keeps the host and client codecs from ever
7
+ * drifting apart.
8
+ *
9
+ * @module dsh-draw/wire
10
+ */
11
+ import { z } from 'zod';
12
+ /** Strict wire schema for {@link DrawStatusSnapshot} (zod v4, both Typert faces). */
13
+ export const DRAW_STATUS_SCHEMA = z.object({
14
+ pluginVersion: z.string(),
15
+ engines: z.array(z.object({
16
+ id: z.string(),
17
+ model: z.string(),
18
+ baseUrl: z.string(),
19
+ apiKeyRef: z.string(),
20
+ enabled: z.boolean(),
21
+ preferred: z.boolean(),
22
+ credential: z.object({
23
+ configured: z.boolean(),
24
+ source: z.string().optional(),
25
+ writable: z.boolean(),
26
+ }),
27
+ health: z.object({
28
+ consecutiveFailures: z.number().int(),
29
+ cooldownUntil: z.number().int().nullable(),
30
+ lastError: z.string().nullable(),
31
+ lastStatus: z.number().int().nullable(),
32
+ }),
33
+ })),
34
+ quota: z.object({
35
+ maxGenerationsPerSession: z.number().int(),
36
+ maxBytesPerSession: z.number().int(),
37
+ }),
38
+ requestTimeoutMs: z.number().int(),
39
+ maxImagesPerCall: z.number().int(),
40
+ });
41
+ /** Strict wire schema for {@link DrawProbeResult}. */
42
+ export const DRAW_PROBE_SCHEMA = z.object({
43
+ engineId: z.string(),
44
+ reachable: z.boolean(),
45
+ httpStatus: z.number().int().nullable(),
46
+ target: z.string(),
47
+ note: z.string(),
48
+ credentialConfigured: z.boolean(),
49
+ });
50
+ /** Strict wire schema for {@link CredentialActionResult}. */
51
+ export const CREDENTIAL_ACTION_SCHEMA = z.object({
52
+ engineId: z.string(),
53
+ reference: z.string(),
54
+ note: z.string(),
55
+ });
56
+ /** Strict wire schema for {@link DrawRegenerateResult}. */
57
+ export const DRAW_REGENERATE_SCHEMA = z.object({
58
+ engine: z.string(),
59
+ model: z.string(),
60
+ size: z.string(),
61
+ images: z.array(z.object({
62
+ attachmentId: z.string(),
63
+ mediaType: z.string(),
64
+ bytes: z.number().int(),
65
+ width: z.number().int(),
66
+ height: z.number().int(),
67
+ name: z.string().optional(),
68
+ })),
69
+ quota: z.object({ generations: z.number().int(), bytes: z.number().int() }),
70
+ quotaLimits: z.object({ maxGenerations: z.number().int(), maxBytes: z.number().int() }),
71
+ fallbackUsed: z.boolean(),
72
+ elapsedMs: z.number().int(),
73
+ attempts: z.array(z.object({
74
+ engine: z.string(),
75
+ phase: z.union([z.literal('credential'), z.literal('request'), z.literal('parse')]).optional(),
76
+ code: z.string(),
77
+ message: z.string().optional(),
78
+ status: z.number().int().optional(),
79
+ })),
80
+ });
81
+ /** Project a draw outcome image onto the wire shape. */
82
+ export function imageToWire(image) {
83
+ return {
84
+ attachmentId: image.attachmentId,
85
+ mediaType: image.mediaType,
86
+ bytes: image.bytes,
87
+ width: image.width,
88
+ height: image.height,
89
+ ...(image.name !== undefined ? { name: image.name } : {}),
90
+ };
91
+ }
92
+ /** Project a router engine status onto the panel view shape. */
93
+ export function statusToView(status, engine, credential) {
94
+ return {
95
+ id: engine.id,
96
+ model: engine.model,
97
+ baseUrl: engine.baseUrl,
98
+ apiKeyRef: engine.apiKeyRef,
99
+ enabled: engine.enabled,
100
+ preferred: engine.preferred,
101
+ credential,
102
+ health: {
103
+ consecutiveFailures: status.consecutiveFailures,
104
+ cooldownUntil: status.cooldownUntil,
105
+ lastError: status.lastError,
106
+ lastStatus: status.lastStatus,
107
+ },
108
+ };
109
+ }
110
+ /** Project a probe outcome onto the wire shape. */
111
+ export function probeToWire(probe) {
112
+ return {
113
+ engineId: probe.engineId,
114
+ reachable: probe.reachable,
115
+ httpStatus: probe.httpStatus,
116
+ target: probe.target,
117
+ note: probe.note,
118
+ credentialConfigured: probe.credentialConfigured,
119
+ };
120
+ }
121
+ /** JSON codec for one engine id. */
122
+ const ENGINE_ID_CODEC = z.string();
123
+ /** JSON codec for one credential value (non-empty). */
124
+ const CREDENTIAL_VALUE_CODEC = z.string().min(1);
125
+ /** JSON codec for regenerate arguments: the original tool args, verbatim. */
126
+ const REGENERATE_ARGS_CODEC = z.object({
127
+ prompt: z.string().min(1),
128
+ size: z.string().optional(),
129
+ count: z.number().int().optional(),
130
+ quality: z.string().optional(),
131
+ style: z.string().optional(),
132
+ engine: z.string().optional(),
133
+ }).passthrough();
134
+ /** JSON codec for one session id (the wire carries the branded id as a string). */
135
+ const SESSION_ID_CODEC = z.string().min(1);
136
+ /**
137
+ * The `draw/status` invocation descriptor: the settings-panel snapshot.
138
+ */
139
+ export const DRAW_STATUS_DESCRIPTOR = Object.freeze({
140
+ id: 'dsh-draw#draw/status',
141
+ service: 'dsh-draw',
142
+ namespace: 'draw',
143
+ method: 'status',
144
+ invocation: Object.freeze({ kind: 'direct' }),
145
+ parameters: Object.freeze([]),
146
+ result: Object.freeze({
147
+ mode: 'strict',
148
+ typeSymbol: 'dsh-draw/types#DrawStatusSnapshot',
149
+ schema: DRAW_STATUS_SCHEMA,
150
+ }),
151
+ sourceLocation: Object.freeze({ file: 'src/wire.ts', line: 1, column: 1 }),
152
+ });
153
+ /**
154
+ * The `draw/probe` invocation descriptor: one engine's connectivity check.
155
+ */
156
+ export const DRAW_PROBE_DESCRIPTOR = Object.freeze({
157
+ id: 'dsh-draw#draw/probe',
158
+ service: 'dsh-draw',
159
+ namespace: 'draw',
160
+ method: 'probe',
161
+ invocation: Object.freeze({ kind: 'direct' }),
162
+ parameters: Object.freeze([Object.freeze({
163
+ name: 'engineId',
164
+ wire: 'engineId',
165
+ source: 'json',
166
+ codec: Object.freeze({
167
+ mode: 'strict',
168
+ typeSymbol: 'dsh-draw/types#EngineId',
169
+ schema: ENGINE_ID_CODEC,
170
+ }),
171
+ })]),
172
+ result: Object.freeze({
173
+ mode: 'strict',
174
+ typeSymbol: 'dsh-draw/types#DrawProbeResult',
175
+ schema: DRAW_PROBE_SCHEMA,
176
+ }),
177
+ sourceLocation: Object.freeze({ file: 'src/wire.ts', line: 1, column: 1 }),
178
+ });
179
+ /**
180
+ * The `draw/setCredential` invocation descriptor: store an API key under the
181
+ * engine's credential reference. The value crosses the wire once and is never
182
+ * logged, snapshotted, or returned.
183
+ */
184
+ export const DRAW_SET_CREDENTIAL_DESCRIPTOR = Object.freeze({
185
+ id: 'dsh-draw#draw/setCredential',
186
+ service: 'dsh-draw',
187
+ namespace: 'draw',
188
+ method: 'setCredential',
189
+ invocation: Object.freeze({ kind: 'direct' }),
190
+ parameters: Object.freeze([
191
+ Object.freeze({
192
+ name: 'engineId',
193
+ wire: 'engineId',
194
+ source: 'json',
195
+ codec: Object.freeze({ mode: 'strict', typeSymbol: 'dsh-draw/types#EngineId', schema: ENGINE_ID_CODEC }),
196
+ }),
197
+ Object.freeze({
198
+ name: 'value',
199
+ wire: 'value',
200
+ source: 'json',
201
+ codec: Object.freeze({ mode: 'strict', typeSymbol: 'dsh-draw/types#CredentialValue', schema: CREDENTIAL_VALUE_CODEC }),
202
+ }),
203
+ ]),
204
+ result: Object.freeze({
205
+ mode: 'strict',
206
+ typeSymbol: 'dsh-draw/types#CredentialActionResult',
207
+ schema: CREDENTIAL_ACTION_SCHEMA,
208
+ }),
209
+ sourceLocation: Object.freeze({ file: 'src/wire.ts', line: 1, column: 1 }),
210
+ });
211
+ /**
212
+ * The `draw/unsetCredential` invocation descriptor: remove a stored API key.
213
+ */
214
+ export const DRAW_UNSET_CREDENTIAL_DESCRIPTOR = Object.freeze({
215
+ id: 'dsh-draw#draw/unsetCredential',
216
+ service: 'dsh-draw',
217
+ namespace: 'draw',
218
+ method: 'unsetCredential',
219
+ invocation: Object.freeze({ kind: 'direct' }),
220
+ parameters: Object.freeze([Object.freeze({
221
+ name: 'engineId',
222
+ wire: 'engineId',
223
+ source: 'json',
224
+ codec: Object.freeze({ mode: 'strict', typeSymbol: 'dsh-draw/types#EngineId', schema: ENGINE_ID_CODEC }),
225
+ })]),
226
+ result: Object.freeze({
227
+ mode: 'strict',
228
+ typeSymbol: 'dsh-draw/types#CredentialActionResult',
229
+ schema: CREDENTIAL_ACTION_SCHEMA,
230
+ }),
231
+ sourceLocation: Object.freeze({ file: 'src/wire.ts', line: 1, column: 1 }),
232
+ });
233
+ /**
234
+ * The `draw/regenerate` invocation descriptor: re-run a generation from the
235
+ * result card with the original tool args. The host re-runs the full drawer
236
+ * path (quota, routing, attachment storage, audit event) so a regenerate is
237
+ * as durable and accounted as a tool call.
238
+ */
239
+ export const DRAW_REGENERATE_DESCRIPTOR = Object.freeze({
240
+ id: 'dsh-draw#draw/regenerate',
241
+ service: 'dsh-draw',
242
+ namespace: 'draw',
243
+ method: 'regenerate',
244
+ invocation: Object.freeze({ kind: 'direct' }),
245
+ parameters: Object.freeze([
246
+ Object.freeze({
247
+ name: 'sessionId',
248
+ wire: 'sessionId',
249
+ source: 'json',
250
+ codec: Object.freeze({ mode: 'strict', typeSymbol: 'dsh-draw/types#SessionId', schema: SESSION_ID_CODEC }),
251
+ }),
252
+ Object.freeze({
253
+ name: 'args',
254
+ wire: 'args',
255
+ source: 'json',
256
+ codec: Object.freeze({ mode: 'strict', typeSymbol: 'dsh-draw/types#RegenerateArgs', schema: REGENERATE_ARGS_CODEC }),
257
+ }),
258
+ ]),
259
+ result: Object.freeze({
260
+ mode: 'strict',
261
+ typeSymbol: 'dsh-draw/types#DrawRegenerateResult',
262
+ schema: DRAW_REGENERATE_SCHEMA,
263
+ }),
264
+ sourceLocation: Object.freeze({ file: 'src/wire.ts', line: 1, column: 1 }),
265
+ });
266
+ /** The canonical invocation list both Typert faces register. */
267
+ export const DRAW_INVOCATIONS = Object.freeze([
268
+ DRAW_STATUS_DESCRIPTOR,
269
+ DRAW_PROBE_DESCRIPTOR,
270
+ DRAW_SET_CREDENTIAL_DESCRIPTOR,
271
+ DRAW_UNSET_CREDENTIAL_DESCRIPTOR,
272
+ DRAW_REGENERATE_DESCRIPTOR,
273
+ ]);