@sudocode-ai/types 0.1.3 → 0.1.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.
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Claude to AG-UI Transformation Logic
3
+ *
4
+ * Shared transformation functions for converting raw Claude stream-json messages
5
+ * to AG-UI events. Used by both:
6
+ * - Backend: Real-time transformation for SSE streaming
7
+ * - Frontend: Historical transformation for log replay
8
+ *
9
+ * @module claude-to-ag-ui
10
+ */
11
+ /**
12
+ * Claude stream-json message format
13
+ * Based on Claude Code CLI output structure
14
+ */
15
+ export interface ClaudeStreamMessage {
16
+ type: "assistant" | "tool_result" | "result" | "error";
17
+ message?: {
18
+ id?: string;
19
+ model?: string;
20
+ role?: string;
21
+ content?: Array<{
22
+ type: "text" | "tool_use";
23
+ text?: string;
24
+ id?: string;
25
+ name?: string;
26
+ input?: any;
27
+ }>;
28
+ stop_reason?: string;
29
+ stop_sequence?: string | null;
30
+ };
31
+ result?: {
32
+ tool_use_id?: string;
33
+ content?: Array<{
34
+ type: string;
35
+ text?: string;
36
+ }>;
37
+ };
38
+ usage?: {
39
+ input_tokens?: number;
40
+ output_tokens?: number;
41
+ cache_read_input_tokens?: number;
42
+ cache_creation_input_tokens?: number;
43
+ };
44
+ error?: {
45
+ message: string;
46
+ type?: string;
47
+ };
48
+ }
49
+ /**
50
+ * AG-UI Event types
51
+ * Minimal interface needed for transformation
52
+ */
53
+ export interface AgUiEvent {
54
+ type: string;
55
+ timestamp: number;
56
+ [key: string]: any;
57
+ }
58
+ /**
59
+ * Transform a single Claude stream-json message to AG-UI events
60
+ *
61
+ * @param message - Raw Claude message from stream-json output
62
+ * @param startSequence - Starting sequence number for events
63
+ * @returns Array of AG-UI events (may be empty for unhandled message types)
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * const message = JSON.parse(line);
68
+ * const events = transformClaudeMessageToAgUi(message, 0);
69
+ * events.forEach(event => console.log(event));
70
+ * ```
71
+ */
72
+ export declare function transformClaudeMessageToAgUi(message: ClaudeStreamMessage, startSequence: number): AgUiEvent[];
73
+ /**
74
+ * Parse array of raw execution logs (NDJSON format) to AG-UI events
75
+ *
76
+ * Processes each line as a separate Claude message and transforms to AG-UI events.
77
+ * Handles parse errors gracefully by logging warnings and continuing.
78
+ *
79
+ * @param rawLogs - Array of NDJSON log lines
80
+ * @returns Promise resolving to array of AG-UI events
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const logs = await fetch('/api/executions/123/logs').then(r => r.json());
85
+ * const events = await parseExecutionLogs(logs.logs);
86
+ * console.log(`Parsed ${events.length} events`);
87
+ * ```
88
+ */
89
+ export declare function parseExecutionLogs(rawLogs: string[]): Promise<AgUiEvent[]>;
90
+ //# sourceMappingURL=claude-to-ag-ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-to-ag-ui.d.ts","sourceRoot":"","sources":["../src/claude-to-ag-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;IACvD,OAAO,CAAC,EAAE;QACR,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,KAAK,CAAC;YACd,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;YAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,EAAE,CAAC,EAAE,MAAM,CAAC;YACZ,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,KAAK,CAAC,EAAE,GAAG,CAAC;SACb,CAAC,CAAC;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,CAAC;IACF,MAAM,CAAC,EAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClD,CAAC;IACF,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,2BAA2B,CAAC,EAAE,MAAM,CAAC;KACtC,CAAC;IACF,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,mBAAmB,EAC5B,aAAa,EAAE,MAAM,GACpB,SAAS,EAAE,CAoGb;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,SAAS,EAAE,CAAC,CAiCtB"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Claude to AG-UI Transformation Logic
3
+ *
4
+ * Shared transformation functions for converting raw Claude stream-json messages
5
+ * to AG-UI events. Used by both:
6
+ * - Backend: Real-time transformation for SSE streaming
7
+ * - Frontend: Historical transformation for log replay
8
+ *
9
+ * @module claude-to-ag-ui
10
+ */
11
+ /**
12
+ * Transform a single Claude stream-json message to AG-UI events
13
+ *
14
+ * @param message - Raw Claude message from stream-json output
15
+ * @param startSequence - Starting sequence number for events
16
+ * @returns Array of AG-UI events (may be empty for unhandled message types)
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const message = JSON.parse(line);
21
+ * const events = transformClaudeMessageToAgUi(message, 0);
22
+ * events.forEach(event => console.log(event));
23
+ * ```
24
+ */
25
+ export function transformClaudeMessageToAgUi(message, startSequence) {
26
+ const events = [];
27
+ const timestamp = Date.now();
28
+ switch (message.type) {
29
+ case "assistant": {
30
+ // Extract content blocks from assistant message
31
+ const content = message.message?.content || [];
32
+ for (const block of content) {
33
+ if (block.type === "text" && block.text) {
34
+ // Text message → TEXT_MESSAGE_CONTENT event
35
+ events.push({
36
+ type: "CUSTOM",
37
+ timestamp,
38
+ name: "TEXT_MESSAGE_CONTENT",
39
+ value: {
40
+ content: block.text,
41
+ },
42
+ });
43
+ }
44
+ else if (block.type === "tool_use") {
45
+ // Tool use → TOOL_CALL_START + TOOL_CALL_ARGS events
46
+ const toolId = block.id || `tool-${Date.now()}`;
47
+ events.push({
48
+ type: "TOOL_CALL_START",
49
+ timestamp,
50
+ toolCallId: toolId,
51
+ toolCallName: block.name || "unknown",
52
+ }, {
53
+ type: "TOOL_CALL_ARGS",
54
+ timestamp,
55
+ toolCallId: toolId,
56
+ delta: JSON.stringify(block.input || {}),
57
+ });
58
+ }
59
+ }
60
+ break;
61
+ }
62
+ case "tool_result": {
63
+ // Tool result → TOOL_CALL_END + TOOL_CALL_RESULT events
64
+ const toolUseId = message.result?.tool_use_id || "unknown";
65
+ const resultContent = message.result?.content || [];
66
+ const resultText = resultContent.find((c) => c.type === "text")?.text || "";
67
+ events.push({
68
+ type: "TOOL_CALL_END",
69
+ timestamp,
70
+ toolCallId: toolUseId,
71
+ }, {
72
+ type: "TOOL_CALL_RESULT",
73
+ timestamp,
74
+ messageId: `msg-${toolUseId}`,
75
+ toolCallId: toolUseId,
76
+ content: resultText,
77
+ });
78
+ break;
79
+ }
80
+ case "result": {
81
+ // Result message with usage → USAGE_UPDATE event
82
+ if (message.usage) {
83
+ const usage = message.usage;
84
+ events.push({
85
+ type: "CUSTOM",
86
+ timestamp,
87
+ name: "USAGE_UPDATE",
88
+ value: {
89
+ inputTokens: usage.input_tokens || 0,
90
+ outputTokens: usage.output_tokens || 0,
91
+ cacheTokens: usage.cache_read_input_tokens || 0,
92
+ totalTokens: (usage.input_tokens || 0) + (usage.output_tokens || 0),
93
+ },
94
+ });
95
+ }
96
+ break;
97
+ }
98
+ case "error": {
99
+ // Error message → RUN_ERROR event
100
+ events.push({
101
+ type: "RUN_ERROR",
102
+ timestamp,
103
+ message: message.error?.message || "Unknown error",
104
+ errorType: message.error?.type,
105
+ });
106
+ break;
107
+ }
108
+ }
109
+ return events;
110
+ }
111
+ /**
112
+ * Parse array of raw execution logs (NDJSON format) to AG-UI events
113
+ *
114
+ * Processes each line as a separate Claude message and transforms to AG-UI events.
115
+ * Handles parse errors gracefully by logging warnings and continuing.
116
+ *
117
+ * @param rawLogs - Array of NDJSON log lines
118
+ * @returns Promise resolving to array of AG-UI events
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * const logs = await fetch('/api/executions/123/logs').then(r => r.json());
123
+ * const events = await parseExecutionLogs(logs.logs);
124
+ * console.log(`Parsed ${events.length} events`);
125
+ * ```
126
+ */
127
+ export async function parseExecutionLogs(rawLogs) {
128
+ const events = [];
129
+ let sequence = 0;
130
+ for (let i = 0; i < rawLogs.length; i++) {
131
+ const line = rawLogs[i].trim();
132
+ // Skip empty lines
133
+ if (!line) {
134
+ continue;
135
+ }
136
+ try {
137
+ // Parse JSON line
138
+ const message = JSON.parse(line);
139
+ // Transform to AG-UI events
140
+ const agUiEvents = transformClaudeMessageToAgUi(message, sequence);
141
+ // Accumulate events
142
+ events.push(...agUiEvents);
143
+ sequence += agUiEvents.length;
144
+ }
145
+ catch (error) {
146
+ // Log warning but continue processing
147
+ console.warn(`[parseExecutionLogs] Failed to parse log line ${i + 1}:`, error instanceof Error ? error.message : String(error));
148
+ // Don't throw - continue with remaining logs
149
+ }
150
+ }
151
+ return events;
152
+ }
153
+ //# sourceMappingURL=claude-to-ag-ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-to-ag-ui.js","sourceRoot":"","sources":["../src/claude-to-ag-ui.ts"],"names":[],"mappings":"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"}
package/dist/schema.d.ts CHANGED
@@ -18,7 +18,7 @@ export declare const EVENTS_TABLE = "\nCREATE TABLE IF NOT EXISTS events (\n
18
18
  export declare const ISSUE_FEEDBACK_TABLE = "\nCREATE TABLE IF NOT EXISTS issue_feedback (\n id TEXT PRIMARY KEY,\n issue_id TEXT NOT NULL,\n issue_uuid TEXT NOT NULL,\n spec_id TEXT NOT NULL,\n spec_uuid TEXT NOT NULL,\n feedback_type TEXT NOT NULL CHECK(feedback_type IN ('comment', 'suggestion', 'request')),\n content TEXT NOT NULL,\n agent TEXT,\n anchor TEXT,\n dismissed INTEGER NOT NULL DEFAULT 0 CHECK(dismissed IN (0, 1)),\n created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n FOREIGN KEY (issue_id) REFERENCES issues(id) ON DELETE CASCADE,\n FOREIGN KEY (issue_uuid) REFERENCES issues(uuid) ON DELETE CASCADE,\n FOREIGN KEY (spec_id) REFERENCES specs(id) ON DELETE CASCADE,\n FOREIGN KEY (spec_uuid) REFERENCES specs(uuid) ON DELETE CASCADE\n);\n";
19
19
  export declare const EXECUTIONS_TABLE = "\nCREATE TABLE IF NOT EXISTS executions (\n id TEXT PRIMARY KEY,\n issue_id TEXT,\n issue_uuid TEXT,\n\n -- Execution mode and configuration\n mode TEXT CHECK(mode IN ('worktree', 'local')),\n prompt TEXT,\n config TEXT,\n\n -- Process information (legacy + new)\n agent_type TEXT CHECK(agent_type IN ('claude-code', 'codex')),\n session_id TEXT,\n workflow_execution_id TEXT,\n\n -- Git/branch information\n target_branch TEXT NOT NULL,\n branch_name TEXT NOT NULL,\n before_commit TEXT,\n after_commit TEXT,\n worktree_path TEXT,\n\n -- Status (unified - supports both old and new statuses)\n status TEXT NOT NULL CHECK(status IN (\n 'preparing', 'pending', 'running', 'paused',\n 'completed', 'failed', 'cancelled', 'stopped'\n )),\n\n -- Timing (consistent with other tables)\n created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n started_at DATETIME,\n completed_at DATETIME,\n cancelled_at DATETIME,\n\n -- Results and metadata\n exit_code INTEGER,\n error_message TEXT,\n error TEXT,\n model TEXT,\n summary TEXT,\n files_changed TEXT,\n\n -- Relationships\n parent_execution_id TEXT,\n\n -- Multi-step workflow support (future extension)\n step_type TEXT,\n step_index INTEGER,\n step_config TEXT,\n\n FOREIGN KEY (issue_id) REFERENCES issues(id) ON DELETE SET NULL,\n FOREIGN KEY (issue_uuid) REFERENCES issues(uuid) ON DELETE SET NULL,\n FOREIGN KEY (parent_execution_id) REFERENCES executions(id) ON DELETE SET NULL\n);\n";
20
20
  export declare const PROMPT_TEMPLATES_TABLE = "\nCREATE TABLE IF NOT EXISTS prompt_templates (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n description TEXT,\n type TEXT NOT NULL CHECK(type IN ('issue', 'spec', 'custom')),\n template TEXT NOT NULL,\n variables TEXT NOT NULL,\n is_default INTEGER NOT NULL DEFAULT 0 CHECK(is_default IN (0, 1)),\n created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP\n);\n";
21
- export declare const EXECUTION_LOGS_TABLE = "\nCREATE TABLE IF NOT EXISTS execution_logs (\n execution_id TEXT PRIMARY KEY,\n logs TEXT NOT NULL DEFAULT '',\n byte_size INTEGER NOT NULL DEFAULT 0,\n created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n FOREIGN KEY (execution_id) REFERENCES executions(id) ON DELETE CASCADE\n);\n";
21
+ export declare const EXECUTION_LOGS_TABLE = "\nCREATE TABLE IF NOT EXISTS execution_logs (\n execution_id TEXT PRIMARY KEY,\n raw_logs TEXT NOT NULL DEFAULT '',\n byte_size INTEGER NOT NULL DEFAULT 0,\n line_count INTEGER NOT NULL DEFAULT 0,\n created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\n FOREIGN KEY (execution_id) REFERENCES executions(id) ON DELETE CASCADE\n);\n";
22
22
  /**
23
23
  * Index definitions
24
24
  */
@@ -30,7 +30,7 @@ export declare const EVENTS_INDEXES = "\nCREATE INDEX IF NOT EXISTS idx_events_e
30
30
  export declare const ISSUE_FEEDBACK_INDEXES = "\nCREATE INDEX IF NOT EXISTS idx_feedback_issue_id ON issue_feedback(issue_id);\nCREATE INDEX IF NOT EXISTS idx_feedback_issue_uuid ON issue_feedback(issue_uuid);\nCREATE INDEX IF NOT EXISTS idx_feedback_spec_id ON issue_feedback(spec_id);\nCREATE INDEX IF NOT EXISTS idx_feedback_spec_uuid ON issue_feedback(spec_uuid);\nCREATE INDEX IF NOT EXISTS idx_feedback_dismissed ON issue_feedback(dismissed);\nCREATE INDEX IF NOT EXISTS idx_feedback_type ON issue_feedback(feedback_type);\nCREATE INDEX IF NOT EXISTS idx_feedback_created_at ON issue_feedback(created_at);\n";
31
31
  export declare const EXECUTIONS_INDEXES = "\nCREATE INDEX IF NOT EXISTS idx_executions_issue_id ON executions(issue_id);\nCREATE INDEX IF NOT EXISTS idx_executions_issue_uuid ON executions(issue_uuid);\nCREATE INDEX IF NOT EXISTS idx_executions_status ON executions(status);\nCREATE INDEX IF NOT EXISTS idx_executions_session_id ON executions(session_id);\nCREATE INDEX IF NOT EXISTS idx_executions_parent ON executions(parent_execution_id);\nCREATE INDEX IF NOT EXISTS idx_executions_created_at ON executions(created_at);\nCREATE INDEX IF NOT EXISTS idx_executions_workflow ON executions(workflow_execution_id);\nCREATE INDEX IF NOT EXISTS idx_executions_workflow_step ON executions(workflow_execution_id, step_index);\nCREATE INDEX IF NOT EXISTS idx_executions_step_type ON executions(step_type);\n";
32
32
  export declare const PROMPT_TEMPLATES_INDEXES = "\nCREATE INDEX IF NOT EXISTS idx_templates_type ON prompt_templates(type);\nCREATE INDEX IF NOT EXISTS idx_templates_default ON prompt_templates(is_default);\n";
33
- export declare const EXECUTION_LOGS_INDEXES = "\nCREATE INDEX IF NOT EXISTS idx_execution_logs_updated_at ON execution_logs(updated_at);\nCREATE INDEX IF NOT EXISTS idx_execution_logs_byte_size ON execution_logs(byte_size);\n";
33
+ export declare const EXECUTION_LOGS_INDEXES = "\nCREATE INDEX IF NOT EXISTS idx_execution_logs_updated_at ON execution_logs(updated_at);\nCREATE INDEX IF NOT EXISTS idx_execution_logs_byte_size ON execution_logs(byte_size);\nCREATE INDEX IF NOT EXISTS idx_execution_logs_line_count ON execution_logs(line_count);\n";
34
34
  /**
35
35
  * View definitions
36
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,SAAS,uSAarB,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,WAAW,ysBAiBvB,CAAC;AAEF,eAAO,MAAM,YAAY,qwBAmBxB,CAAC;AAEF,eAAO,MAAM,mBAAmB,iaAa/B,CAAC;AAEF,eAAO,MAAM,UAAU,mNAQtB,CAAC;AAEF,eAAO,MAAM,YAAY,uZAexB,CAAC;AAEF,eAAO,MAAM,oBAAoB,6zBAmBhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,wmDAwD5B,CAAC;AAGF,eAAO,MAAM,sBAAsB,ocAYlC,CAAC;AAIF,eAAO,MAAM,oBAAoB,iXAShC,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,aAAa,oeAQzB,CAAC;AAEF,eAAO,MAAM,cAAc,+rBAW1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,seAOjC,CAAC;AAEF,eAAO,MAAM,YAAY,kOAIxB,CAAC;AAEF,eAAO,MAAM,cAAc,2cAO1B,CAAC;AAEF,eAAO,MAAM,sBAAsB,2jBAQlC,CAAC;AAEF,eAAO,MAAM,kBAAkB,0vBAU9B,CAAC;AAEF,eAAO,MAAM,wBAAwB,oKAGpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,uLAGlC,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,iBAAiB,yaAc7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,kfAc/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,UAUtB,CAAC;AAEF,eAAO,MAAM,WAAW,UAUvB,CAAC;AAEF,eAAO,MAAM,SAAS,UAA2C,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,SAAS,uSAarB,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,WAAW,ysBAiBvB,CAAC;AAEF,eAAO,MAAM,YAAY,qwBAmBxB,CAAC;AAEF,eAAO,MAAM,mBAAmB,iaAa/B,CAAC;AAEF,eAAO,MAAM,UAAU,mNAQtB,CAAC;AAEF,eAAO,MAAM,YAAY,uZAexB,CAAC;AAEF,eAAO,MAAM,oBAAoB,6zBAmBhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,wmDAwD5B,CAAC;AAGF,eAAO,MAAM,sBAAsB,ocAYlC,CAAC;AAIF,eAAO,MAAM,oBAAoB,iaAUhC,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,aAAa,oeAQzB,CAAC;AAEF,eAAO,MAAM,cAAc,+rBAW1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,seAOjC,CAAC;AAEF,eAAO,MAAM,YAAY,kOAIxB,CAAC;AAEF,eAAO,MAAM,cAAc,2cAO1B,CAAC;AAEF,eAAO,MAAM,sBAAsB,2jBAQlC,CAAC;AAEF,eAAO,MAAM,kBAAkB,0vBAU9B,CAAC;AAEF,eAAO,MAAM,wBAAwB,oKAGpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,gRAIlC,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,iBAAiB,yaAc7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,kfAc/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,UAUtB,CAAC;AAEF,eAAO,MAAM,WAAW,UAUvB,CAAC;AAEF,eAAO,MAAM,SAAS,UAA2C,CAAC"}
package/dist/schema.js CHANGED
@@ -196,8 +196,9 @@ CREATE TABLE IF NOT EXISTS prompt_templates (
196
196
  export const EXECUTION_LOGS_TABLE = `
197
197
  CREATE TABLE IF NOT EXISTS execution_logs (
198
198
  execution_id TEXT PRIMARY KEY,
199
- logs TEXT NOT NULL DEFAULT '',
199
+ raw_logs TEXT NOT NULL DEFAULT '',
200
200
  byte_size INTEGER NOT NULL DEFAULT 0,
201
+ line_count INTEGER NOT NULL DEFAULT 0,
201
202
  created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
202
203
  updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
203
204
  FOREIGN KEY (execution_id) REFERENCES executions(id) ON DELETE CASCADE
@@ -275,6 +276,7 @@ CREATE INDEX IF NOT EXISTS idx_templates_default ON prompt_templates(is_default)
275
276
  export const EXECUTION_LOGS_INDEXES = `
276
277
  CREATE INDEX IF NOT EXISTS idx_execution_logs_updated_at ON execution_logs(updated_at);
277
278
  CREATE INDEX IF NOT EXISTS idx_execution_logs_byte_size ON execution_logs(byte_size);
279
+ CREATE INDEX IF NOT EXISTS idx_execution_logs_line_count ON execution_logs(line_count);
278
280
  `;
279
281
  /**
280
282
  * View definitions
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;CAaxB,CAAC;AAEF;;GAEG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;CAiB1B,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;CAmB3B,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;CAalC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;CAQzB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;CAe3B,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;CAmBnC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwD/B,CAAC;AAEF,yBAAyB;AACzB,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;CAYrC,CAAC;AAEF,0DAA0D;AAC1D,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;CASnC,CAAC;AAEF;;GAEG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;CAQ5B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;CAW7B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;CAOpC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;;;;CAI3B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;CAO7B,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;CAQrC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;CAUjC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;CAGvC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;CAGrC,CAAC;AAEF;;GAEG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;CAchC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;CAclC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW;IACX,YAAY;IACZ,mBAAmB;IACnB,UAAU;IACV,YAAY;IACZ,oBAAoB;IACpB,gBAAgB;IAChB,sBAAsB;IACtB,oBAAoB;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,aAAa;IACb,cAAc;IACd,qBAAqB;IACrB,YAAY;IACZ,cAAc;IACd,sBAAsB;IACtB,kBAAkB;IAClB,wBAAwB;IACxB,sBAAsB;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;CAaxB,CAAC;AAEF;;GAEG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;CAiB1B,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;CAmB3B,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;CAalC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;CAQzB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;CAe3B,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;CAmBnC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwD/B,CAAC;AAEF,yBAAyB;AACzB,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;CAYrC,CAAC;AAEF,0DAA0D;AAC1D,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;CAUnC,CAAC;AAEF;;GAEG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;CAQ5B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;CAW7B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;CAOpC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;;;;CAI3B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;CAO7B,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;CAQrC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;CAUjC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;CAGvC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;CAIrC,CAAC;AAEF;;GAEG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;CAchC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;CAclC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW;IACX,YAAY;IACZ,mBAAmB;IACnB,UAAU;IACV,YAAY;IACZ,oBAAoB;IACpB,gBAAgB;IAChB,sBAAsB;IACtB,oBAAoB;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,aAAa;IACb,cAAc;IACd,qBAAqB;IACrB,YAAY;IACZ,cAAc;IACd,sBAAsB;IACtB,kBAAkB;IAClB,wBAAwB;IACxB,sBAAsB;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudocode-ai/types",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "TypeScript type definitions for sudocode",
5
5
  "types": "src/index.d.ts",
6
6
  "type": "module",
package/src/index.d.ts CHANGED
@@ -198,11 +198,8 @@ export interface WorktreeConfig {
198
198
  * Config metadata file structure (.sudocode/config.json)
199
199
  */
200
200
  export interface Config {
201
+ // TODO: Deprecate version field.
201
202
  version: string;
202
- id_prefix: {
203
- spec: string;
204
- issue: string;
205
- };
206
203
  /** Worktree configuration (optional) */
207
204
  worktree?: WorktreeConfig;
208
205
  }