rivet-design 0.21.2 → 0.21.4

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 (131) hide show
  1. package/dist/agent-variants/WorktreeOrchestrator.d.ts +1 -1
  2. package/dist/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
  3. package/dist/agent-variants/WorktreeOrchestrator.js +6 -7
  4. package/dist/agent-variants/WorktreeOrchestrator.js.map +1 -1
  5. package/dist/agent-variants/contracts.d.ts +286 -286
  6. package/dist/agent-variants/guidancePrompt.d.ts.map +1 -1
  7. package/dist/agent-variants/guidancePrompt.js +17 -0
  8. package/dist/agent-variants/guidancePrompt.js.map +1 -1
  9. package/dist/agent-variants/workItemBriefing.d.ts.map +1 -1
  10. package/dist/agent-variants/workItemBriefing.js +1 -1
  11. package/dist/agent-variants/workItemBriefing.js.map +1 -1
  12. package/dist/agent-variants/workItemContextFiles.d.ts.map +1 -1
  13. package/dist/agent-variants/workItemContextFiles.js +9 -4
  14. package/dist/agent-variants/workItemContextFiles.js.map +1 -1
  15. package/dist/cli/commands/contextRequest.d.ts.map +1 -1
  16. package/dist/cli/commands/contextRequest.js +19 -4
  17. package/dist/cli/commands/contextRequest.js.map +1 -1
  18. package/dist/cli/commands/generationPreflight.js +1 -1
  19. package/dist/cli/commands/generationPreflight.js.map +1 -1
  20. package/dist/cli/commands/guidanceReferences.d.ts +11 -0
  21. package/dist/cli/commands/guidanceReferences.d.ts.map +1 -0
  22. package/dist/cli/commands/guidanceReferences.js +56 -0
  23. package/dist/cli/commands/guidanceReferences.js.map +1 -0
  24. package/dist/cli/commands/mcpServe.d.ts.map +1 -1
  25. package/dist/cli/commands/mcpServe.js +9 -1
  26. package/dist/cli/commands/mcpServe.js.map +1 -1
  27. package/dist/cli/commands/open.d.ts.map +1 -1
  28. package/dist/cli/commands/open.js +18 -59
  29. package/dist/cli/commands/open.js.map +1 -1
  30. package/dist/cli/commands/status.js +1 -1
  31. package/dist/cli/commands/status.js.map +1 -1
  32. package/dist/cli/commands/update.d.ts.map +1 -1
  33. package/dist/cli/commands/update.js +7 -0
  34. package/dist/cli/commands/update.js.map +1 -1
  35. package/dist/cli/commands/wait.d.ts.map +1 -1
  36. package/dist/cli/commands/wait.js +37 -4
  37. package/dist/cli/commands/wait.js.map +1 -1
  38. package/dist/cli/entry.d.ts.map +1 -1
  39. package/dist/cli/entry.js +16 -0
  40. package/dist/cli/entry.js.map +1 -1
  41. package/dist/cli/projectRuntimeUpgrade.d.ts +21 -0
  42. package/dist/cli/projectRuntimeUpgrade.d.ts.map +1 -0
  43. package/dist/cli/projectRuntimeUpgrade.js +116 -0
  44. package/dist/cli/projectRuntimeUpgrade.js.map +1 -0
  45. package/dist/cli/router.d.ts.map +1 -1
  46. package/dist/cli/router.js +4 -3
  47. package/dist/cli/router.js.map +1 -1
  48. package/dist/cli/runtimeInterruption.d.ts +32 -0
  49. package/dist/cli/runtimeInterruption.d.ts.map +1 -0
  50. package/dist/cli/runtimeInterruption.js +65 -0
  51. package/dist/cli/runtimeInterruption.js.map +1 -0
  52. package/dist/cli/serverVersion.js +1 -1
  53. package/dist/cli/serverVersion.js.map +1 -1
  54. package/dist/cli/synchronizeRuntimes.d.ts +19 -0
  55. package/dist/cli/synchronizeRuntimes.d.ts.map +1 -0
  56. package/dist/cli/synchronizeRuntimes.js +113 -0
  57. package/dist/cli/synchronizeRuntimes.js.map +1 -0
  58. package/dist/library/HubClient.d.ts +2 -0
  59. package/dist/library/HubClient.d.ts.map +1 -1
  60. package/dist/library/HubClient.js +48 -9
  61. package/dist/library/HubClient.js.map +1 -1
  62. package/dist/routes/cli.d.ts +1 -0
  63. package/dist/routes/cli.d.ts.map +1 -1
  64. package/dist/routes/cli.js +11 -4
  65. package/dist/routes/cli.js.map +1 -1
  66. package/dist/routes/library/guidance.d.ts.map +1 -1
  67. package/dist/routes/library/guidance.js +6 -1
  68. package/dist/routes/library/guidance.js.map +1 -1
  69. package/dist/server.d.ts.map +1 -1
  70. package/dist/server.js +1 -0
  71. package/dist/server.js.map +1 -1
  72. package/dist/services/RuntimeAdmission.d.ts +1 -1
  73. package/dist/services/RuntimeAdmission.d.ts.map +1 -1
  74. package/dist/services/RuntimeAdmission.js +3 -2
  75. package/dist/services/RuntimeAdmission.js.map +1 -1
  76. package/dist/services/VariantRunService.d.ts +1 -0
  77. package/dist/services/VariantRunService.d.ts.map +1 -1
  78. package/dist/services/VariantRunService.js +8 -2
  79. package/dist/services/VariantRunService.js.map +1 -1
  80. package/dist/services/guidanceDelivery.d.ts.map +1 -1
  81. package/dist/services/guidanceDelivery.js +15 -11
  82. package/dist/services/guidanceDelivery.js.map +1 -1
  83. package/dist/services/guidanceReferences.d.ts +6 -0
  84. package/dist/services/guidanceReferences.d.ts.map +1 -0
  85. package/dist/services/guidanceReferences.js +133 -0
  86. package/dist/services/guidanceReferences.js.map +1 -0
  87. package/dist/services/profiles/DesignProfiles.d.ts +66 -1
  88. package/dist/services/profiles/DesignProfiles.d.ts.map +1 -1
  89. package/dist/services/profiles/DesignProfiles.js +5 -1
  90. package/dist/services/profiles/DesignProfiles.js.map +1 -1
  91. package/dist/services/profiles/ProfilePlanning.d.ts +1 -1
  92. package/dist/services/runtimeVersion.d.ts +1 -1
  93. package/dist/services/runtimeVersion.d.ts.map +1 -1
  94. package/dist/services/runtimeVersion.js +1 -1
  95. package/dist/services/runtimeVersion.js.map +1 -1
  96. package/dist/services/stopRuntimeProcess.d.ts +9 -0
  97. package/dist/services/stopRuntimeProcess.d.ts.map +1 -0
  98. package/dist/services/stopRuntimeProcess.js +84 -0
  99. package/dist/services/stopRuntimeProcess.js.map +1 -0
  100. package/dist/storage/profiles/ProfilePlans.d.ts +4 -4
  101. package/dist/storage/profiles/ProfileRecords.d.ts +1 -1
  102. package/dist/storage/profiles/ProfileRecords.d.ts.map +1 -1
  103. package/dist/storage/profiles/ProfileRecords.js +3 -1
  104. package/dist/storage/profiles/ProfileRecords.js.map +1 -1
  105. package/dist/storage/profiles/migrations.d.ts +2 -2
  106. package/dist/storage/profiles/migrations.d.ts.map +1 -1
  107. package/dist/storage/profiles/migrations.js +3 -0
  108. package/dist/storage/profiles/migrations.js.map +1 -1
  109. package/dist/storage/profiles/planSchema.d.ts +1 -1
  110. package/dist/storage/profiles/schema.d.ts +29 -1
  111. package/dist/storage/profiles/schema.d.ts.map +1 -1
  112. package/dist/storage/profiles/schema.js +1 -0
  113. package/dist/storage/profiles/schema.js.map +1 -1
  114. package/dist/types/design-profile.d.ts +2 -2
  115. package/dist/types/guidance-references.d.ts +230 -0
  116. package/dist/types/guidance-references.d.ts.map +1 -0
  117. package/dist/types/guidance-references.js +133 -0
  118. package/dist/types/guidance-references.js.map +1 -0
  119. package/dist/types/guidance.d.ts +662 -1
  120. package/dist/types/guidance.d.ts.map +1 -1
  121. package/dist/types/guidance.js +10 -2
  122. package/dist/types/guidance.js.map +1 -1
  123. package/dist/types/reference-onboarding.d.ts +2 -2
  124. package/dist/utils/skills/cli-guidance.d.ts +1 -1
  125. package/dist/utils/skills/cli-guidance.d.ts.map +1 -1
  126. package/dist/utils/skills/cli-guidance.js +4 -2
  127. package/dist/utils/skills/cli-guidance.js.map +1 -1
  128. package/package.json +3 -2
  129. package/src/ui/dist/assets/{LibraryEntry-B5kPF3Ey.js → LibraryEntry-yoxzWNdQ.js} +1 -1
  130. package/src/ui/dist/assets/{main-Er_TRZTd.js → main-DlZAsDUG.js} +2 -2
  131. package/src/ui/dist/index.html +1 -1
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GuidanceReferencesSchema = exports.GuidanceReferencesUploadSchema = exports.GuidanceReferenceUploadSchema = exports.GuidanceReferenceFileUploadSchema = exports.GuidanceReferenceNameSchema = exports.GUIDANCE_REFERENCE_TOTAL_BYTES = exports.GUIDANCE_REFERENCE_FILE_BYTES = exports.GUIDANCE_REFERENCE_FILE_COUNT = exports.GUIDANCE_REFERENCE_COUNT = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.GUIDANCE_REFERENCE_COUNT = 32;
6
+ exports.GUIDANCE_REFERENCE_FILE_COUNT = 100;
7
+ exports.GUIDANCE_REFERENCE_FILE_BYTES = 1024 * 1024;
8
+ exports.GUIDANCE_REFERENCE_TOTAL_BYTES = 5 * 1024 * 1024;
9
+ const REFERENCE_NAME_LENGTH = 500;
10
+ const REFERENCE_INTENT_LENGTH = 10000;
11
+ const REFERENCE_URL_LENGTH = 2048;
12
+ const REFERENCE_SEGMENT_BYTES = 255;
13
+ const FIRST_PRINTABLE_CODE_POINT = 32;
14
+ const DELETE_CODE_POINT = 127;
15
+ const isUtf8Text = (text) => new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(new TextEncoder().encode(text)) === text;
16
+ exports.GuidanceReferenceNameSchema = zod_1.z
17
+ .string()
18
+ .min(1)
19
+ .max(REFERENCE_NAME_LENGTH)
20
+ .refine((name) => isUtf8Text(name) &&
21
+ !/[\\:<>"|?*]/.test(name) &&
22
+ [...name].every((character) => character.charCodeAt(0) >= FIRST_PRINTABLE_CODE_POINT &&
23
+ character.charCodeAt(0) !== DELETE_CODE_POINT) &&
24
+ name
25
+ .split('/')
26
+ .every((part) => part !== '' &&
27
+ part !== '.' &&
28
+ part !== '..' &&
29
+ new TextEncoder().encode(part).byteLength <=
30
+ REFERENCE_SEGMENT_BYTES &&
31
+ !/[. ]$/.test(part) &&
32
+ !/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\.|$)/i.test(part)), 'Reference file names must be safe relative paths without traversal');
33
+ exports.GuidanceReferenceFileUploadSchema = zod_1.z
34
+ .object({
35
+ name: exports.GuidanceReferenceNameSchema,
36
+ content: zod_1.z
37
+ .string()
38
+ .refine((content) => !content.includes('\0') &&
39
+ new TextEncoder().encode(content).byteLength <=
40
+ exports.GUIDANCE_REFERENCE_FILE_BYTES &&
41
+ isUtf8Text(content), 'Reference files must be valid UTF-8 text without NUL bytes, at most 1 MiB'),
42
+ })
43
+ .strict();
44
+ const DigestSchema = zod_1.z.string().regex(/^[a-f0-9]{64}$/);
45
+ const GuidanceReferenceFileSchema = exports.GuidanceReferenceFileUploadSchema.extend({
46
+ path: zod_1.z.string().min(1).optional(),
47
+ sha256: DigestSchema.optional(),
48
+ });
49
+ const ReferenceOriginSchema = zod_1.z
50
+ .object({
51
+ kind: zod_1.z.enum(['url', 'repository']),
52
+ url: zod_1.z
53
+ .string()
54
+ .url()
55
+ .max(REFERENCE_URL_LENGTH)
56
+ .refine((value) => {
57
+ if (!URL.canParse(value))
58
+ return false;
59
+ const url = new URL(value);
60
+ return (['https:', 'http:'].includes(url.protocol) &&
61
+ !url.username &&
62
+ !url.password);
63
+ }, 'References require HTTP(S) URLs without credentials'),
64
+ intent: zod_1.z.string().trim().min(1).max(REFERENCE_INTENT_LENGTH),
65
+ revision: zod_1.z.string().trim().min(1).max(REFERENCE_NAME_LENGTH).optional(),
66
+ })
67
+ .strict();
68
+ exports.GuidanceReferenceUploadSchema = ReferenceOriginSchema.extend({
69
+ files: zod_1.z
70
+ .array(exports.GuidanceReferenceFileUploadSchema)
71
+ .max(exports.GUIDANCE_REFERENCE_FILE_COUNT)
72
+ .optional(),
73
+ });
74
+ const GuidanceReferenceSchema = ReferenceOriginSchema.extend({
75
+ files: zod_1.z
76
+ .array(GuidanceReferenceFileSchema)
77
+ .max(exports.GUIDANCE_REFERENCE_FILE_COUNT)
78
+ .optional(),
79
+ digest: DigestSchema.optional(),
80
+ });
81
+ const validateReferences = (references, context) => {
82
+ const files = references.flatMap((reference) => reference.files ?? []);
83
+ if (files.length > exports.GUIDANCE_REFERENCE_FILE_COUNT)
84
+ context.addIssue({
85
+ code: 'custom',
86
+ message: 'Saved references exceed the 100-file limit',
87
+ });
88
+ if (files.reduce((bytes, file) => bytes + new TextEncoder().encode(file.content).byteLength, 0) > exports.GUIDANCE_REFERENCE_TOTAL_BYTES)
89
+ context.addIssue({
90
+ code: 'custom',
91
+ message: 'Saved references exceed the 5 MiB text limit',
92
+ });
93
+ references.forEach((reference, index) => {
94
+ const directories = new Map();
95
+ for (const file of reference.files ?? []) {
96
+ const segments = file.name.split('/');
97
+ for (let length = 1; length < segments.length; length++) {
98
+ const directory = segments.slice(0, length).join('/');
99
+ const key = directory.normalize('NFC').toLowerCase();
100
+ const existing = directories.get(key);
101
+ if (existing !== undefined && existing !== directory)
102
+ context.addIssue({
103
+ code: 'custom',
104
+ path: [index, 'files'],
105
+ message: 'Reference directories must use consistent spelling and casing',
106
+ });
107
+ directories.set(key, directory);
108
+ }
109
+ }
110
+ const names = (reference.files ?? [])
111
+ .map((file) => file.name.normalize('NFC').toLowerCase())
112
+ .sort();
113
+ names.forEach((name, position) => {
114
+ if (names
115
+ .slice(0, position)
116
+ .some((previous) => name === previous || name.startsWith(`${previous}/`)))
117
+ context.addIssue({
118
+ code: 'custom',
119
+ path: [index, 'files'],
120
+ message: 'Reference file names must not duplicate or contain another file path',
121
+ });
122
+ });
123
+ });
124
+ };
125
+ exports.GuidanceReferencesUploadSchema = zod_1.z
126
+ .array(exports.GuidanceReferenceUploadSchema)
127
+ .max(exports.GUIDANCE_REFERENCE_COUNT)
128
+ .superRefine(validateReferences);
129
+ exports.GuidanceReferencesSchema = zod_1.z
130
+ .array(GuidanceReferenceSchema)
131
+ .max(exports.GUIDANCE_REFERENCE_COUNT)
132
+ .superRefine(validateReferences);
133
+ //# sourceMappingURL=guidance-references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guidance-references.js","sourceRoot":"","sources":["../../src/types/guidance-references.ts"],"names":[],"mappings":"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"}