youiyoux 0.1.2 → 0.1.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/dist/chunks/{chunk-FUB7B3VK.js → chunk-74KBRI2H.js} +1 -1
- package/dist/chunks/{chunk-ZLRFD5JI.js → chunk-C3TSTYP7.js} +68 -7
- package/dist/chunks/{chunk-3ZHGONNA.js → chunk-L5BV4PI7.js} +399 -37
- package/dist/chunks/{src-7ENJHYG4.js → chunk-OIHNEGWH.js} +278 -78
- package/dist/chunks/{chunk-CLNMVQZJ.js → chunk-RTOTNSOV.js} +133 -13
- package/dist/chunks/{chunk-UHPK62Q5.js → chunk-UEB6MJDX.js} +75 -10
- package/dist/chunks/{src-VEHGMKYV.js → src-DS43LCRA.js} +2 -2
- package/dist/chunks/src-U5NTDPUX.js +148 -0
- package/dist/chunks/{src-WQWYJ6IQ.js → src-YGEZCUAO.js} +48 -6
- package/dist/chunks/{src-4KFNL3MY.js → src-YUC5PIDK.js} +6 -2
- package/dist/chunks/{src-B742AYFC.js → src-ZS76UD7E.js} +30 -2
- package/dist/schema/youi.request.schema.json +229 -0
- package/dist/youi.js +5 -5
- package/dist/youiyoux.js +5 -5
- package/package.json +4 -4
|
@@ -2,7 +2,7 @@ import { createRequire as __youiRequire } from "node:module"; const require = __
|
|
|
2
2
|
import {
|
|
3
3
|
SHADCN_SLOTS,
|
|
4
4
|
libraryOfPackage
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-74KBRI2H.js";
|
|
6
6
|
import {
|
|
7
7
|
DISCOVER_RULE,
|
|
8
8
|
DiscoverConstraints,
|
|
@@ -18,7 +18,11 @@ import {
|
|
|
18
18
|
sharedStore,
|
|
19
19
|
showFromCatalog,
|
|
20
20
|
storeLocation
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-UEB6MJDX.js";
|
|
22
|
+
import {
|
|
23
|
+
RequestStore,
|
|
24
|
+
requestBrief
|
|
25
|
+
} from "./chunk-OIHNEGWH.js";
|
|
22
26
|
import {
|
|
23
27
|
PROJECT_FILE,
|
|
24
28
|
ScanCache,
|
|
@@ -42,7 +46,7 @@ import {
|
|
|
42
46
|
shotsText,
|
|
43
47
|
tokenRows,
|
|
44
48
|
whereUsed
|
|
45
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-L5BV4PI7.js";
|
|
46
50
|
import "./chunk-S7UV34H5.js";
|
|
47
51
|
import {
|
|
48
52
|
$ZodObject,
|
|
@@ -82,7 +86,7 @@ import {
|
|
|
82
86
|
toJSONSchema,
|
|
83
87
|
union,
|
|
84
88
|
unknown
|
|
85
|
-
} from "./chunk-
|
|
89
|
+
} from "./chunk-C3TSTYP7.js";
|
|
86
90
|
import {
|
|
87
91
|
__commonJS,
|
|
88
92
|
__toESM
|
|
@@ -16866,7 +16870,7 @@ var StdioServerTransport = class {
|
|
|
16866
16870
|
|
|
16867
16871
|
// ../mcp/src/server.ts
|
|
16868
16872
|
import { existsSync, realpathSync } from "node:fs";
|
|
16869
|
-
import { isAbsolute, join, resolve, sep } from "node:path";
|
|
16873
|
+
import { basename, isAbsolute, join, resolve, sep } from "node:path";
|
|
16870
16874
|
|
|
16871
16875
|
// ../mcp/src/find-component.ts
|
|
16872
16876
|
import { posix } from "node:path";
|
|
@@ -17152,6 +17156,8 @@ function renderText(report) {
|
|
|
17152
17156
|
var VERSION = "0.1.0";
|
|
17153
17157
|
var DEFAULT_TTL = 5e3;
|
|
17154
17158
|
var READ_ONLY = { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false };
|
|
17159
|
+
var WRITES_REQUEST = { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false };
|
|
17160
|
+
var AGENT = { kind: "agent", name: "agent (MCP)" };
|
|
17155
17161
|
var ok = (value) => ({ content: [{ type: "text", text: JSON.stringify(value) }] });
|
|
17156
17162
|
var text = (value) => ({ content: [{ type: "text", text: value }] });
|
|
17157
17163
|
var fail = (error) => ({ content: [{ type: "text", text: JSON.stringify({ error: error instanceof Error ? error.message : String(error) }) }], isError: true });
|
|
@@ -17244,7 +17250,7 @@ function createServer(options) {
|
|
|
17244
17250
|
const server = new McpServer(
|
|
17245
17251
|
{ name: "youiyoux", version: VERSION },
|
|
17246
17252
|
{
|
|
17247
|
-
instructions: "YouIyouX: the UI context and verification layer for this project. Before creating any UI component, call ui_find_component with the need in words: reuse the existing component it names, or start where it says when nothing fits. Build only with System elements: call system_get_component before using a component's props, system_get_tokens instead of writing colours or sizes, and system_check on code before finishing. system_plan shows the impact of a change to the System. The Library (library_* tools, lib: ids) holds ingested references that are not approved: browse them with library_search, never import, copy or build with them, and use library_request to draft an adoption request for a person to approve. discover_search and discover_show find outside candidates by need (shadcn registries, npm) with licence, signals and install command: they are references, never install or copy one; propose one with library_request. index_where_used, index_swap_impact and index_rule_covers answer from the local index in a few lines: where an inventory family (button-2) is used, what swapping a candidate in for it would touch, and what a rule covers. After changing a component, call ui_render with its file and look at the images it names: light and dark at desktop and phone width, accessibility issues, and a diff against the base commit. There are no tools to publish, approve or install anything."
|
|
17253
|
+
instructions: "YouIyouX: the UI context and verification layer for this project. Before creating any UI component, call ui_find_component with the need in words: reuse the existing component it names, or start where it says when nothing fits. Build only with System elements: call system_get_component before using a component's props, system_get_tokens instead of writing colours or sizes, and system_check on code before finishing. system_plan shows the impact of a change to the System. The Library (library_* tools, lib: ids) holds ingested references that are not approved: browse them with library_search, never import, copy or build with them, and use library_request to draft an adoption request for a person to approve. discover_search and discover_show find outside candidates by need (shadcn registries, npm) with licence, signals and install command: they are references, never install or copy one; propose one with library_request. index_where_used, index_swap_impact and index_rule_covers answer from the local index in a few lines: where an inventory family (button-2) is used, what swapping a candidate in for it would touch, and what a rule covers. After changing a component, call ui_render with its file and look at the images it names: light and dark at desktop and phone width, accessibility issues, and a diff against the base commit. People pin comments and change requests to components on captured screens: call requests_list before UI work, ask with request_reply when one is unclear, and after making a change call request_addressed with what you changed; a person closes it. There are no tools to publish, approve, close or install anything."
|
|
17248
17254
|
}
|
|
17249
17255
|
);
|
|
17250
17256
|
server.registerTool(
|
|
@@ -17478,6 +17484,42 @@ function createServer(options) {
|
|
|
17478
17484
|
}
|
|
17479
17485
|
})
|
|
17480
17486
|
);
|
|
17487
|
+
async function requests() {
|
|
17488
|
+
const project = await state.loadProject().catch(() => null);
|
|
17489
|
+
const root = project?.root ?? resolve(options.productRoot ?? options.projectRoot);
|
|
17490
|
+
return { store: new RequestStore(root, project?.config.id ?? basename(root)), root };
|
|
17491
|
+
}
|
|
17492
|
+
server.registerTool(
|
|
17493
|
+
"requests_list",
|
|
17494
|
+
{
|
|
17495
|
+
title: "Requests on the screens",
|
|
17496
|
+
description: "Comments and change requests people pinned to components on captured screens (the hub's Screens page). Each says what is asked, the route and component, the file:line that rendered it, whether it means this one or every use of the element, the screenshot (an absolute path: open it) with the component's box on it in that picture's pixels, the thread, and what to do next. Call it before UI work. Default: open requests.",
|
|
17497
|
+
inputSchema: { status: external_exports.enum(["open", "addressed", "closed", "all"]).optional(), route: external_exports.string().min(1).optional().describe("Only this route, e.g. /settings") },
|
|
17498
|
+
annotations: READ_ONLY
|
|
17499
|
+
},
|
|
17500
|
+
guard(async ({ status, route }) => {
|
|
17501
|
+
const { store, root } = await requests();
|
|
17502
|
+
const { requests: all, unreadable } = await store.list();
|
|
17503
|
+
const wanted = all.filter((r) => (status === "all" || r.status === (status ?? "open")) && (!route || r.target.route === route));
|
|
17504
|
+
return { requests: wanted.map((r) => requestBrief(r, root)), ...unreadable.length ? { unreadable } : {}, ...wanted.length === 0 ? { next: `No ${status && status !== "all" ? status : "open"} requests${route ? ` on ${route}` : ""}.` } : {} };
|
|
17505
|
+
})
|
|
17506
|
+
);
|
|
17507
|
+
server.registerTool(
|
|
17508
|
+
"request_reply",
|
|
17509
|
+
{ title: "Reply on a request", description: "Add a reply to a request's thread: a question when the ask is unclear, or an answer to a comment. Writes only that request's file in .youi/requests.", inputSchema: { id: external_exports.string().regex(/^r-[0-9a-f]{10}$/).describe("The request id, r-<10 hex>"), message: external_exports.string().min(1).max(4e3) }, annotations: WRITES_REQUEST },
|
|
17510
|
+
guard(async ({ id, message }) => {
|
|
17511
|
+
const { store, root } = await requests();
|
|
17512
|
+
return requestBrief(await store.reply(AGENT, id, message), root);
|
|
17513
|
+
})
|
|
17514
|
+
);
|
|
17515
|
+
server.registerTool(
|
|
17516
|
+
"request_addressed",
|
|
17517
|
+
{ title: "Mark a request addressed", description: "Say a change request is done, with what you changed (file:line). A person checks it on the screen and closes it, or reopens it; an agent never closes one. Writes only that request's file in .youi/requests.", inputSchema: { id: external_exports.string().regex(/^r-[0-9a-f]{10}$/).describe("The request id, r-<10 hex>"), message: external_exports.string().min(1).max(4e3).describe("What you changed, with file:line") }, annotations: WRITES_REQUEST },
|
|
17518
|
+
guard(async ({ id, message }) => {
|
|
17519
|
+
const { store, root } = await requests();
|
|
17520
|
+
return requestBrief(await store.setStatus(AGENT, id, "addressed", message), root);
|
|
17521
|
+
})
|
|
17522
|
+
);
|
|
17481
17523
|
return server;
|
|
17482
17524
|
}
|
|
17483
17525
|
async function startStdioServer(options) {
|
|
@@ -58,6 +58,7 @@ import {
|
|
|
58
58
|
keyPackage,
|
|
59
59
|
licenceOf,
|
|
60
60
|
linkCandidates,
|
|
61
|
+
linkedRepos,
|
|
61
62
|
loadIndex,
|
|
62
63
|
looksLikeRegistry,
|
|
63
64
|
mergeCategories,
|
|
@@ -94,6 +95,7 @@ import {
|
|
|
94
95
|
rolesOf,
|
|
95
96
|
safeRelative,
|
|
96
97
|
sameHomepage,
|
|
98
|
+
sameSite,
|
|
97
99
|
searchCatalog,
|
|
98
100
|
searchIndex,
|
|
99
101
|
searchTextOf,
|
|
@@ -112,8 +114,8 @@ import {
|
|
|
112
114
|
writeHttpCache,
|
|
113
115
|
writeJson,
|
|
114
116
|
writeSources
|
|
115
|
-
} from "./chunk-
|
|
116
|
-
import "./chunk-
|
|
117
|
+
} from "./chunk-UEB6MJDX.js";
|
|
118
|
+
import "./chunk-C3TSTYP7.js";
|
|
117
119
|
import "./chunk-E4HNK7VF.js";
|
|
118
120
|
export {
|
|
119
121
|
ALL_INDEX_FILE,
|
|
@@ -174,6 +176,7 @@ export {
|
|
|
174
176
|
keyPackage,
|
|
175
177
|
licenceOf,
|
|
176
178
|
linkCandidates,
|
|
179
|
+
linkedRepos,
|
|
177
180
|
loadIndex,
|
|
178
181
|
looksLikeRegistry,
|
|
179
182
|
mergeCategories,
|
|
@@ -210,6 +213,7 @@ export {
|
|
|
210
213
|
rolesOf,
|
|
211
214
|
safeRelative,
|
|
212
215
|
sameHomepage,
|
|
216
|
+
sameSite,
|
|
213
217
|
searchCatalog,
|
|
214
218
|
searchIndex,
|
|
215
219
|
searchTextOf,
|
|
@@ -14,10 +14,13 @@ import {
|
|
|
14
14
|
HEX,
|
|
15
15
|
LIBRARY_RULE,
|
|
16
16
|
MAX_LOOKS,
|
|
17
|
+
MAX_PLACES,
|
|
17
18
|
MAX_SIBLINGS,
|
|
18
19
|
ModuleGraph,
|
|
19
20
|
ModuleResolver,
|
|
21
|
+
PICTURE_SCALE,
|
|
20
22
|
PIXEL_THRESHOLD,
|
|
23
|
+
PLACES_SCHEMA,
|
|
21
24
|
PROJECT_FILE,
|
|
22
25
|
ProjectRootError,
|
|
23
26
|
ProjectWatcher,
|
|
@@ -26,6 +29,7 @@ import {
|
|
|
26
29
|
RouteIndex,
|
|
27
30
|
SCANNER_VERSION,
|
|
28
31
|
SCHEMES,
|
|
32
|
+
SCREENS_SCHEMA,
|
|
29
33
|
SHOTS_FORMAT,
|
|
30
34
|
SHOT_WIDTHS,
|
|
31
35
|
SPACING_UTILITY,
|
|
@@ -53,6 +57,8 @@ import {
|
|
|
53
57
|
bundleForBrowser,
|
|
54
58
|
bundlePreview,
|
|
55
59
|
canonicalKey,
|
|
60
|
+
captureScreens,
|
|
61
|
+
captureText,
|
|
56
62
|
changedFiles,
|
|
57
63
|
checkCapabilities,
|
|
58
64
|
checkIdentity,
|
|
@@ -71,6 +77,7 @@ import {
|
|
|
71
77
|
countParseErrors,
|
|
72
78
|
coverageOf,
|
|
73
79
|
createBaseline,
|
|
80
|
+
decodeMap,
|
|
74
81
|
defaultCacheDir,
|
|
75
82
|
definitionsDigest,
|
|
76
83
|
describeIdentity,
|
|
@@ -101,6 +108,7 @@ import {
|
|
|
101
108
|
literalOf,
|
|
102
109
|
loadInventoryTarget,
|
|
103
110
|
loadProject,
|
|
111
|
+
locateInPage,
|
|
104
112
|
markupOf,
|
|
105
113
|
nearDuplicates,
|
|
106
114
|
newShotStats,
|
|
@@ -109,10 +117,12 @@ import {
|
|
|
109
117
|
numericValue,
|
|
110
118
|
offLibraryImports,
|
|
111
119
|
offsetToPosition,
|
|
120
|
+
originalPosition,
|
|
112
121
|
pageStylesheets,
|
|
113
122
|
parseModule,
|
|
114
123
|
planChange,
|
|
115
124
|
planImports,
|
|
125
|
+
projectPath,
|
|
116
126
|
projectSpecimens,
|
|
117
127
|
projectTailwind,
|
|
118
128
|
projectTheme,
|
|
@@ -123,8 +133,10 @@ import {
|
|
|
123
133
|
rawColorsInScript,
|
|
124
134
|
readCsf,
|
|
125
135
|
readDecorator,
|
|
136
|
+
readScreensSpec,
|
|
126
137
|
readStylesheet,
|
|
127
138
|
renderShots,
|
|
139
|
+
resolvePlaces,
|
|
128
140
|
resolveTag,
|
|
129
141
|
reuseOf,
|
|
130
142
|
ruleCapability,
|
|
@@ -133,11 +145,13 @@ import {
|
|
|
133
145
|
runMigration,
|
|
134
146
|
scanProject,
|
|
135
147
|
screenBom,
|
|
148
|
+
screenSlug,
|
|
136
149
|
searchElements,
|
|
137
150
|
searchLibrary,
|
|
138
151
|
shapeDistance,
|
|
139
152
|
shotsNext,
|
|
140
153
|
shotsText,
|
|
154
|
+
sourceMapOf,
|
|
141
155
|
specifierFor,
|
|
142
156
|
staticBase,
|
|
143
157
|
storyConfig,
|
|
@@ -159,14 +173,14 @@ import {
|
|
|
159
173
|
vendoredPath,
|
|
160
174
|
verifyRewrite,
|
|
161
175
|
whereUsed
|
|
162
|
-
} from "./chunk-
|
|
176
|
+
} from "./chunk-L5BV4PI7.js";
|
|
163
177
|
import {
|
|
164
178
|
escapingLinks,
|
|
165
179
|
isBarePackageUnderRoot,
|
|
166
180
|
relativeInside,
|
|
167
181
|
within
|
|
168
182
|
} from "./chunk-S7UV34H5.js";
|
|
169
|
-
import "./chunk-
|
|
183
|
+
import "./chunk-C3TSTYP7.js";
|
|
170
184
|
import "./chunk-E4HNK7VF.js";
|
|
171
185
|
export {
|
|
172
186
|
ARBITRARY,
|
|
@@ -183,10 +197,13 @@ export {
|
|
|
183
197
|
HEX,
|
|
184
198
|
LIBRARY_RULE,
|
|
185
199
|
MAX_LOOKS,
|
|
200
|
+
MAX_PLACES,
|
|
186
201
|
MAX_SIBLINGS,
|
|
187
202
|
ModuleGraph,
|
|
188
203
|
ModuleResolver,
|
|
204
|
+
PICTURE_SCALE,
|
|
189
205
|
PIXEL_THRESHOLD,
|
|
206
|
+
PLACES_SCHEMA,
|
|
190
207
|
PROJECT_FILE,
|
|
191
208
|
ProjectRootError,
|
|
192
209
|
ProjectWatcher,
|
|
@@ -195,6 +212,7 @@ export {
|
|
|
195
212
|
RouteIndex,
|
|
196
213
|
SCANNER_VERSION,
|
|
197
214
|
SCHEMES,
|
|
215
|
+
SCREENS_SCHEMA,
|
|
198
216
|
SHOTS_FORMAT,
|
|
199
217
|
SHOT_WIDTHS,
|
|
200
218
|
SPACING_UTILITY,
|
|
@@ -222,6 +240,8 @@ export {
|
|
|
222
240
|
bundleForBrowser,
|
|
223
241
|
bundlePreview,
|
|
224
242
|
canonicalKey,
|
|
243
|
+
captureScreens,
|
|
244
|
+
captureText,
|
|
225
245
|
changedFiles,
|
|
226
246
|
checkCapabilities,
|
|
227
247
|
checkIdentity,
|
|
@@ -240,6 +260,7 @@ export {
|
|
|
240
260
|
countParseErrors,
|
|
241
261
|
coverageOf,
|
|
242
262
|
createBaseline,
|
|
263
|
+
decodeMap,
|
|
243
264
|
defaultCacheDir,
|
|
244
265
|
definitionsDigest,
|
|
245
266
|
describeIdentity,
|
|
@@ -272,6 +293,7 @@ export {
|
|
|
272
293
|
literalOf,
|
|
273
294
|
loadInventoryTarget,
|
|
274
295
|
loadProject,
|
|
296
|
+
locateInPage,
|
|
275
297
|
markupOf,
|
|
276
298
|
nearDuplicates,
|
|
277
299
|
newShotStats,
|
|
@@ -280,10 +302,12 @@ export {
|
|
|
280
302
|
numericValue,
|
|
281
303
|
offLibraryImports,
|
|
282
304
|
offsetToPosition,
|
|
305
|
+
originalPosition,
|
|
283
306
|
pageStylesheets,
|
|
284
307
|
parseModule,
|
|
285
308
|
planChange,
|
|
286
309
|
planImports,
|
|
310
|
+
projectPath,
|
|
287
311
|
projectSpecimens,
|
|
288
312
|
projectTailwind,
|
|
289
313
|
projectTheme,
|
|
@@ -294,9 +318,11 @@ export {
|
|
|
294
318
|
rawColorsInScript,
|
|
295
319
|
readCsf,
|
|
296
320
|
readDecorator,
|
|
321
|
+
readScreensSpec,
|
|
297
322
|
readStylesheet,
|
|
298
323
|
relativeInside,
|
|
299
324
|
renderShots,
|
|
325
|
+
resolvePlaces,
|
|
300
326
|
resolveTag,
|
|
301
327
|
reuseOf,
|
|
302
328
|
ruleCapability,
|
|
@@ -305,11 +331,13 @@ export {
|
|
|
305
331
|
runMigration,
|
|
306
332
|
scanProject,
|
|
307
333
|
screenBom,
|
|
334
|
+
screenSlug,
|
|
308
335
|
searchElements,
|
|
309
336
|
searchLibrary,
|
|
310
337
|
shapeDistance,
|
|
311
338
|
shotsNext,
|
|
312
339
|
shotsText,
|
|
340
|
+
sourceMapOf,
|
|
313
341
|
specifierFor,
|
|
314
342
|
staticBase,
|
|
315
343
|
storyConfig,
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "https://design-language.local/schema/youi.request.schema.json",
|
|
3
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"$schema": {
|
|
7
|
+
"type": "string"
|
|
8
|
+
},
|
|
9
|
+
"schema": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"const": "youi.request/v1"
|
|
12
|
+
},
|
|
13
|
+
"id": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"pattern": "^r-[0-9a-f]{10}$"
|
|
16
|
+
},
|
|
17
|
+
"project": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"minLength": 1,
|
|
20
|
+
"maxLength": 200
|
|
21
|
+
},
|
|
22
|
+
"kind": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"enum": [
|
|
25
|
+
"comment",
|
|
26
|
+
"change"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"status": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"enum": [
|
|
32
|
+
"open",
|
|
33
|
+
"addressed",
|
|
34
|
+
"closed"
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
"body": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"minLength": 1,
|
|
40
|
+
"maxLength": 4000
|
|
41
|
+
},
|
|
42
|
+
"author": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"properties": {
|
|
45
|
+
"kind": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"enum": [
|
|
48
|
+
"person",
|
|
49
|
+
"agent"
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
"name": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"minLength": 1,
|
|
55
|
+
"maxLength": 100
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"required": [
|
|
59
|
+
"kind",
|
|
60
|
+
"name"
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
"createdAt": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"format": "date-time",
|
|
66
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
67
|
+
},
|
|
68
|
+
"updatedAt": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"format": "date-time",
|
|
71
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
72
|
+
},
|
|
73
|
+
"target": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"properties": {
|
|
76
|
+
"route": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"minLength": 1,
|
|
79
|
+
"maxLength": 300
|
|
80
|
+
},
|
|
81
|
+
"scope": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"enum": [
|
|
84
|
+
"here",
|
|
85
|
+
"element"
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
"name": {
|
|
89
|
+
"type": "string",
|
|
90
|
+
"minLength": 1,
|
|
91
|
+
"maxLength": 200
|
|
92
|
+
},
|
|
93
|
+
"element": {
|
|
94
|
+
"type": "string",
|
|
95
|
+
"pattern": "^youi:([a-z][a-z0-9-]*)\\/(token|component|rule|migration)\\/([a-z0-9][a-z0-9.\\-]*)$"
|
|
96
|
+
},
|
|
97
|
+
"lookalike": {
|
|
98
|
+
"type": "boolean"
|
|
99
|
+
},
|
|
100
|
+
"file": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"minLength": 1,
|
|
103
|
+
"maxLength": 500
|
|
104
|
+
},
|
|
105
|
+
"line": {
|
|
106
|
+
"type": "integer",
|
|
107
|
+
"exclusiveMinimum": 0,
|
|
108
|
+
"maximum": 9007199254740991
|
|
109
|
+
},
|
|
110
|
+
"box": {
|
|
111
|
+
"type": "object",
|
|
112
|
+
"properties": {
|
|
113
|
+
"x": {
|
|
114
|
+
"type": "number"
|
|
115
|
+
},
|
|
116
|
+
"y": {
|
|
117
|
+
"type": "number"
|
|
118
|
+
},
|
|
119
|
+
"width": {
|
|
120
|
+
"type": "number",
|
|
121
|
+
"minimum": 0
|
|
122
|
+
},
|
|
123
|
+
"height": {
|
|
124
|
+
"type": "number",
|
|
125
|
+
"minimum": 0
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"required": [
|
|
129
|
+
"x",
|
|
130
|
+
"y",
|
|
131
|
+
"width",
|
|
132
|
+
"height"
|
|
133
|
+
]
|
|
134
|
+
},
|
|
135
|
+
"page": {
|
|
136
|
+
"type": "object",
|
|
137
|
+
"properties": {
|
|
138
|
+
"width": {
|
|
139
|
+
"type": "number",
|
|
140
|
+
"exclusiveMinimum": 0
|
|
141
|
+
},
|
|
142
|
+
"height": {
|
|
143
|
+
"type": "number",
|
|
144
|
+
"exclusiveMinimum": 0
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
"required": [
|
|
148
|
+
"width",
|
|
149
|
+
"height"
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"required": [
|
|
154
|
+
"route",
|
|
155
|
+
"scope",
|
|
156
|
+
"name"
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
"before": {
|
|
160
|
+
"type": "string",
|
|
161
|
+
"pattern": "^r-[0-9a-f]{10}\\.before\\.webp$"
|
|
162
|
+
},
|
|
163
|
+
"thread": {
|
|
164
|
+
"maxItems": 500,
|
|
165
|
+
"type": "array",
|
|
166
|
+
"items": {
|
|
167
|
+
"type": "object",
|
|
168
|
+
"properties": {
|
|
169
|
+
"author": {
|
|
170
|
+
"type": "object",
|
|
171
|
+
"properties": {
|
|
172
|
+
"kind": {
|
|
173
|
+
"type": "string",
|
|
174
|
+
"enum": [
|
|
175
|
+
"person",
|
|
176
|
+
"agent"
|
|
177
|
+
]
|
|
178
|
+
},
|
|
179
|
+
"name": {
|
|
180
|
+
"type": "string",
|
|
181
|
+
"minLength": 1,
|
|
182
|
+
"maxLength": 100
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"required": [
|
|
186
|
+
"kind",
|
|
187
|
+
"name"
|
|
188
|
+
]
|
|
189
|
+
},
|
|
190
|
+
"at": {
|
|
191
|
+
"type": "string",
|
|
192
|
+
"format": "date-time",
|
|
193
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
|
|
194
|
+
},
|
|
195
|
+
"body": {
|
|
196
|
+
"type": "string",
|
|
197
|
+
"maxLength": 4000
|
|
198
|
+
},
|
|
199
|
+
"status": {
|
|
200
|
+
"type": "string",
|
|
201
|
+
"enum": [
|
|
202
|
+
"open",
|
|
203
|
+
"addressed",
|
|
204
|
+
"closed"
|
|
205
|
+
]
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
"required": [
|
|
209
|
+
"author",
|
|
210
|
+
"at",
|
|
211
|
+
"body"
|
|
212
|
+
]
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
"required": [
|
|
217
|
+
"schema",
|
|
218
|
+
"id",
|
|
219
|
+
"project",
|
|
220
|
+
"kind",
|
|
221
|
+
"status",
|
|
222
|
+
"body",
|
|
223
|
+
"author",
|
|
224
|
+
"createdAt",
|
|
225
|
+
"updatedAt",
|
|
226
|
+
"target",
|
|
227
|
+
"thread"
|
|
228
|
+
]
|
|
229
|
+
}
|
package/dist/youi.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { createRequire as __youiRequire } from "node:module"; const require = __youiRequire(import.meta.url);
|
|
3
3
|
import {
|
|
4
4
|
main
|
|
5
|
-
} from "./chunks/chunk-
|
|
6
|
-
import "./chunks/chunk-
|
|
7
|
-
import "./chunks/chunk-
|
|
8
|
-
import "./chunks/chunk-
|
|
5
|
+
} from "./chunks/chunk-RTOTNSOV.js";
|
|
6
|
+
import "./chunks/chunk-74KBRI2H.js";
|
|
7
|
+
import "./chunks/chunk-UEB6MJDX.js";
|
|
8
|
+
import "./chunks/chunk-L5BV4PI7.js";
|
|
9
9
|
import "./chunks/chunk-S7UV34H5.js";
|
|
10
|
-
import "./chunks/chunk-
|
|
10
|
+
import "./chunks/chunk-C3TSTYP7.js";
|
|
11
11
|
import "./chunks/chunk-E4HNK7VF.js";
|
|
12
12
|
|
|
13
13
|
// src/youi.js
|
package/dist/youiyoux.js
CHANGED
|
@@ -3,12 +3,12 @@ import { createRequire as __youiRequire } from "node:module"; const require = __
|
|
|
3
3
|
import {
|
|
4
4
|
COMMAND_NAMES,
|
|
5
5
|
main
|
|
6
|
-
} from "./chunks/chunk-
|
|
7
|
-
import "./chunks/chunk-
|
|
8
|
-
import "./chunks/chunk-
|
|
9
|
-
import "./chunks/chunk-
|
|
6
|
+
} from "./chunks/chunk-RTOTNSOV.js";
|
|
7
|
+
import "./chunks/chunk-74KBRI2H.js";
|
|
8
|
+
import "./chunks/chunk-UEB6MJDX.js";
|
|
9
|
+
import "./chunks/chunk-L5BV4PI7.js";
|
|
10
10
|
import "./chunks/chunk-S7UV34H5.js";
|
|
11
|
-
import "./chunks/chunk-
|
|
11
|
+
import "./chunks/chunk-C3TSTYP7.js";
|
|
12
12
|
import "./chunks/chunk-E4HNK7VF.js";
|
|
13
13
|
|
|
14
14
|
// src/youiyoux.js
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "youiyoux",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Your agent rebuilds components you already have. youiyoux catches it: npx youiyoux turns any repo into a shareable report of near-duplicate components, hardcoded token values and off-library imports, with the fixes.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
"typescript": "6.0.3"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@youiyoux/cli": "0.1.
|
|
50
|
-
"@youiyoux/core": "0.1.
|
|
51
|
-
"@youiyoux/scanner": "0.1.
|
|
49
|
+
"@youiyoux/cli": "0.1.3",
|
|
50
|
+
"@youiyoux/core": "0.1.3",
|
|
51
|
+
"@youiyoux/scanner": "0.1.3"
|
|
52
52
|
},
|
|
53
53
|
"exports": {
|
|
54
54
|
"./package.json": "./package.json"
|