@lovelybunch/core 1.0.73 → 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.
@@ -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"}
package/dist/index.js CHANGED
@@ -1,6 +1,9 @@
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
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","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"}
1
+ {"version":3,"file":"index.js","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"}