@lovelybunch/core 1.0.76-alpha.1 → 1.0.76-alpha.2

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"proposals.d.ts","sourceRoot":"","sources":["../src/proposals.ts"],"names":[],"mappings":"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"}
package/dist/proposals.js DELETED
@@ -1,483 +0,0 @@
1
- import { z } from 'zod';
2
- import { zodToJsonSchema } from 'zod-to-json-schema';
3
- import { MarkdownStorageAdapter } from './markdown-storage.js';
4
- import Fuse from 'fuse.js';
5
- import { getLogger, ProposalKinds } from './logging/index.js';
6
- // ============================================================================
7
- // Storage initialization with environment-aware path resolution
8
- // ============================================================================
9
- function resolveGaitPath() {
10
- if (process.env.NODE_ENV === 'development' && process.env.GAIT_DEV_ROOT) {
11
- return process.env.GAIT_DEV_ROOT;
12
- }
13
- if (process.env.GAIT_DATA_PATH) {
14
- return `${process.env.GAIT_DATA_PATH}/.nut`;
15
- }
16
- return '.nut';
17
- }
18
- // Create storage adapter with resolved path
19
- function getStorage() {
20
- return new MarkdownStorageAdapter(resolveGaitPath());
21
- }
22
- function logProposalEvent(kind, proposalId, payload) {
23
- try {
24
- const logger = getLogger();
25
- logger.log({
26
- kind,
27
- actor: 'cli:nut', // CLI operations
28
- subject: `proposal:${proposalId}`,
29
- tags: ['proposal'],
30
- payload: {
31
- proposalId,
32
- ...payload,
33
- },
34
- });
35
- }
36
- catch (err) {
37
- // Don't fail the operation if logging fails
38
- console.error('Failed to log proposal event:', err);
39
- }
40
- }
41
- // ============================================================================
42
- // Zod Schemas
43
- // ============================================================================
44
- export const ProposalStatusSchema = z.enum([
45
- 'draft', 'backlog', 'ready', 'queued', 'active', 'blocked', 'review', 'done', 'canceled', 'duplicate'
46
- ]);
47
- export const ProposalPrioritySchema = z.enum(['low', 'medium', 'high', 'critical']);
48
- export const AuthorSchema = z.object({
49
- id: z.string().min(1, 'Author ID is required'),
50
- name: z.string().min(1, 'Author name is required'),
51
- // Allow empty string, undefined, or valid email
52
- email: z.union([z.string().email(), z.literal('')]).optional(),
53
- role: z.string().optional(),
54
- type: z.enum(['human', 'agent']),
55
- });
56
- export const ProposalFiltersSchema = z.object({
57
- status: ProposalStatusSchema.optional(),
58
- author: z.string().optional(),
59
- priority: ProposalPrioritySchema.optional(),
60
- tags: z.array(z.string()).optional(),
61
- search: z.string().optional(),
62
- });
63
- export const PlanStepInputSchema = z.union([
64
- z.string(),
65
- z.object({
66
- id: z.string().optional(),
67
- description: z.string().min(1, 'Step description is required'),
68
- status: z.enum(['pending', 'in-progress', 'completed', 'failed']).optional(),
69
- command: z.string().optional(),
70
- expectedOutcome: z.string().optional(),
71
- })
72
- ]);
73
- export const CreateProposalInputSchema = z.object({
74
- title: z.string().min(1, 'Title is required').optional(),
75
- /** @deprecated Use `title` instead. Will be removed in a future version. */
76
- intent: z.string().min(1).optional(),
77
- content: z.string().min(1, 'Content is required'),
78
- author: AuthorSchema.optional(),
79
- planSteps: z.array(PlanStepInputSchema).optional(),
80
- status: ProposalStatusSchema.optional().default('draft'),
81
- metadata: z.object({
82
- tags: z.array(z.string()).optional(),
83
- priority: ProposalPrioritySchema.optional(),
84
- reviewers: z.array(z.string()).optional(),
85
- }).optional(),
86
- productSpecRef: z.string().optional(),
87
- }).refine(data => data.title || data.intent, {
88
- message: 'Title is required (or intent for backward compatibility)'
89
- });
90
- export const UpdateProposalInputSchema = z.object({
91
- title: z.string().min(1).optional(),
92
- /** @deprecated Use `title` instead. Will be removed in a future version. */
93
- intent: z.string().min(1).optional(),
94
- content: z.string().min(1).optional(),
95
- status: ProposalStatusSchema.optional(),
96
- planSteps: z.array(PlanStepInputSchema).optional(),
97
- metadata: z.object({
98
- tags: z.array(z.string()).optional(),
99
- priority: ProposalPrioritySchema.optional(),
100
- reviewers: z.array(z.string()).optional(),
101
- }).optional(),
102
- productSpecRef: z.string().optional(),
103
- }).refine(data => Object.keys(data).length > 0, {
104
- message: 'At least one field must be provided for update'
105
- });
106
- // ============================================================================
107
- // Helper Functions
108
- // ============================================================================
109
- function normalizePlanSteps(steps) {
110
- if (!steps || steps.length === 0)
111
- return [];
112
- return steps.map((step, index) => {
113
- if (typeof step === 'string') {
114
- return {
115
- id: `step-${index + 1}`,
116
- description: step,
117
- status: 'pending',
118
- command: undefined,
119
- output: undefined,
120
- executedAt: undefined,
121
- expectedOutcome: undefined,
122
- };
123
- }
124
- return {
125
- id: step.id || `step-${index + 1}`,
126
- description: step.description,
127
- status: step.status || 'pending',
128
- command: step.command,
129
- output: undefined,
130
- executedAt: undefined,
131
- expectedOutcome: step.expectedOutcome,
132
- };
133
- });
134
- }
135
- function createDefaultAuthor() {
136
- return {
137
- id: 'mcp-agent',
138
- name: 'MCP Agent',
139
- type: 'agent',
140
- };
141
- }
142
- function createEmptyProposal(id, now) {
143
- return {
144
- id,
145
- title: '',
146
- content: '',
147
- author: createDefaultAuthor(),
148
- planSteps: [],
149
- evidence: [],
150
- policies: [],
151
- featureFlags: [],
152
- experiments: [],
153
- telemetryContracts: [],
154
- releasePlan: {
155
- strategy: 'immediate',
156
- stages: [],
157
- rollbackPlan: '',
158
- },
159
- status: 'draft',
160
- metadata: {
161
- createdAt: now,
162
- updatedAt: now,
163
- reviewers: [],
164
- aiInteractions: [],
165
- tags: [],
166
- priority: 'medium',
167
- },
168
- };
169
- }
170
- // ============================================================================
171
- // Core Functions
172
- // ============================================================================
173
- /**
174
- * List proposals with optional filtering and search
175
- */
176
- export async function listProposals(filters) {
177
- const opts = ProposalFiltersSchema.parse(filters || {});
178
- const storage = getStorage();
179
- let proposals = await storage.loadAllProposals();
180
- // Apply filters
181
- if (opts.status) {
182
- proposals = proposals.filter(p => p.status === opts.status);
183
- }
184
- if (opts.priority) {
185
- proposals = proposals.filter(p => p.metadata?.priority === opts.priority);
186
- }
187
- if (opts.tags && opts.tags.length > 0) {
188
- proposals = proposals.filter(p => opts.tags.some(tag => p.metadata?.tags?.includes(tag)));
189
- }
190
- if (opts.author) {
191
- const authorLower = opts.author.toLowerCase();
192
- proposals = proposals.filter(p => p.author.name?.toLowerCase().includes(authorLower) ||
193
- p.author.id?.toLowerCase().includes(authorLower) ||
194
- p.author.email?.toLowerCase().includes(authorLower));
195
- }
196
- // Apply fuzzy search
197
- if (opts.search) {
198
- const fuse = new Fuse(proposals, {
199
- keys: ['title', 'intent', 'content', 'author.name', 'metadata.tags'],
200
- threshold: 0.4,
201
- ignoreLocation: true,
202
- });
203
- proposals = fuse.search(opts.search).map(r => r.item);
204
- }
205
- // Sort by updatedAt descending (most recent first)
206
- proposals.sort((a, b) => {
207
- const aTime = a.metadata?.updatedAt ? new Date(a.metadata.updatedAt).getTime() : 0;
208
- const bTime = b.metadata?.updatedAt ? new Date(b.metadata.updatedAt).getTime() : 0;
209
- return bTime - aTime;
210
- });
211
- return proposals;
212
- }
213
- /**
214
- * Get a single proposal by ID
215
- */
216
- export async function getProposal(id) {
217
- if (!id || typeof id !== 'string') {
218
- throw new Error('Proposal ID is required');
219
- }
220
- const storage = getStorage();
221
- return storage.loadProposal(id);
222
- }
223
- /**
224
- * Create a new proposal
225
- */
226
- export async function createProposal(input) {
227
- const validated = CreateProposalInputSchema.parse(input);
228
- const now = new Date();
229
- // Add random suffix to prevent ID collisions when creating quickly
230
- const randomSuffix = Math.random().toString(36).substring(2, 6);
231
- const id = `cp-${Date.now()}-${randomSuffix}`;
232
- // Use title, falling back to deprecated intent for backward compatibility
233
- const titleValue = validated.title || validated.intent || '';
234
- const proposal = {
235
- ...createEmptyProposal(id, now),
236
- title: titleValue,
237
- content: validated.content,
238
- author: validated.author || createDefaultAuthor(),
239
- planSteps: normalizePlanSteps(validated.planSteps),
240
- status: validated.status || 'draft',
241
- productSpecRef: validated.productSpecRef,
242
- metadata: {
243
- createdAt: now,
244
- updatedAt: now,
245
- reviewers: validated.metadata?.reviewers || [],
246
- aiInteractions: [],
247
- tags: validated.metadata?.tags || [],
248
- priority: validated.metadata?.priority || 'medium',
249
- },
250
- };
251
- const storage = getStorage();
252
- await storage.saveProposal(proposal);
253
- logProposalEvent(ProposalKinds.CREATE, id, {
254
- title: titleValue,
255
- status: proposal.status,
256
- authorType: proposal.author.type,
257
- authorName: proposal.author.name,
258
- tags: proposal.metadata?.tags,
259
- priority: proposal.metadata?.priority,
260
- });
261
- return proposal;
262
- }
263
- /**
264
- * Update an existing proposal
265
- */
266
- export async function updateProposal(id, updates) {
267
- if (!id || typeof id !== 'string') {
268
- throw new Error('Proposal ID is required');
269
- }
270
- const validated = UpdateProposalInputSchema.parse(updates);
271
- const storage = getStorage();
272
- const existing = await storage.loadProposal(id);
273
- if (!existing) {
274
- throw new Error(`Proposal not found: ${id}`);
275
- }
276
- // Ensure updatedAt is at least 1ms after createdAt to avoid duplicate detection
277
- const createdAtTime = existing.metadata.createdAt.getTime();
278
- const now = Math.max(Date.now(), createdAtTime + 1);
279
- // Use title, falling back to deprecated intent for backward compatibility
280
- const titleUpdate = validated.title || validated.intent;
281
- // Merge updates
282
- const merged = {
283
- ...existing,
284
- ...(titleUpdate !== undefined && { title: titleUpdate }),
285
- ...(validated.content !== undefined && { content: validated.content }),
286
- ...(validated.status !== undefined && { status: validated.status }),
287
- ...(validated.productSpecRef !== undefined && { productSpecRef: validated.productSpecRef }),
288
- ...(validated.planSteps !== undefined && { planSteps: normalizePlanSteps(validated.planSteps) }),
289
- metadata: {
290
- ...existing.metadata,
291
- updatedAt: new Date(now),
292
- ...(validated.metadata?.tags !== undefined && { tags: validated.metadata.tags }),
293
- ...(validated.metadata?.priority !== undefined && { priority: validated.metadata.priority }),
294
- ...(validated.metadata?.reviewers !== undefined && { reviewers: validated.metadata.reviewers }),
295
- },
296
- };
297
- await storage.saveProposal(merged);
298
- // Log status change specifically if status changed
299
- if (validated.status !== undefined && validated.status !== existing.status) {
300
- logProposalEvent(ProposalKinds.STATUS_CHANGE, id, {
301
- previousStatus: existing.status,
302
- newStatus: validated.status,
303
- });
304
- }
305
- else {
306
- logProposalEvent(ProposalKinds.UPDATE, id, {
307
- title: merged.title,
308
- status: merged.status,
309
- fieldsUpdated: Object.keys(validated),
310
- });
311
- }
312
- return merged;
313
- }
314
- /**
315
- * Delete a proposal by ID
316
- */
317
- export async function deleteProposal(id) {
318
- if (!id || typeof id !== 'string') {
319
- throw new Error('Proposal ID is required');
320
- }
321
- const storage = getStorage();
322
- return storage.deleteProposal(id);
323
- }
324
- // ============================================================================
325
- // Plan Step Schema and Function
326
- // ============================================================================
327
- export const AddPlanStepInputSchema = z.object({
328
- description: z.string().min(1, 'Step description is required'),
329
- status: z.enum(['pending', 'in-progress', 'completed', 'failed']).optional(),
330
- command: z.string().optional(),
331
- expectedOutcome: z.string().optional(),
332
- });
333
- export const AddCommentInputSchema = z.object({
334
- author: z.string().min(1, 'Comment author is required'),
335
- content: z.string().min(1, 'Comment content is required'),
336
- });
337
- /**
338
- * Add a plan step to an existing proposal
339
- */
340
- export async function addPlanStep(proposalId, step) {
341
- if (!proposalId || typeof proposalId !== 'string') {
342
- throw new Error('Proposal ID is required');
343
- }
344
- const validated = AddPlanStepInputSchema.parse(step);
345
- const storage = getStorage();
346
- const proposal = await storage.loadProposal(proposalId);
347
- if (!proposal) {
348
- throw new Error(`Proposal not found: ${proposalId}`);
349
- }
350
- const existingSteps = proposal.planSteps || [];
351
- const stepNum = (existingSteps.length + 1).toString().padStart(2, '0');
352
- const stepId = `step-${stepNum}`;
353
- const newStep = {
354
- id: stepId,
355
- description: validated.description,
356
- status: validated.status || 'pending',
357
- command: validated.command,
358
- expectedOutcome: validated.expectedOutcome,
359
- output: undefined,
360
- executedAt: undefined,
361
- };
362
- // Ensure updatedAt is at least 1ms after createdAt to avoid duplicate detection
363
- const createdAtTime = proposal.metadata.createdAt.getTime();
364
- const now = Math.max(Date.now(), createdAtTime + 1);
365
- const updatedProposal = {
366
- ...proposal,
367
- planSteps: [...existingSteps, newStep],
368
- metadata: {
369
- ...proposal.metadata,
370
- updatedAt: new Date(now),
371
- },
372
- };
373
- await storage.saveProposal(updatedProposal);
374
- logProposalEvent(ProposalKinds.UPDATE, proposalId, {
375
- action: 'add_plan_step',
376
- stepId,
377
- stepDescription: validated.description,
378
- });
379
- return newStep;
380
- }
381
- /**
382
- * Add a comment to an existing proposal
383
- */
384
- export async function addComment(proposalId, comment) {
385
- if (!proposalId || typeof proposalId !== 'string') {
386
- throw new Error('Proposal ID is required');
387
- }
388
- const validated = AddCommentInputSchema.parse(comment);
389
- const storage = getStorage();
390
- const proposal = await storage.loadProposal(proposalId);
391
- if (!proposal) {
392
- throw new Error(`Proposal not found: ${proposalId}`);
393
- }
394
- const existingComments = proposal.comments || [];
395
- const commentNum = (existingComments.length + 1).toString().padStart(2, '0');
396
- const commentId = `cmt-${commentNum}`;
397
- const createdAt = new Date().toISOString();
398
- const newComment = {
399
- id: commentId,
400
- author: validated.author,
401
- content: validated.content,
402
- createdAt,
403
- };
404
- // Ensure updatedAt is at least 1ms after createdAt to avoid duplicate detection
405
- const createdAtTime = proposal.metadata.createdAt.getTime();
406
- const now = Math.max(Date.now(), createdAtTime + 1);
407
- const updatedProposal = {
408
- ...proposal,
409
- comments: [...existingComments, newComment],
410
- metadata: {
411
- ...proposal.metadata,
412
- updatedAt: new Date(now),
413
- },
414
- };
415
- await storage.saveProposal(updatedProposal);
416
- logProposalEvent(ProposalKinds.UPDATE, proposalId, {
417
- action: 'add_comment',
418
- commentId,
419
- author: validated.author,
420
- });
421
- return newComment;
422
- }
423
- // ============================================================================
424
- // Export all schemas for MCP tool generation
425
- // ============================================================================
426
- export const proposalSchemas = {
427
- ProposalStatusSchema,
428
- ProposalPrioritySchema,
429
- AuthorSchema,
430
- ProposalFiltersSchema,
431
- PlanStepInputSchema,
432
- CreateProposalInputSchema,
433
- UpdateProposalInputSchema,
434
- AddPlanStepInputSchema,
435
- AddCommentInputSchema,
436
- };
437
- // ============================================================================
438
- // Pre-computed JSON Schemas for MCP tool parameters
439
- // ============================================================================
440
- // Helper to extract properties from JSON schema
441
- // Using 'any' to avoid TypeScript's deep type instantiation issues with zod-to-json-schema
442
- function extractJsonSchemaProperties(schema) {
443
- const jsonSchema = zodToJsonSchema(schema, { $refStrategy: 'none' });
444
- return (jsonSchema.properties || {});
445
- }
446
- // Base schema for update (without .refine()) to avoid TypeScript issues
447
- const UpdateProposalBaseSchema = z.object({
448
- title: z.string().min(1).optional(),
449
- /** @deprecated Use `title` instead. Will be removed in a future version. */
450
- intent: z.string().min(1).optional(),
451
- content: z.string().min(1).optional(),
452
- status: ProposalStatusSchema.optional(),
453
- planSteps: z.array(PlanStepInputSchema).optional(),
454
- metadata: z.object({
455
- tags: z.array(z.string()).optional(),
456
- priority: ProposalPrioritySchema.optional(),
457
- reviewers: z.array(z.string()).optional(),
458
- }).optional(),
459
- productSpecRef: z.string().optional(),
460
- });
461
- // Base schema for create (without .refine()) to avoid TypeScript issues
462
- const CreateProposalBaseSchema = z.object({
463
- title: z.string().min(1, 'Title is required').optional(),
464
- /** @deprecated Use `title` instead. Will be removed in a future version. */
465
- intent: z.string().min(1).optional(),
466
- content: z.string().min(1, 'Content is required'),
467
- author: AuthorSchema.optional(),
468
- planSteps: z.array(PlanStepInputSchema).optional(),
469
- status: ProposalStatusSchema.optional().default('draft'),
470
- metadata: z.object({
471
- tags: z.array(z.string()).optional(),
472
- priority: ProposalPrioritySchema.optional(),
473
- reviewers: z.array(z.string()).optional(),
474
- }).optional(),
475
- productSpecRef: z.string().optional(),
476
- });
477
- export const proposalJsonSchemas = {
478
- filters: extractJsonSchemaProperties(ProposalFiltersSchema),
479
- create: extractJsonSchemaProperties(CreateProposalBaseSchema),
480
- update: extractJsonSchemaProperties(UpdateProposalBaseSchema),
481
- createRequired: ['title', 'content'],
482
- };
483
- //# sourceMappingURL=proposals.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proposals.js","sourceRoot":"","sources":["../src/proposals.ts"],"names":[],"mappings":"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"}