@lovelybunch/core 1.0.72 → 1.0.74

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 +1 @@
1
- {"version":3,"file":"change-proposal.d.ts","sourceRoot":"","sources":["../src/change-proposal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,qBAAqB;IAChC,OAAO,CAAC,SAAS,CAA0C;IAE3D;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;KACnD,GAAG,cAAc;IAkClB;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI3C;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE;QACb,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,cAAc,EAAE;IA2BpB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,GAAG,SAAS;IAqBhF;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,cAAc,GAAG,SAAS;IAItE;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,QAAQ,GAAG,SAAS;IAkB3E;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;QACpD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;KAChC,GAAG,OAAO;IAsBX;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,GAAG,SAAS;IAiBtF;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,GAAG,OAAO;IAiBnE;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAKlB;;OAEG;IACH,MAAM,IAAI,cAAc,EAAE;IAI1B;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI;CAyB1C;AAGD,eAAO,MAAM,SAAS,uBAA8B,CAAC"}
1
+ {"version":3,"file":"change-proposal.d.ts","sourceRoot":"","sources":["../src/change-proposal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,qBAAqB;IAChC,OAAO,CAAC,SAAS,CAA0C;IAE3D;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;KACnD,GAAG,cAAc;IAkClB;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI3C;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE;QACb,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,cAAc,EAAE;IA2BpB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,GAAG,SAAS;IAqBhF;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,cAAc,GAAG,SAAS;IAItE;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,QAAQ,GAAG,SAAS;IAkB3E;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;QACpD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;KAChC,GAAG,OAAO;IAsBX;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,GAAG,SAAS;IAiBtF;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,GAAG,OAAO;IAiBnE;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,MAAM,IAAI,cAAc,EAAE;IAI1B;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI;CAyB1C;AAGD,eAAO,MAAM,SAAS,uBAA8B,CAAC"}
@@ -169,8 +169,7 @@ export class ChangeProposalManager {
169
169
  * Generate a unique ID for a Change Proposal
170
170
  */
171
171
  generateId() {
172
- const counter = this.proposals.size + 1;
173
- return `cp-${counter.toString().padStart(3, '0')}`;
172
+ return `cp-${Date.now()}`;
174
173
  }
175
174
  /**
176
175
  * Export all proposals (for persistence)
@@ -1 +1 @@
1
- {"version":3,"file":"change-proposal.js","sourceRoot":"","sources":["../src/change-proposal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change-proposal.js","sourceRoot":"","sources":["../src/change-proposal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,174 @@
1
+ import { z } from 'zod';
2
+ export declare const ContextTypeSchema: z.ZodEnum<["project", "architecture", "role"]>;
3
+ export type ContextType = z.infer<typeof ContextTypeSchema>;
4
+ export declare const ContextDocumentSchema: z.ZodObject<{
5
+ content: z.ZodString;
6
+ frontmatter: z.ZodRecord<z.ZodString, z.ZodUnknown>;
7
+ raw: z.ZodString;
8
+ }, "strip", z.ZodTypeAny, {
9
+ content: string;
10
+ frontmatter: Record<string, unknown>;
11
+ raw: string;
12
+ }, {
13
+ content: string;
14
+ frontmatter: Record<string, unknown>;
15
+ raw: string;
16
+ }>;
17
+ export type ContextDocument = z.infer<typeof ContextDocumentSchema>;
18
+ export declare const GetContextInputSchema: z.ZodObject<{
19
+ type: z.ZodEnum<["project", "architecture", "role"]>;
20
+ }, "strip", z.ZodTypeAny, {
21
+ type: "project" | "architecture" | "role";
22
+ }, {
23
+ type: "project" | "architecture" | "role";
24
+ }>;
25
+ export type GetContextInput = z.infer<typeof GetContextInputSchema>;
26
+ export declare const UpdateContextInputSchema: z.ZodObject<{
27
+ type: z.ZodEnum<["project", "architecture", "role"]>;
28
+ content: z.ZodString;
29
+ }, "strip", z.ZodTypeAny, {
30
+ content: string;
31
+ type: "project" | "architecture" | "role";
32
+ }, {
33
+ content: string;
34
+ type: "project" | "architecture" | "role";
35
+ }>;
36
+ export type UpdateContextInput = z.infer<typeof UpdateContextInputSchema>;
37
+ export declare const AppendContextInputSchema: z.ZodObject<{
38
+ type: z.ZodEnum<["project", "architecture", "role"]>;
39
+ content: z.ZodString;
40
+ }, "strip", z.ZodTypeAny, {
41
+ content: string;
42
+ type: "project" | "architecture" | "role";
43
+ }, {
44
+ content: string;
45
+ type: "project" | "architecture" | "role";
46
+ }>;
47
+ export type AppendContextInput = z.infer<typeof AppendContextInputSchema>;
48
+ export declare const ReplaceContextSectionInputSchema: z.ZodObject<{
49
+ type: z.ZodEnum<["project", "architecture", "role"]>;
50
+ oldText: z.ZodString;
51
+ newText: z.ZodString;
52
+ }, "strip", z.ZodTypeAny, {
53
+ type: "project" | "architecture" | "role";
54
+ oldText: string;
55
+ newText: string;
56
+ }, {
57
+ type: "project" | "architecture" | "role";
58
+ oldText: string;
59
+ newText: string;
60
+ }>;
61
+ export type ReplaceContextSectionInput = z.infer<typeof ReplaceContextSectionInputSchema>;
62
+ export declare const ReplaceContextResultSchema: z.ZodObject<{
63
+ success: z.ZodBoolean;
64
+ error: z.ZodOptional<z.ZodString>;
65
+ fallbackMarkdown: z.ZodOptional<z.ZodString>;
66
+ suggestion: z.ZodOptional<z.ZodString>;
67
+ }, "strip", z.ZodTypeAny, {
68
+ success: boolean;
69
+ error?: string | undefined;
70
+ fallbackMarkdown?: string | undefined;
71
+ suggestion?: string | undefined;
72
+ }, {
73
+ success: boolean;
74
+ error?: string | undefined;
75
+ fallbackMarkdown?: string | undefined;
76
+ suggestion?: string | undefined;
77
+ }>;
78
+ export type ReplaceContextResult = z.infer<typeof ReplaceContextResultSchema>;
79
+ /**
80
+ * Read a context document (project, architecture, or role)
81
+ */
82
+ export declare function getContext(type: ContextType): Promise<ContextDocument>;
83
+ /**
84
+ * Replace entire context document with new content
85
+ */
86
+ export declare function updateContext(type: ContextType, content: string): Promise<void>;
87
+ /**
88
+ * Append content to the end of a context document
89
+ */
90
+ export declare function appendContext(type: ContextType, content: string): Promise<void>;
91
+ /**
92
+ * Find and replace specific text in a context document
93
+ */
94
+ export declare function replaceContextSection(type: ContextType, oldText: string, newText: string): Promise<ReplaceContextResult>;
95
+ export declare const contextSchemas: {
96
+ ContextTypeSchema: z.ZodEnum<["project", "architecture", "role"]>;
97
+ ContextDocumentSchema: z.ZodObject<{
98
+ content: z.ZodString;
99
+ frontmatter: z.ZodRecord<z.ZodString, z.ZodUnknown>;
100
+ raw: z.ZodString;
101
+ }, "strip", z.ZodTypeAny, {
102
+ content: string;
103
+ frontmatter: Record<string, unknown>;
104
+ raw: string;
105
+ }, {
106
+ content: string;
107
+ frontmatter: Record<string, unknown>;
108
+ raw: string;
109
+ }>;
110
+ GetContextInputSchema: z.ZodObject<{
111
+ type: z.ZodEnum<["project", "architecture", "role"]>;
112
+ }, "strip", z.ZodTypeAny, {
113
+ type: "project" | "architecture" | "role";
114
+ }, {
115
+ type: "project" | "architecture" | "role";
116
+ }>;
117
+ UpdateContextInputSchema: z.ZodObject<{
118
+ type: z.ZodEnum<["project", "architecture", "role"]>;
119
+ content: z.ZodString;
120
+ }, "strip", z.ZodTypeAny, {
121
+ content: string;
122
+ type: "project" | "architecture" | "role";
123
+ }, {
124
+ content: string;
125
+ type: "project" | "architecture" | "role";
126
+ }>;
127
+ AppendContextInputSchema: z.ZodObject<{
128
+ type: z.ZodEnum<["project", "architecture", "role"]>;
129
+ content: z.ZodString;
130
+ }, "strip", z.ZodTypeAny, {
131
+ content: string;
132
+ type: "project" | "architecture" | "role";
133
+ }, {
134
+ content: string;
135
+ type: "project" | "architecture" | "role";
136
+ }>;
137
+ ReplaceContextSectionInputSchema: z.ZodObject<{
138
+ type: z.ZodEnum<["project", "architecture", "role"]>;
139
+ oldText: z.ZodString;
140
+ newText: z.ZodString;
141
+ }, "strip", z.ZodTypeAny, {
142
+ type: "project" | "architecture" | "role";
143
+ oldText: string;
144
+ newText: string;
145
+ }, {
146
+ type: "project" | "architecture" | "role";
147
+ oldText: string;
148
+ newText: string;
149
+ }>;
150
+ ReplaceContextResultSchema: z.ZodObject<{
151
+ success: z.ZodBoolean;
152
+ error: z.ZodOptional<z.ZodString>;
153
+ fallbackMarkdown: z.ZodOptional<z.ZodString>;
154
+ suggestion: z.ZodOptional<z.ZodString>;
155
+ }, "strip", z.ZodTypeAny, {
156
+ success: boolean;
157
+ error?: string | undefined;
158
+ fallbackMarkdown?: string | undefined;
159
+ suggestion?: string | undefined;
160
+ }, {
161
+ success: boolean;
162
+ error?: string | undefined;
163
+ fallbackMarkdown?: string | undefined;
164
+ suggestion?: string | undefined;
165
+ }>;
166
+ };
167
+ export declare const contextJsonSchemas: {
168
+ contextType: Record<string, unknown>;
169
+ get: Record<string, unknown>;
170
+ update: Record<string, unknown>;
171
+ append: Record<string, unknown>;
172
+ replaceSection: Record<string, unknown>;
173
+ };
174
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AA4DvB,eAAO,MAAM,iBAAiB,gDAA8C,CAAA;AAC5E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAIhC,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,eAAO,MAAM,qBAAqB;;;;;;EAEhC,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAEzE,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAEzE,eAAO,MAAM,gCAAgC;;;;;;;;;;;;EAI3C,CAAA;AACF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AAEzF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;EAKrC,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAM7E;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAc5E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASrF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBrF;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,CAAC,CAmC/B;AAMD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQ1B,CAAA;AAWD,eAAO,MAAM,kBAAkB;;;;;;CAM9B,CAAA"}
@@ -0,0 +1,201 @@
1
+ import { z } from 'zod';
2
+ import { zodToJsonSchema } from 'zod-to-json-schema';
3
+ import { promises as fs } from 'fs';
4
+ import path from 'path';
5
+ import matter from 'gray-matter';
6
+ import { getLogger, ContextKinds } from './logging/index.js';
7
+ // ============================================================================
8
+ // Path Resolution (matches proposals.ts pattern)
9
+ // ============================================================================
10
+ function resolveGaitPath() {
11
+ if (process.env.NODE_ENV === 'development' && process.env.GAIT_DEV_ROOT) {
12
+ return process.env.GAIT_DEV_ROOT;
13
+ }
14
+ if (process.env.GAIT_DATA_PATH) {
15
+ return `${process.env.GAIT_DATA_PATH}/.nut`;
16
+ }
17
+ return '.nut';
18
+ }
19
+ function getContextPath() {
20
+ return path.join(resolveGaitPath(), 'context');
21
+ }
22
+ function getContextFilePath(type) {
23
+ return path.join(getContextPath(), `${type}.md`);
24
+ }
25
+ function getContextEventKind(type) {
26
+ switch (type) {
27
+ case 'project': return ContextKinds.PROJECT_UPDATE;
28
+ case 'architecture': return ContextKinds.ARCHITECTURE_UPDATE;
29
+ case 'role': return ContextKinds.ROLE_UPDATE;
30
+ }
31
+ }
32
+ function logContextEvent(type, operation, payload) {
33
+ try {
34
+ const logger = getLogger();
35
+ logger.log({
36
+ kind: getContextEventKind(type),
37
+ actor: 'cli:nut', // CLI operations
38
+ subject: `context:${type}`,
39
+ tags: ['context', type],
40
+ payload: {
41
+ operation,
42
+ ...payload,
43
+ },
44
+ });
45
+ }
46
+ catch (err) {
47
+ // Don't fail the operation if logging fails
48
+ console.error('Failed to log context event:', err);
49
+ }
50
+ }
51
+ // ============================================================================
52
+ // Zod Schemas
53
+ // ============================================================================
54
+ export const ContextTypeSchema = z.enum(['project', 'architecture', 'role']);
55
+ export const ContextDocumentSchema = z.object({
56
+ content: z.string(),
57
+ frontmatter: z.record(z.unknown()),
58
+ raw: z.string(),
59
+ });
60
+ export const GetContextInputSchema = z.object({
61
+ type: ContextTypeSchema,
62
+ });
63
+ export const UpdateContextInputSchema = z.object({
64
+ type: ContextTypeSchema,
65
+ content: z.string().min(1, 'Content is required'),
66
+ });
67
+ export const AppendContextInputSchema = z.object({
68
+ type: ContextTypeSchema,
69
+ content: z.string().min(1, 'Content is required'),
70
+ });
71
+ export const ReplaceContextSectionInputSchema = z.object({
72
+ type: ContextTypeSchema,
73
+ oldText: z.string().min(1, 'Old text is required'),
74
+ newText: z.string(), // Can be empty to delete a section
75
+ });
76
+ export const ReplaceContextResultSchema = z.object({
77
+ success: z.boolean(),
78
+ error: z.string().optional(),
79
+ fallbackMarkdown: z.string().optional(),
80
+ suggestion: z.string().optional(),
81
+ });
82
+ // ============================================================================
83
+ // Core Functions
84
+ // ============================================================================
85
+ /**
86
+ * Read a context document (project, architecture, or role)
87
+ */
88
+ export async function getContext(type) {
89
+ ContextTypeSchema.parse(type);
90
+ const filePath = getContextFilePath(type);
91
+ try {
92
+ const raw = await fs.readFile(filePath, 'utf-8');
93
+ const { data, content } = matter(raw);
94
+ return { content, frontmatter: data, raw };
95
+ }
96
+ catch (err) {
97
+ if (err.code === 'ENOENT') {
98
+ return { content: '', frontmatter: {}, raw: '' };
99
+ }
100
+ throw err;
101
+ }
102
+ }
103
+ /**
104
+ * Replace entire context document with new content
105
+ */
106
+ export async function updateContext(type, content) {
107
+ UpdateContextInputSchema.parse({ type, content });
108
+ const contextPath = getContextPath();
109
+ await fs.mkdir(contextPath, { recursive: true });
110
+ await fs.writeFile(getContextFilePath(type), content, 'utf-8');
111
+ logContextEvent(type, 'update', {
112
+ contentLength: content.length,
113
+ });
114
+ }
115
+ /**
116
+ * Append content to the end of a context document
117
+ */
118
+ export async function appendContext(type, content) {
119
+ AppendContextInputSchema.parse({ type, content });
120
+ const filePath = getContextFilePath(type);
121
+ const contextPath = getContextPath();
122
+ await fs.mkdir(contextPath, { recursive: true });
123
+ let existing = '';
124
+ try {
125
+ existing = await fs.readFile(filePath, 'utf-8');
126
+ }
127
+ catch (err) {
128
+ if (err.code !== 'ENOENT')
129
+ throw err;
130
+ }
131
+ const newContent = existing
132
+ ? existing.trimEnd() + '\n\n' + content
133
+ : content;
134
+ await fs.writeFile(filePath, newContent, 'utf-8');
135
+ logContextEvent(type, 'append', {
136
+ appendedLength: content.length,
137
+ totalLength: newContent.length,
138
+ });
139
+ }
140
+ /**
141
+ * Find and replace specific text in a context document
142
+ */
143
+ export async function replaceContextSection(type, oldText, newText) {
144
+ ReplaceContextSectionInputSchema.parse({ type, oldText, newText });
145
+ const filePath = getContextFilePath(type);
146
+ let existing;
147
+ try {
148
+ existing = await fs.readFile(filePath, 'utf-8');
149
+ }
150
+ catch (err) {
151
+ if (err.code === 'ENOENT') {
152
+ return {
153
+ success: false,
154
+ error: `Context document does not exist. Use updateContext to create it first.`,
155
+ };
156
+ }
157
+ throw err;
158
+ }
159
+ if (!existing.includes(oldText)) {
160
+ return {
161
+ success: false,
162
+ error: 'Could not find the specified text in the document. The text may have been paraphrased or changed.',
163
+ fallbackMarkdown: newText,
164
+ suggestion: 'Here is the replacement text. You can copy it and manually edit the document.',
165
+ };
166
+ }
167
+ const updated = existing.replace(oldText, newText);
168
+ await fs.writeFile(filePath, updated, 'utf-8');
169
+ logContextEvent(type, 'replace_section', {
170
+ oldTextLength: oldText.length,
171
+ newTextLength: newText.length,
172
+ });
173
+ return { success: true };
174
+ }
175
+ // ============================================================================
176
+ // Export all schemas for MCP tool generation
177
+ // ============================================================================
178
+ export const contextSchemas = {
179
+ ContextTypeSchema,
180
+ ContextDocumentSchema,
181
+ GetContextInputSchema,
182
+ UpdateContextInputSchema,
183
+ AppendContextInputSchema,
184
+ ReplaceContextSectionInputSchema,
185
+ ReplaceContextResultSchema,
186
+ };
187
+ // ============================================================================
188
+ // Pre-computed JSON Schemas for MCP tool parameters
189
+ // ============================================================================
190
+ function extractJsonSchemaProperties(schema) {
191
+ const jsonSchema = zodToJsonSchema(schema, { $refStrategy: 'none' });
192
+ return (jsonSchema.properties || {});
193
+ }
194
+ export const contextJsonSchemas = {
195
+ contextType: extractJsonSchemaProperties(ContextTypeSchema),
196
+ get: extractJsonSchemaProperties(GetContextInputSchema),
197
+ update: extractJsonSchemaProperties(UpdateContextInputSchema),
198
+ append: extractJsonSchemaProperties(AppendContextInputSchema),
199
+ replaceSection: extractJsonSchemaProperties(ReplaceContextSectionInputSchema),
200
+ };
201
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import { z } from 'zod';
2
+ export declare const ActivityEventSchema: z.ZodObject<{
3
+ seq: z.ZodNumber;
4
+ kind: z.ZodString;
5
+ actor: z.ZodString;
6
+ subject: z.ZodString;
7
+ timestamp: z.ZodString;
8
+ level: z.ZodOptional<z.ZodString>;
9
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
10
+ summary: z.ZodOptional<z.ZodString>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ seq: number;
13
+ kind: string;
14
+ actor: string;
15
+ subject: string;
16
+ timestamp: string;
17
+ level?: string | undefined;
18
+ tags?: string[] | undefined;
19
+ summary?: string | undefined;
20
+ }, {
21
+ seq: number;
22
+ kind: string;
23
+ actor: string;
24
+ subject: string;
25
+ timestamp: string;
26
+ level?: string | undefined;
27
+ tags?: string[] | undefined;
28
+ summary?: string | undefined;
29
+ }>;
30
+ export type ActivityEvent = z.infer<typeof ActivityEventSchema>;
31
+ export declare const ListEventsOptionsSchema: z.ZodObject<{
32
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
33
+ kind: z.ZodOptional<z.ZodString>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ limit: number;
36
+ kind?: string | undefined;
37
+ }, {
38
+ kind?: string | undefined;
39
+ limit?: number | undefined;
40
+ }>;
41
+ export type ListEventsOptions = z.infer<typeof ListEventsOptionsSchema>;
42
+ /**
43
+ * List recent activity events from the event log
44
+ */
45
+ export declare function listEvents(options?: ListEventsOptions): Promise<ActivityEvent[]>;
46
+ export declare const eventsSchemas: {
47
+ ActivityEventSchema: z.ZodObject<{
48
+ seq: z.ZodNumber;
49
+ kind: z.ZodString;
50
+ actor: z.ZodString;
51
+ subject: z.ZodString;
52
+ timestamp: z.ZodString;
53
+ level: z.ZodOptional<z.ZodString>;
54
+ tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
55
+ summary: z.ZodOptional<z.ZodString>;
56
+ }, "strip", z.ZodTypeAny, {
57
+ seq: number;
58
+ kind: string;
59
+ actor: string;
60
+ subject: string;
61
+ timestamp: string;
62
+ level?: string | undefined;
63
+ tags?: string[] | undefined;
64
+ summary?: string | undefined;
65
+ }, {
66
+ seq: number;
67
+ kind: string;
68
+ actor: string;
69
+ subject: string;
70
+ timestamp: string;
71
+ level?: string | undefined;
72
+ tags?: string[] | undefined;
73
+ summary?: string | undefined;
74
+ }>;
75
+ ListEventsOptionsSchema: z.ZodObject<{
76
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
77
+ kind: z.ZodOptional<z.ZodString>;
78
+ }, "strip", z.ZodTypeAny, {
79
+ limit: number;
80
+ kind?: string | undefined;
81
+ }, {
82
+ kind?: string | undefined;
83
+ limit?: number | undefined;
84
+ }>;
85
+ };
86
+ export declare const eventsJsonSchemas: {
87
+ list: Record<string, unknown>;
88
+ };
89
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAYvB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAMvE;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CA2DtF;AAMD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGzB,CAAA;AAWD,eAAO,MAAM,iBAAiB;;CAE7B,CAAA"}
package/dist/events.js ADDED
@@ -0,0 +1,102 @@
1
+ import { z } from 'zod';
2
+ import { zodToJsonSchema } from 'zod-to-json-schema';
3
+ import { createReadStream } from 'fs';
4
+ import { promises as fs } from 'fs';
5
+ import path from 'path';
6
+ import readline from 'readline';
7
+ import { getLogsDir } from './app-paths.js';
8
+ // ============================================================================
9
+ // Zod Schemas
10
+ // ============================================================================
11
+ export const ActivityEventSchema = z.object({
12
+ seq: z.number(),
13
+ kind: z.string(),
14
+ actor: z.string(),
15
+ subject: z.string(),
16
+ timestamp: z.string(),
17
+ level: z.string().optional(),
18
+ tags: z.array(z.string()).optional(),
19
+ summary: z.string().optional(),
20
+ });
21
+ export const ListEventsOptionsSchema = z.object({
22
+ limit: z.number().min(1).max(100).optional().default(20),
23
+ kind: z.string().optional(),
24
+ });
25
+ // ============================================================================
26
+ // Core Functions
27
+ // ============================================================================
28
+ /**
29
+ * List recent activity events from the event log
30
+ */
31
+ export async function listEvents(options) {
32
+ const opts = ListEventsOptionsSchema.parse(options || {});
33
+ const { limit = 20, kind } = opts;
34
+ const eventsDir = getLogsDir();
35
+ const currentFile = path.join(eventsDir, 'events-current.jsonl');
36
+ // Check if file exists
37
+ try {
38
+ await fs.access(currentFile);
39
+ }
40
+ catch {
41
+ return [];
42
+ }
43
+ // Read all events from file
44
+ const allEvents = [];
45
+ const fileStream = createReadStream(currentFile);
46
+ const rl = readline.createInterface({
47
+ input: fileStream,
48
+ crlfDelay: Infinity,
49
+ });
50
+ for await (const line of rl) {
51
+ if (!line.trim())
52
+ continue;
53
+ try {
54
+ const event = JSON.parse(line);
55
+ // Apply kind filter if specified
56
+ if (kind && typeof kind === 'string') {
57
+ if (!event.kind || !event.kind.startsWith(kind)) {
58
+ continue;
59
+ }
60
+ }
61
+ allEvents.push(event);
62
+ }
63
+ catch {
64
+ // Skip malformed lines
65
+ continue;
66
+ }
67
+ }
68
+ // Sort by seq descending (most recent first) and limit
69
+ const cappedLimit = Math.min(Math.max(1, limit), 100);
70
+ const sortedEvents = allEvents
71
+ .sort((a, b) => (b.seq || 0) - (a.seq || 0))
72
+ .slice(0, cappedLimit);
73
+ // Format events for output
74
+ return sortedEvents.map(event => ({
75
+ seq: event.seq,
76
+ kind: event.kind,
77
+ actor: event.actor,
78
+ subject: event.subject,
79
+ timestamp: event.ts,
80
+ level: event.level,
81
+ tags: event.tags,
82
+ summary: event.payload?.summary || event.payload?.message || event.payload?.title || undefined
83
+ }));
84
+ }
85
+ // ============================================================================
86
+ // Export all schemas for MCP tool generation
87
+ // ============================================================================
88
+ export const eventsSchemas = {
89
+ ActivityEventSchema,
90
+ ListEventsOptionsSchema,
91
+ };
92
+ // ============================================================================
93
+ // Pre-computed JSON Schemas for MCP tool parameters
94
+ // ============================================================================
95
+ function extractJsonSchemaProperties(schema) {
96
+ const jsonSchema = zodToJsonSchema(schema, { $refStrategy: 'none' });
97
+ return (jsonSchema.properties || {});
98
+ }
99
+ export const eventsJsonSchemas = {
100
+ list: extractJsonSchemaProperties(ListEventsOptionsSchema),
101
+ };
102
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,10 @@
1
- export * from './change-proposal.js';
2
1
  export * from './storage.js';
3
2
  export * from './markdown-storage.js';
4
3
  export * from './logging/index.js';
5
4
  export * from './app-paths.js';
5
+ export * from './proposals.js';
6
+ export * from './context.js';
7
+ export * from './knowledge.js';
8
+ export * from './events.js';
6
9
  export type * from '@lovelybunch/types';
7
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,mBAAmB,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,mBAAmB,oBAAoB,CAAC"}