@locusai/sdk 0.7.3 → 0.7.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.
- package/dist/agent/document-fetcher.d.ts +23 -0
- package/dist/agent/document-fetcher.d.ts.map +1 -0
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/worker.d.ts +1 -1
- package/dist/agent/worker.d.ts.map +1 -1
- package/dist/agent/worker.js +424 -124
- package/dist/ai/claude-runner.d.ts +17 -0
- package/dist/ai/claude-runner.d.ts.map +1 -1
- package/dist/ai/codex-runner.d.ts +2 -0
- package/dist/ai/codex-runner.d.ts.map +1 -1
- package/dist/ai/runner.d.ts +7 -0
- package/dist/ai/runner.d.ts.map +1 -1
- package/dist/core/config.d.ts +10 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/exec/context-tracker.d.ts +183 -0
- package/dist/exec/context-tracker.d.ts.map +1 -0
- package/dist/exec/event-emitter.d.ts +117 -0
- package/dist/exec/event-emitter.d.ts.map +1 -0
- package/dist/exec/events.d.ts +171 -0
- package/dist/exec/events.d.ts.map +1 -0
- package/dist/exec/exec-session.d.ts +164 -0
- package/dist/exec/exec-session.d.ts.map +1 -0
- package/dist/exec/history-manager.d.ts +153 -0
- package/dist/exec/history-manager.d.ts.map +1 -0
- package/dist/exec/index.d.ts +7 -0
- package/dist/exec/index.d.ts.map +1 -0
- package/dist/exec/types.d.ts +130 -0
- package/dist/exec/types.d.ts.map +1 -0
- package/dist/index-node.d.ts +1 -0
- package/dist/index-node.d.ts.map +1 -1
- package/dist/index-node.js +1274 -139
- package/package.json +2 -2
- package/dist/agent/artifact-syncer.d.ts +0 -18
- package/dist/agent/artifact-syncer.d.ts.map +0 -1
|
@@ -1,11 +1,28 @@
|
|
|
1
|
+
import type { ExecEventEmitter } from "../exec/event-emitter.js";
|
|
2
|
+
import type { StreamChunk } from "../exec/types.js";
|
|
1
3
|
import { LogFn } from "./factory.js";
|
|
2
4
|
import type { AiRunner } from "./runner.js";
|
|
3
5
|
export declare class ClaudeRunner implements AiRunner {
|
|
4
6
|
private model;
|
|
5
7
|
private log?;
|
|
6
8
|
private projectPath;
|
|
9
|
+
private eventEmitter?;
|
|
10
|
+
private currentToolName?;
|
|
11
|
+
private activeTools;
|
|
7
12
|
constructor(projectPath: string, model?: string, log?: LogFn | undefined);
|
|
13
|
+
/**
|
|
14
|
+
* Set an event emitter to receive execution events.
|
|
15
|
+
*/
|
|
16
|
+
setEventEmitter(emitter: ExecEventEmitter): void;
|
|
8
17
|
run(prompt: string, _isPlanning?: boolean): Promise<string>;
|
|
18
|
+
runStream(prompt: string): AsyncGenerator<StreamChunk, void, unknown>;
|
|
19
|
+
/**
|
|
20
|
+
* Emit an event corresponding to a stream chunk.
|
|
21
|
+
*/
|
|
22
|
+
private emitEventForChunk;
|
|
23
|
+
private parseStreamLineToChunk;
|
|
24
|
+
private processStreamItemToChunk;
|
|
25
|
+
private handleEventToChunk;
|
|
9
26
|
private executeRun;
|
|
10
27
|
private handleStreamLine;
|
|
11
28
|
private processStreamItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-runner.d.ts","sourceRoot":"","sources":["../../src/ai/claude-runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claude-runner.d.ts","sourceRoot":"","sources":["../../src/ai/claude-runner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAgC5C,qBAAa,YAAa,YAAW,QAAQ;IAQzC,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,GAAG,CAAC;IARd,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAmB;IACxC,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,WAAW,CAA+C;gBAGhE,WAAW,EAAE,MAAM,EACX,KAAK,GAAE,MAAuC,EAC9C,GAAG,CAAC,EAAE,KAAK,YAAA;IAKrB;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAI1C,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBxD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;IAqK5E;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,kBAAkB;IAwE1B,OAAO,CAAC,UAAU;IAkFlB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;CAO7B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { StreamChunk } from "../exec/types.js";
|
|
1
2
|
import type { LogFn } from "./factory.js";
|
|
2
3
|
import type { AiRunner } from "./runner.js";
|
|
3
4
|
export declare class CodexRunner implements AiRunner {
|
|
@@ -6,6 +7,7 @@ export declare class CodexRunner implements AiRunner {
|
|
|
6
7
|
private log?;
|
|
7
8
|
constructor(projectPath: string, model?: string, log?: LogFn | undefined);
|
|
8
9
|
run(prompt: string): Promise<string>;
|
|
10
|
+
runStream(prompt: string): AsyncGenerator<StreamChunk, void, unknown>;
|
|
9
11
|
private executeRun;
|
|
10
12
|
private buildArgs;
|
|
11
13
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-runner.d.ts","sourceRoot":"","sources":["../../src/ai/codex-runner.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,qBAAa,WAAY,YAAW,QAAQ;IAExC,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,GAAG,CAAC;gBAFJ,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,MAAsC,EAC7C,GAAG,CAAC,EAAE,KAAK,YAAA;IAGf,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"codex-runner.d.ts","sourceRoot":"","sources":["../../src/ai/codex-runner.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,qBAAa,WAAY,YAAW,QAAQ;IAExC,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,GAAG,CAAC;gBAFJ,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,MAAsC,EAC7C,GAAG,CAAC,EAAE,KAAK,YAAA;IAGf,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBnC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;IA6G5E,OAAO,CAAC,UAAU;IAoDlB,OAAO,CAAC,SAAS;IAiBjB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,KAAK;CAGd"}
|
package/dist/ai/runner.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import type { Provider } from "../core/config.js";
|
|
2
|
+
import type { ExecEventEmitter } from "../exec/event-emitter.js";
|
|
3
|
+
import type { StreamChunk } from "../exec/types.js";
|
|
2
4
|
export interface AiRunner {
|
|
3
5
|
run(prompt: string, isPlanning?: boolean): Promise<string>;
|
|
6
|
+
runStream(prompt: string): AsyncGenerator<StreamChunk, void, unknown>;
|
|
7
|
+
/**
|
|
8
|
+
* Set an event emitter to receive execution events.
|
|
9
|
+
*/
|
|
10
|
+
setEventEmitter?(emitter: ExecEventEmitter): void;
|
|
4
11
|
}
|
|
5
12
|
export type AiProvider = Provider;
|
|
6
13
|
//# sourceMappingURL=runner.d.ts.map
|
package/dist/ai/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/ai/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/ai/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACtE;;OAEG;IACH,eAAe,CAAC,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACnD;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC"}
|
package/dist/core/config.d.ts
CHANGED
|
@@ -12,6 +12,16 @@ export declare const LOCUS_CONFIG: {
|
|
|
12
12
|
artifactsDir: string;
|
|
13
13
|
documentsDir: string;
|
|
14
14
|
agentSkillsDir: string;
|
|
15
|
+
sessionsDir: string;
|
|
15
16
|
};
|
|
17
|
+
export declare const LOCUS_GITIGNORE_PATTERNS: readonly ["# Locus AI - Session data (user-specific, can grow large)", ".locus/sessions/", "", "# Locus AI - Artifacts (local-only, user-specific)", ".locus/artifacts/"];
|
|
16
18
|
export declare function getLocusPath(projectPath: string, fileName: keyof typeof LOCUS_CONFIG): string;
|
|
19
|
+
/**
|
|
20
|
+
* Gets the artifacts directory path for a specific agent.
|
|
21
|
+
* Artifacts are organized by agent ID to avoid conflicts and improve organization.
|
|
22
|
+
* @param projectPath - The project root path
|
|
23
|
+
* @param agentId - The agent ID (can be full ID or short form)
|
|
24
|
+
* @returns Path to the agent-specific artifacts directory
|
|
25
|
+
*/
|
|
26
|
+
export declare function getAgentArtifactsPath(projectPath: string, agentId: string): string;
|
|
17
27
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;CAGX,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAGlD,CAAC;AAEF,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;CAGX,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAEhE,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAGlD,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;CASxB,CAAC;AAIF,eAAO,MAAM,wBAAwB,2KAM3B,CAAC;AAEX,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,OAAO,YAAY,GAClC,MAAM,CAKR;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,MAAM,CASR"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { DEFAULT_MODEL, getLocusPath, LOCUS_CONFIG, PROVIDER, type Provider, } from "./config.js";
|
|
1
|
+
export { DEFAULT_MODEL, getAgentArtifactsPath, getLocusPath, LOCUS_CONFIG, LOCUS_GITIGNORE_PATTERNS, PROVIDER, type Provider, } from "./config.js";
|
|
2
2
|
export { type CodebaseIndex, CodebaseIndexer } from "./indexer.js";
|
|
3
3
|
export { PromptBuilder } from "./prompt-builder.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,KAAK,QAAQ,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACxB,QAAQ,EACR,KAAK,QAAQ,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Artifact types that can be tracked across conversation turns.
|
|
3
|
+
*/
|
|
4
|
+
export type ArtifactType = "plan" | "document" | "code" | "task-list" | "diagram" | "config" | "report" | "other";
|
|
5
|
+
/**
|
|
6
|
+
* Represents an artifact created during the session.
|
|
7
|
+
*/
|
|
8
|
+
export interface Artifact {
|
|
9
|
+
/** Unique identifier for the artifact */
|
|
10
|
+
id: string;
|
|
11
|
+
/** Human-readable title of the artifact */
|
|
12
|
+
title: string;
|
|
13
|
+
/** Type of artifact */
|
|
14
|
+
type: ArtifactType;
|
|
15
|
+
/** Content of the artifact (can be markdown, code, etc.) */
|
|
16
|
+
content: string;
|
|
17
|
+
/** Timestamp when the artifact was created */
|
|
18
|
+
createdAt: number;
|
|
19
|
+
/** Timestamp when the artifact was last updated */
|
|
20
|
+
updatedAt: number;
|
|
21
|
+
/** Optional file path if artifact was saved to disk */
|
|
22
|
+
filePath?: string;
|
|
23
|
+
/** Optional metadata for additional context */
|
|
24
|
+
metadata?: Record<string, unknown>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Task status for tracking progress.
|
|
28
|
+
*/
|
|
29
|
+
export type TaskStatus = "pending" | "in_progress" | "completed" | "cancelled";
|
|
30
|
+
/**
|
|
31
|
+
* Represents a task created during the session.
|
|
32
|
+
*/
|
|
33
|
+
export interface Task {
|
|
34
|
+
/** Unique identifier for the task */
|
|
35
|
+
id: string;
|
|
36
|
+
/** Human-readable title of the task */
|
|
37
|
+
title: string;
|
|
38
|
+
/** Detailed description of the task */
|
|
39
|
+
description?: string;
|
|
40
|
+
/** Current status of the task */
|
|
41
|
+
status: TaskStatus;
|
|
42
|
+
/** Timestamp when the task was created */
|
|
43
|
+
createdAt: number;
|
|
44
|
+
/** Timestamp when the task was last updated */
|
|
45
|
+
updatedAt: number;
|
|
46
|
+
/** Optional parent task ID for hierarchical tasks */
|
|
47
|
+
parentId?: string;
|
|
48
|
+
/** Optional metadata for additional context */
|
|
49
|
+
metadata?: Record<string, unknown>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Serialized state of the ContextTracker for persistence.
|
|
53
|
+
*/
|
|
54
|
+
export interface ContextTrackerState {
|
|
55
|
+
artifacts: Artifact[];
|
|
56
|
+
tasks: Task[];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Tracks artifacts and tasks created during an AI session to enable
|
|
60
|
+
* context-aware follow-up conversations and reference resolution.
|
|
61
|
+
*
|
|
62
|
+
* The ContextTracker enables multi-turn workflow support by:
|
|
63
|
+
* - Maintaining a registry of artifacts (plans, docs, code) created in the session
|
|
64
|
+
* - Tracking tasks and their status
|
|
65
|
+
* - Resolving natural language references ("the plan", "that doc")
|
|
66
|
+
* - Building context summaries for prompts
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* const tracker = new ContextTracker();
|
|
71
|
+
*
|
|
72
|
+
* // Track an artifact
|
|
73
|
+
* const artifact = tracker.createArtifact({
|
|
74
|
+
* title: "Sprint Plan Q1",
|
|
75
|
+
* type: "plan",
|
|
76
|
+
* content: "## Week 1\n..."
|
|
77
|
+
* });
|
|
78
|
+
*
|
|
79
|
+
* // Later, resolve a reference
|
|
80
|
+
* const plan = tracker.getReferencedArtifact("the plan");
|
|
81
|
+
*
|
|
82
|
+
* // Build context for next prompt
|
|
83
|
+
* const context = tracker.buildContextSummary();
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export declare class ContextTracker {
|
|
87
|
+
private artifacts;
|
|
88
|
+
private tasks;
|
|
89
|
+
/**
|
|
90
|
+
* Create a new artifact and track it.
|
|
91
|
+
*/
|
|
92
|
+
createArtifact(params: Omit<Artifact, "id" | "createdAt" | "updatedAt">): Artifact;
|
|
93
|
+
/**
|
|
94
|
+
* Track an existing artifact.
|
|
95
|
+
*/
|
|
96
|
+
trackArtifact(artifact: Artifact): void;
|
|
97
|
+
/**
|
|
98
|
+
* Update an existing artifact.
|
|
99
|
+
*/
|
|
100
|
+
updateArtifact(id: string, updates: Partial<Omit<Artifact, "id" | "createdAt">>): Artifact | null;
|
|
101
|
+
/**
|
|
102
|
+
* Get an artifact by ID.
|
|
103
|
+
*/
|
|
104
|
+
getArtifact(id: string): Artifact | null;
|
|
105
|
+
/**
|
|
106
|
+
* Get all tracked artifacts.
|
|
107
|
+
*/
|
|
108
|
+
getAllArtifacts(): Artifact[];
|
|
109
|
+
/**
|
|
110
|
+
* Create a new task and track it.
|
|
111
|
+
*/
|
|
112
|
+
createTask(params: Omit<Task, "id" | "createdAt" | "updatedAt">): Task;
|
|
113
|
+
/**
|
|
114
|
+
* Track an existing task.
|
|
115
|
+
*/
|
|
116
|
+
trackTask(task: Task): void;
|
|
117
|
+
/**
|
|
118
|
+
* Update an existing task.
|
|
119
|
+
*/
|
|
120
|
+
updateTask(id: string, updates: Partial<Omit<Task, "id" | "createdAt">>): Task | null;
|
|
121
|
+
/**
|
|
122
|
+
* Get a task by ID.
|
|
123
|
+
*/
|
|
124
|
+
getTask(id: string): Task | null;
|
|
125
|
+
/**
|
|
126
|
+
* Get all tracked tasks.
|
|
127
|
+
*/
|
|
128
|
+
getAllTasks(): Task[];
|
|
129
|
+
/**
|
|
130
|
+
* Get tasks by status.
|
|
131
|
+
*/
|
|
132
|
+
getTasksByStatus(status: TaskStatus): Task[];
|
|
133
|
+
/**
|
|
134
|
+
* Resolve a natural language reference to an artifact.
|
|
135
|
+
*
|
|
136
|
+
* Supports multiple resolution strategies:
|
|
137
|
+
* 1. Exact ID match
|
|
138
|
+
* 2. Title contains reference (case-insensitive)
|
|
139
|
+
* 3. Type-based reference using aliases ("the plan", "that doc")
|
|
140
|
+
* 4. Keyword matching in title
|
|
141
|
+
*
|
|
142
|
+
* @param reference - Natural language reference like "the plan" or "sprint doc"
|
|
143
|
+
* @returns The matched artifact or null if no match found
|
|
144
|
+
*/
|
|
145
|
+
getReferencedArtifact(reference: string): Artifact | null;
|
|
146
|
+
/**
|
|
147
|
+
* Resolve a natural language reference to a task.
|
|
148
|
+
*
|
|
149
|
+
* @param reference - Natural language reference like "the auth task"
|
|
150
|
+
* @returns The matched task or null if no match found
|
|
151
|
+
*/
|
|
152
|
+
getReferencedTask(reference: string): Task | null;
|
|
153
|
+
/**
|
|
154
|
+
* Build a context summary for inclusion in prompts.
|
|
155
|
+
* Provides the AI with awareness of artifacts and tasks from the session.
|
|
156
|
+
*/
|
|
157
|
+
buildContextSummary(): string;
|
|
158
|
+
/**
|
|
159
|
+
* Get a status icon for display.
|
|
160
|
+
*/
|
|
161
|
+
private getStatusIcon;
|
|
162
|
+
/**
|
|
163
|
+
* Check if the tracker has any content.
|
|
164
|
+
*/
|
|
165
|
+
hasContent(): boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Clear all tracked artifacts and tasks.
|
|
168
|
+
*/
|
|
169
|
+
clear(): void;
|
|
170
|
+
/**
|
|
171
|
+
* Serialize the tracker state for persistence.
|
|
172
|
+
*/
|
|
173
|
+
toJSON(): ContextTrackerState;
|
|
174
|
+
/**
|
|
175
|
+
* Restore tracker state from serialized data.
|
|
176
|
+
*/
|
|
177
|
+
static fromJSON(state: ContextTrackerState): ContextTracker;
|
|
178
|
+
/**
|
|
179
|
+
* Restore state into this tracker instance.
|
|
180
|
+
*/
|
|
181
|
+
restore(state: ContextTrackerState): void;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=context-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-tracker.d.ts","sourceRoot":"","sources":["../../src/exec/context-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { type ExecEvent, type ExecEventListener, type ExecEventMap, ExecEventType } from "./events.js";
|
|
2
|
+
/**
|
|
3
|
+
* Type-safe event emitter for execution progress feedback.
|
|
4
|
+
*
|
|
5
|
+
* Provides methods to emit and listen to execution events with full type safety.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const emitter = new ExecEventEmitter();
|
|
10
|
+
*
|
|
11
|
+
* // Listen to events
|
|
12
|
+
* emitter.on(ExecEventType.TOOL_STARTED, (event) => {
|
|
13
|
+
* console.log(`Tool started: ${event.data.toolName}`);
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* // Emit events
|
|
17
|
+
* emitter.emitToolStarted('Read');
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare class ExecEventEmitter {
|
|
21
|
+
private emitter;
|
|
22
|
+
private sessionId;
|
|
23
|
+
private isSessionActive;
|
|
24
|
+
private eventLog;
|
|
25
|
+
private debugMode;
|
|
26
|
+
constructor(options?: {
|
|
27
|
+
debug?: boolean;
|
|
28
|
+
});
|
|
29
|
+
/**
|
|
30
|
+
* Get the current session ID.
|
|
31
|
+
*/
|
|
32
|
+
getSessionId(): string;
|
|
33
|
+
/**
|
|
34
|
+
* Check if a session is currently active.
|
|
35
|
+
*/
|
|
36
|
+
isActive(): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Get the event log for debugging purposes.
|
|
39
|
+
*/
|
|
40
|
+
getEventLog(): ExecEvent[];
|
|
41
|
+
/**
|
|
42
|
+
* Clear the event log.
|
|
43
|
+
*/
|
|
44
|
+
clearEventLog(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Subscribe to a specific event type.
|
|
47
|
+
*/
|
|
48
|
+
on<K extends ExecEventType>(eventType: K, listener: ExecEventListener<ExecEventMap[K]>): this;
|
|
49
|
+
/**
|
|
50
|
+
* Subscribe to a specific event type for a single emission.
|
|
51
|
+
*/
|
|
52
|
+
once<K extends ExecEventType>(eventType: K, listener: ExecEventListener<ExecEventMap[K]>): this;
|
|
53
|
+
/**
|
|
54
|
+
* Unsubscribe from a specific event type.
|
|
55
|
+
*/
|
|
56
|
+
off<K extends ExecEventType>(eventType: K, listener: ExecEventListener<ExecEventMap[K]>): this;
|
|
57
|
+
/**
|
|
58
|
+
* Remove all listeners for a specific event type or all events.
|
|
59
|
+
*/
|
|
60
|
+
removeAllListeners(eventType?: ExecEventType): this;
|
|
61
|
+
/**
|
|
62
|
+
* Emit an event with the given payload.
|
|
63
|
+
*/
|
|
64
|
+
private emit;
|
|
65
|
+
/**
|
|
66
|
+
* Create the base event structure with timestamp.
|
|
67
|
+
*/
|
|
68
|
+
private createEventBase;
|
|
69
|
+
/**
|
|
70
|
+
* Emit SESSION_STARTED event.
|
|
71
|
+
*/
|
|
72
|
+
emitSessionStarted(options?: {
|
|
73
|
+
model?: string;
|
|
74
|
+
provider?: string;
|
|
75
|
+
}): void;
|
|
76
|
+
/**
|
|
77
|
+
* Emit PROMPT_SUBMITTED event.
|
|
78
|
+
*/
|
|
79
|
+
emitPromptSubmitted(prompt: string, truncated?: boolean): void;
|
|
80
|
+
/**
|
|
81
|
+
* Emit THINKING_STARTED event.
|
|
82
|
+
*/
|
|
83
|
+
emitThinkingStarted(content?: string): void;
|
|
84
|
+
/**
|
|
85
|
+
* Emit THINKING_STOPPED event.
|
|
86
|
+
*/
|
|
87
|
+
emitThinkingStoped(): void;
|
|
88
|
+
/**
|
|
89
|
+
* Emit TOOL_STARTED event.
|
|
90
|
+
*/
|
|
91
|
+
emitToolStarted(toolName: string, toolId?: string): void;
|
|
92
|
+
/**
|
|
93
|
+
* Emit TOOL_COMPLETED event.
|
|
94
|
+
*/
|
|
95
|
+
emitToolCompleted(toolName: string, toolId?: string, result?: unknown, duration?: number): void;
|
|
96
|
+
/**
|
|
97
|
+
* Emit TOOL_FAILED event.
|
|
98
|
+
*/
|
|
99
|
+
emitToolFailed(toolName: string, error: string, toolId?: string): void;
|
|
100
|
+
/**
|
|
101
|
+
* Emit TEXT_DELTA event.
|
|
102
|
+
*/
|
|
103
|
+
emitTextDelta(content: string): void;
|
|
104
|
+
/**
|
|
105
|
+
* Emit RESPONSE_COMPLETED event.
|
|
106
|
+
*/
|
|
107
|
+
emitResponseCompleted(content: string): void;
|
|
108
|
+
/**
|
|
109
|
+
* Emit ERROR_OCCURRED event.
|
|
110
|
+
*/
|
|
111
|
+
emitErrorOccurred(error: string, code?: string): void;
|
|
112
|
+
/**
|
|
113
|
+
* Emit SESSION_ENDED event.
|
|
114
|
+
*/
|
|
115
|
+
emitSessionEnded(success: boolean): void;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=event-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../src/exec/event-emitter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,aAAa,EACd,MAAM,aAAa,CAAC;AASrB;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;IAMzC;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,WAAW,IAAI,SAAS,EAAE;IAI1B;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB;;OAEG;IACH,EAAE,CAAC,CAAC,SAAS,aAAa,EACxB,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAC3C,IAAI;IAKP;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,aAAa,EAC1B,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAC3C,IAAI;IAKP;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,aAAa,EACzB,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAC3C,IAAI;IAKP;;OAEG;IACH,kBAAkB,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,IAAI;IASnD;;OAEG;IACH,OAAO,CAAC,IAAI;IAOZ;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,kBAAkB,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAYzE;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,IAAI;IAU5D;;OAEG;IACH,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAS3C;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAO1B;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAUxD;;OAEG;IACH,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI;IAYP;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAWtE;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IASpC;;OAEG;IACH,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAS5C;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAUrD;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAUzC"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event types emitted during AI execution for rich progress feedback.
|
|
3
|
+
*/
|
|
4
|
+
export declare enum ExecEventType {
|
|
5
|
+
/** Session has been initialized and is ready to execute */
|
|
6
|
+
SESSION_STARTED = "session:started",
|
|
7
|
+
/** A prompt has been submitted to the AI */
|
|
8
|
+
PROMPT_SUBMITTED = "prompt:submitted",
|
|
9
|
+
/** AI has started thinking/reasoning */
|
|
10
|
+
THINKING_STARTED = "thinking:started",
|
|
11
|
+
/** AI has stopped thinking/reasoning */
|
|
12
|
+
THINKING_STOPPED = "thinking:stopped",
|
|
13
|
+
/** A tool has started execution */
|
|
14
|
+
TOOL_STARTED = "tool:started",
|
|
15
|
+
/** A tool has completed successfully */
|
|
16
|
+
TOOL_COMPLETED = "tool:completed",
|
|
17
|
+
/** A tool has failed */
|
|
18
|
+
TOOL_FAILED = "tool:failed",
|
|
19
|
+
/** Incremental text output from the AI */
|
|
20
|
+
TEXT_DELTA = "text:delta",
|
|
21
|
+
/** The AI response has completed */
|
|
22
|
+
RESPONSE_COMPLETED = "response:completed",
|
|
23
|
+
/** An error occurred during execution */
|
|
24
|
+
ERROR_OCCURRED = "error:occurred",
|
|
25
|
+
/** The session has ended */
|
|
26
|
+
SESSION_ENDED = "session:ended"
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Base interface for all execution events.
|
|
30
|
+
*/
|
|
31
|
+
export interface ExecEventBase {
|
|
32
|
+
type: ExecEventType;
|
|
33
|
+
timestamp: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Event payload for SESSION_STARTED
|
|
37
|
+
*/
|
|
38
|
+
export interface SessionStartedEvent extends ExecEventBase {
|
|
39
|
+
type: ExecEventType.SESSION_STARTED;
|
|
40
|
+
data: {
|
|
41
|
+
sessionId: string;
|
|
42
|
+
model?: string;
|
|
43
|
+
provider?: string;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Event payload for PROMPT_SUBMITTED
|
|
48
|
+
*/
|
|
49
|
+
export interface PromptSubmittedEvent extends ExecEventBase {
|
|
50
|
+
type: ExecEventType.PROMPT_SUBMITTED;
|
|
51
|
+
data: {
|
|
52
|
+
prompt: string;
|
|
53
|
+
truncated?: boolean;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Event payload for THINKING_STARTED
|
|
58
|
+
*/
|
|
59
|
+
export interface ThinkingStartedEvent extends ExecEventBase {
|
|
60
|
+
type: ExecEventType.THINKING_STARTED;
|
|
61
|
+
data: {
|
|
62
|
+
content?: string;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Event payload for THINKING_STOPPED
|
|
67
|
+
*/
|
|
68
|
+
export interface ThinkingStoppedEvent extends ExecEventBase {
|
|
69
|
+
type: ExecEventType.THINKING_STOPPED;
|
|
70
|
+
data: Record<string, never>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Event payload for TOOL_STARTED
|
|
74
|
+
*/
|
|
75
|
+
export interface ToolStartedEvent extends ExecEventBase {
|
|
76
|
+
type: ExecEventType.TOOL_STARTED;
|
|
77
|
+
data: {
|
|
78
|
+
toolName: string;
|
|
79
|
+
toolId?: string;
|
|
80
|
+
parameters?: Record<string, unknown>;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Event payload for TOOL_COMPLETED
|
|
85
|
+
*/
|
|
86
|
+
export interface ToolCompletedEvent extends ExecEventBase {
|
|
87
|
+
type: ExecEventType.TOOL_COMPLETED;
|
|
88
|
+
data: {
|
|
89
|
+
toolName: string;
|
|
90
|
+
toolId?: string;
|
|
91
|
+
parameters?: Record<string, unknown>;
|
|
92
|
+
result?: unknown;
|
|
93
|
+
/** Duration in milliseconds */
|
|
94
|
+
duration?: number;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Event payload for TOOL_FAILED
|
|
99
|
+
*/
|
|
100
|
+
export interface ToolFailedEvent extends ExecEventBase {
|
|
101
|
+
type: ExecEventType.TOOL_FAILED;
|
|
102
|
+
data: {
|
|
103
|
+
toolName: string;
|
|
104
|
+
toolId?: string;
|
|
105
|
+
parameters?: Record<string, unknown>;
|
|
106
|
+
error: string;
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Event payload for TEXT_DELTA
|
|
111
|
+
*/
|
|
112
|
+
export interface TextDeltaEvent extends ExecEventBase {
|
|
113
|
+
type: ExecEventType.TEXT_DELTA;
|
|
114
|
+
data: {
|
|
115
|
+
content: string;
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Event payload for RESPONSE_COMPLETED
|
|
120
|
+
*/
|
|
121
|
+
export interface ResponseCompletedEvent extends ExecEventBase {
|
|
122
|
+
type: ExecEventType.RESPONSE_COMPLETED;
|
|
123
|
+
data: {
|
|
124
|
+
content: string;
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Event payload for ERROR_OCCURRED
|
|
129
|
+
*/
|
|
130
|
+
export interface ErrorOccurredEvent extends ExecEventBase {
|
|
131
|
+
type: ExecEventType.ERROR_OCCURRED;
|
|
132
|
+
data: {
|
|
133
|
+
error: string;
|
|
134
|
+
code?: string;
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Event payload for SESSION_ENDED
|
|
139
|
+
*/
|
|
140
|
+
export interface SessionEndedEvent extends ExecEventBase {
|
|
141
|
+
type: ExecEventType.SESSION_ENDED;
|
|
142
|
+
data: {
|
|
143
|
+
sessionId: string;
|
|
144
|
+
success: boolean;
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Union type of all execution events.
|
|
149
|
+
*/
|
|
150
|
+
export type ExecEvent = SessionStartedEvent | PromptSubmittedEvent | ThinkingStartedEvent | ThinkingStoppedEvent | ToolStartedEvent | ToolCompletedEvent | ToolFailedEvent | TextDeltaEvent | ResponseCompletedEvent | ErrorOccurredEvent | SessionEndedEvent;
|
|
151
|
+
/**
|
|
152
|
+
* Event listener callback type.
|
|
153
|
+
*/
|
|
154
|
+
export type ExecEventListener<T extends ExecEvent = ExecEvent> = (event: T) => void;
|
|
155
|
+
/**
|
|
156
|
+
* Type-safe event map for ExecEventEmitter.
|
|
157
|
+
*/
|
|
158
|
+
export interface ExecEventMap {
|
|
159
|
+
[ExecEventType.SESSION_STARTED]: SessionStartedEvent;
|
|
160
|
+
[ExecEventType.PROMPT_SUBMITTED]: PromptSubmittedEvent;
|
|
161
|
+
[ExecEventType.THINKING_STARTED]: ThinkingStartedEvent;
|
|
162
|
+
[ExecEventType.THINKING_STOPPED]: ThinkingStoppedEvent;
|
|
163
|
+
[ExecEventType.TOOL_STARTED]: ToolStartedEvent;
|
|
164
|
+
[ExecEventType.TOOL_COMPLETED]: ToolCompletedEvent;
|
|
165
|
+
[ExecEventType.TOOL_FAILED]: ToolFailedEvent;
|
|
166
|
+
[ExecEventType.TEXT_DELTA]: TextDeltaEvent;
|
|
167
|
+
[ExecEventType.RESPONSE_COMPLETED]: ResponseCompletedEvent;
|
|
168
|
+
[ExecEventType.ERROR_OCCURRED]: ErrorOccurredEvent;
|
|
169
|
+
[ExecEventType.SESSION_ENDED]: SessionEndedEvent;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/exec/events.ts"],"names":[],"mappings":"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"}
|