drift-it 0.1.0

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.
Files changed (138) hide show
  1. package/README.md +90 -0
  2. package/dist/commands/agent/create.d.ts +3 -0
  3. package/dist/commands/agent/create.d.ts.map +1 -0
  4. package/dist/commands/agent/create.js +30 -0
  5. package/dist/commands/agent/create.js.map +1 -0
  6. package/dist/commands/agent/delete.d.ts +3 -0
  7. package/dist/commands/agent/delete.d.ts.map +1 -0
  8. package/dist/commands/agent/delete.js +34 -0
  9. package/dist/commands/agent/delete.js.map +1 -0
  10. package/dist/commands/agent/index.d.ts +3 -0
  11. package/dist/commands/agent/index.d.ts.map +1 -0
  12. package/dist/commands/agent/index.js +20 -0
  13. package/dist/commands/agent/index.js.map +1 -0
  14. package/dist/commands/agent/list.d.ts +3 -0
  15. package/dist/commands/agent/list.d.ts.map +1 -0
  16. package/dist/commands/agent/list.js +31 -0
  17. package/dist/commands/agent/list.js.map +1 -0
  18. package/dist/commands/agent/rename.d.ts +3 -0
  19. package/dist/commands/agent/rename.d.ts.map +1 -0
  20. package/dist/commands/agent/rename.js +19 -0
  21. package/dist/commands/agent/rename.js.map +1 -0
  22. package/dist/commands/agent/run.d.ts +3 -0
  23. package/dist/commands/agent/run.d.ts.map +1 -0
  24. package/dist/commands/agent/run.js +28 -0
  25. package/dist/commands/agent/run.js.map +1 -0
  26. package/dist/commands/agent/update.d.ts +3 -0
  27. package/dist/commands/agent/update.d.ts.map +1 -0
  28. package/dist/commands/agent/update.js +32 -0
  29. package/dist/commands/agent/update.js.map +1 -0
  30. package/dist/commands/agent/view.d.ts +3 -0
  31. package/dist/commands/agent/view.d.ts.map +1 -0
  32. package/dist/commands/agent/view.js +24 -0
  33. package/dist/commands/agent/view.js.map +1 -0
  34. package/dist/commands/config/index.d.ts +3 -0
  35. package/dist/commands/config/index.d.ts.map +1 -0
  36. package/dist/commands/config/index.js +12 -0
  37. package/dist/commands/config/index.js.map +1 -0
  38. package/dist/commands/config/reset.d.ts +3 -0
  39. package/dist/commands/config/reset.d.ts.map +1 -0
  40. package/dist/commands/config/reset.js +31 -0
  41. package/dist/commands/config/reset.js.map +1 -0
  42. package/dist/commands/config/setProvider.d.ts +3 -0
  43. package/dist/commands/config/setProvider.d.ts.map +1 -0
  44. package/dist/commands/config/setProvider.js +25 -0
  45. package/dist/commands/config/setProvider.js.map +1 -0
  46. package/dist/commands/config/view.d.ts +3 -0
  47. package/dist/commands/config/view.d.ts.map +1 -0
  48. package/dist/commands/config/view.js +24 -0
  49. package/dist/commands/config/view.js.map +1 -0
  50. package/dist/commands/doctor.d.ts +3 -0
  51. package/dist/commands/doctor.d.ts.map +1 -0
  52. package/dist/commands/doctor.js +68 -0
  53. package/dist/commands/doctor.js.map +1 -0
  54. package/dist/commands/init.d.ts +3 -0
  55. package/dist/commands/init.d.ts.map +1 -0
  56. package/dist/commands/init.js +83 -0
  57. package/dist/commands/init.js.map +1 -0
  58. package/dist/commands/pipeline/create.d.ts +3 -0
  59. package/dist/commands/pipeline/create.d.ts.map +1 -0
  60. package/dist/commands/pipeline/create.js +34 -0
  61. package/dist/commands/pipeline/create.js.map +1 -0
  62. package/dist/commands/pipeline/delete.d.ts +3 -0
  63. package/dist/commands/pipeline/delete.d.ts.map +1 -0
  64. package/dist/commands/pipeline/delete.js +31 -0
  65. package/dist/commands/pipeline/delete.js.map +1 -0
  66. package/dist/commands/pipeline/index.d.ts +3 -0
  67. package/dist/commands/pipeline/index.d.ts.map +1 -0
  68. package/dist/commands/pipeline/index.js +20 -0
  69. package/dist/commands/pipeline/index.js.map +1 -0
  70. package/dist/commands/pipeline/list.d.ts +3 -0
  71. package/dist/commands/pipeline/list.d.ts.map +1 -0
  72. package/dist/commands/pipeline/list.js +30 -0
  73. package/dist/commands/pipeline/list.js.map +1 -0
  74. package/dist/commands/pipeline/rename.d.ts +3 -0
  75. package/dist/commands/pipeline/rename.d.ts.map +1 -0
  76. package/dist/commands/pipeline/rename.js +18 -0
  77. package/dist/commands/pipeline/rename.js.map +1 -0
  78. package/dist/commands/pipeline/run.d.ts +3 -0
  79. package/dist/commands/pipeline/run.d.ts.map +1 -0
  80. package/dist/commands/pipeline/run.js +42 -0
  81. package/dist/commands/pipeline/run.js.map +1 -0
  82. package/dist/commands/pipeline/update.d.ts +3 -0
  83. package/dist/commands/pipeline/update.d.ts.map +1 -0
  84. package/dist/commands/pipeline/update.js +39 -0
  85. package/dist/commands/pipeline/update.js.map +1 -0
  86. package/dist/commands/pipeline/view.d.ts +3 -0
  87. package/dist/commands/pipeline/view.d.ts.map +1 -0
  88. package/dist/commands/pipeline/view.js +26 -0
  89. package/dist/commands/pipeline/view.js.map +1 -0
  90. package/dist/core/agentManager.d.ts +13 -0
  91. package/dist/core/agentManager.d.ts.map +1 -0
  92. package/dist/core/agentManager.js +118 -0
  93. package/dist/core/agentManager.js.map +1 -0
  94. package/dist/core/executor.d.ts +6 -0
  95. package/dist/core/executor.d.ts.map +1 -0
  96. package/dist/core/executor.js +31 -0
  97. package/dist/core/executor.js.map +1 -0
  98. package/dist/core/pipelineManager.d.ts +11 -0
  99. package/dist/core/pipelineManager.d.ts.map +1 -0
  100. package/dist/core/pipelineManager.js +99 -0
  101. package/dist/core/pipelineManager.js.map +1 -0
  102. package/dist/core/providers/AIProvider.d.ts +5 -0
  103. package/dist/core/providers/AIProvider.d.ts.map +1 -0
  104. package/dist/core/providers/AIProvider.js +2 -0
  105. package/dist/core/providers/AIProvider.js.map +1 -0
  106. package/dist/core/providers/clipboardProvider.d.ts +6 -0
  107. package/dist/core/providers/clipboardProvider.d.ts.map +1 -0
  108. package/dist/core/providers/clipboardProvider.js +24 -0
  109. package/dist/core/providers/clipboardProvider.js.map +1 -0
  110. package/dist/core/providers/ollamaProvider.d.ts +9 -0
  111. package/dist/core/providers/ollamaProvider.d.ts.map +1 -0
  112. package/dist/core/providers/ollamaProvider.js +35 -0
  113. package/dist/core/providers/ollamaProvider.js.map +1 -0
  114. package/dist/index.d.ts +3 -0
  115. package/dist/index.d.ts.map +1 -0
  116. package/dist/index.js +19 -0
  117. package/dist/index.js.map +1 -0
  118. package/dist/utils/fileLoader.d.ts +22 -0
  119. package/dist/utils/fileLoader.d.ts.map +1 -0
  120. package/dist/utils/fileLoader.js +85 -0
  121. package/dist/utils/fileLoader.js.map +1 -0
  122. package/dist/utils/logger.d.ts +10 -0
  123. package/dist/utils/logger.d.ts.map +1 -0
  124. package/dist/utils/logger.js +25 -0
  125. package/dist/utils/logger.js.map +1 -0
  126. package/dist/utils/promptBuilder.d.ts +2 -0
  127. package/dist/utils/promptBuilder.d.ts.map +1 -0
  128. package/dist/utils/promptBuilder.js +4 -0
  129. package/dist/utils/promptBuilder.js.map +1 -0
  130. package/dist/utils/suggestions.d.ts +6 -0
  131. package/dist/utils/suggestions.d.ts.map +1 -0
  132. package/dist/utils/suggestions.js +40 -0
  133. package/dist/utils/suggestions.js.map +1 -0
  134. package/dist/utils/validator.d.ts +3 -0
  135. package/dist/utils/validator.d.ts.map +1 -0
  136. package/dist/utils/validator.js +20 -0
  137. package/dist/utils/validator.js.map +1 -0
  138. package/package.json +43 -0
@@ -0,0 +1,118 @@
1
+ import path from "node:path";
2
+ import { resolveDataDir, agentsDir, readJSON, writeJSON, fileExists, deleteFile, listJSONFiles, ensureDir, } from "../utils/fileLoader.js";
3
+ import { validateName } from "../utils/validator.js";
4
+ import { suggestSimilar } from "../utils/suggestions.js";
5
+ function agentPath(dir, name) {
6
+ return path.join(agentsDir(dir), `${name}.json`);
7
+ }
8
+ export async function createAgent(name, prompt) {
9
+ const nameError = validateName(name);
10
+ if (nameError)
11
+ throw new Error(nameError);
12
+ const dataDir = await resolveDataDir();
13
+ const dir = agentsDir(dataDir);
14
+ await ensureDir(dir);
15
+ const filePath = agentPath(dataDir, name);
16
+ if (await fileExists(filePath)) {
17
+ throw new Error(`Agent '${name}' already exists.`);
18
+ }
19
+ const agent = { name, prompt };
20
+ await writeJSON(filePath, agent);
21
+ }
22
+ export async function listAgents() {
23
+ const dataDir = await resolveDataDir();
24
+ const files = await listJSONFiles(agentsDir(dataDir));
25
+ const agents = [];
26
+ for (const file of files) {
27
+ const agent = await readJSON(path.join(agentsDir(dataDir), file));
28
+ agents.push(agent);
29
+ }
30
+ return agents.sort((a, b) => a.name.localeCompare(b.name));
31
+ }
32
+ export async function getAgent(name) {
33
+ const dataDir = await resolveDataDir();
34
+ const filePath = agentPath(dataDir, name);
35
+ if (!(await fileExists(filePath))) {
36
+ const allAgents = await listAgents();
37
+ const suggestions = suggestSimilar(name, allAgents.map((a) => a.name));
38
+ let msg = `Agent '${name}' not found.`;
39
+ if (suggestions.length > 0) {
40
+ msg += ` Did you mean: ${suggestions.join(", ")}?`;
41
+ }
42
+ throw new Error(msg);
43
+ }
44
+ return readJSON(filePath);
45
+ }
46
+ export async function updateAgent(name, newPrompt) {
47
+ const dataDir = await resolveDataDir();
48
+ const filePath = agentPath(dataDir, name);
49
+ if (!(await fileExists(filePath))) {
50
+ throw new Error(`Agent '${name}' not found.`);
51
+ }
52
+ const agent = { name, prompt: newPrompt };
53
+ await writeJSON(filePath, agent);
54
+ }
55
+ export async function renameAgent(oldName, newName) {
56
+ const nameError = validateName(newName);
57
+ if (nameError)
58
+ throw new Error(nameError);
59
+ const dataDir = await resolveDataDir();
60
+ const oldPath = agentPath(dataDir, oldName);
61
+ const newPath = agentPath(dataDir, newName);
62
+ if (!(await fileExists(oldPath))) {
63
+ throw new Error(`Agent '${oldName}' not found.`);
64
+ }
65
+ if (await fileExists(newPath)) {
66
+ throw new Error(`Agent '${newName}' already exists.`);
67
+ }
68
+ const agent = await readJSON(oldPath);
69
+ agent.name = newName;
70
+ await writeJSON(newPath, agent);
71
+ await deleteFile(oldPath);
72
+ // Update pipelines that reference the old name
73
+ await propagateRename(dataDir, oldName, newName);
74
+ }
75
+ export async function deleteAgent(name) {
76
+ const dataDir = await resolveDataDir();
77
+ const filePath = agentPath(dataDir, name);
78
+ if (!(await fileExists(filePath))) {
79
+ throw new Error(`Agent '${name}' not found.`);
80
+ }
81
+ // Find pipelines using this agent
82
+ const affectedPipelines = await findPipelinesUsingAgent(dataDir, name);
83
+ await deleteFile(filePath);
84
+ return affectedPipelines;
85
+ }
86
+ export async function agentExists(name) {
87
+ const dataDir = await resolveDataDir();
88
+ return fileExists(agentPath(dataDir, name));
89
+ }
90
+ export async function getAllAgentNames() {
91
+ const agents = await listAgents();
92
+ return agents.map((a) => a.name);
93
+ }
94
+ async function findPipelinesUsingAgent(dataDir, agentName) {
95
+ const dir = path.join(dataDir, "pipelines");
96
+ const files = await listJSONFiles(dir);
97
+ const affected = [];
98
+ for (const file of files) {
99
+ const pipeline = await readJSON(path.join(dir, file));
100
+ if (pipeline.steps.includes(agentName)) {
101
+ affected.push(pipeline.name);
102
+ }
103
+ }
104
+ return affected;
105
+ }
106
+ async function propagateRename(dataDir, oldName, newName) {
107
+ const dir = path.join(dataDir, "pipelines");
108
+ const files = await listJSONFiles(dir);
109
+ for (const file of files) {
110
+ const filePath = path.join(dir, file);
111
+ const pipeline = await readJSON(filePath);
112
+ if (pipeline.steps.includes(oldName)) {
113
+ pipeline.steps = pipeline.steps.map((s) => (s === oldName ? newName : s));
114
+ await writeJSON(filePath, pipeline);
115
+ }
116
+ }
117
+ }
118
+ //# sourceMappingURL=agentManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentManager.js","sourceRoot":"","sources":["../../src/core/agentManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { AIProvider } from "./providers/AIProvider.js";
2
+ import { DriftConfig } from "../utils/fileLoader.js";
3
+ export declare function createProvider(config: DriftConfig): AIProvider;
4
+ export declare function resolveProvider(providerOverride?: string): Promise<AIProvider>;
5
+ export declare function runAgent(agentName: string, inputContent: string, provider: AIProvider): Promise<string>;
6
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/core/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAKvD,OAAO,EAAa,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEhE,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAS9D;AAED,wBAAsB,eAAe,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CASpF;AAED,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,MAAM,CAAC,CAIjB"}
@@ -0,0 +1,31 @@
1
+ import { OllamaProvider } from "./providers/ollamaProvider.js";
2
+ import { ClipboardProvider } from "./providers/clipboardProvider.js";
3
+ import { getAgent } from "./agentManager.js";
4
+ import { buildPrompt } from "../utils/promptBuilder.js";
5
+ import { getConfig } from "../utils/fileLoader.js";
6
+ export function createProvider(config) {
7
+ switch (config.provider) {
8
+ case "ollama":
9
+ return new OllamaProvider(config.model);
10
+ case "clipboard":
11
+ return new ClipboardProvider();
12
+ default:
13
+ throw new Error(`Unknown provider: ${config.provider}`);
14
+ }
15
+ }
16
+ export async function resolveProvider(providerOverride) {
17
+ const config = await getConfig();
18
+ if (providerOverride) {
19
+ if (providerOverride !== "ollama" && providerOverride !== "clipboard") {
20
+ throw new Error(`Unknown provider: ${providerOverride}. Available: ollama, clipboard`);
21
+ }
22
+ return createProvider({ ...config, provider: providerOverride });
23
+ }
24
+ return createProvider(config);
25
+ }
26
+ export async function runAgent(agentName, inputContent, provider) {
27
+ const agent = await getAgent(agentName);
28
+ const prompt = buildPrompt(agent.prompt, inputContent);
29
+ return provider.run(prompt);
30
+ }
31
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/core/executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAe,MAAM,wBAAwB,CAAC;AAEhE,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1C,KAAK,WAAW;YACd,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACjC;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,gBAAyB;IAC7D,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IACjC,IAAI,gBAAgB,EAAE,CAAC;QACrB,IAAI,gBAAgB,KAAK,QAAQ,IAAI,gBAAgB,KAAK,WAAW,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,qBAAqB,gBAAgB,gCAAgC,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,SAAiB,EACjB,YAAoB,EACpB,QAAoB;IAEpB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACvD,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface Pipeline {
2
+ name: string;
3
+ steps: string[];
4
+ }
5
+ export declare function createPipeline(name: string, steps: string[]): Promise<void>;
6
+ export declare function listPipelines(): Promise<Pipeline[]>;
7
+ export declare function getPipeline(name: string): Promise<Pipeline>;
8
+ export declare function updatePipeline(name: string, newSteps: string[]): Promise<void>;
9
+ export declare function renamePipeline(oldName: string, newName: string): Promise<void>;
10
+ export declare function deletePipeline(name: string): Promise<void>;
11
+ //# sourceMappingURL=pipelineManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipelineManager.d.ts","sourceRoot":"","sources":["../../src/core/pipelineManager.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAMD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BjF;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CASzD;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgBjE;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBpF;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBpF;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhE"}
@@ -0,0 +1,99 @@
1
+ import path from "node:path";
2
+ import { resolveDataDir, pipelinesDir, readJSON, writeJSON, fileExists, deleteFile, listJSONFiles, ensureDir, } from "../utils/fileLoader.js";
3
+ import { validateName } from "../utils/validator.js";
4
+ import { suggestSimilar } from "../utils/suggestions.js";
5
+ import { agentExists } from "./agentManager.js";
6
+ function pipelinePath(dir, name) {
7
+ return path.join(pipelinesDir(dir), `${name}.json`);
8
+ }
9
+ export async function createPipeline(name, steps) {
10
+ const nameError = validateName(name);
11
+ if (nameError)
12
+ throw new Error(nameError);
13
+ if (steps.length === 0) {
14
+ throw new Error("Pipeline must have at least one step.");
15
+ }
16
+ // Validate all agent names exist
17
+ for (const step of steps) {
18
+ if (!(await agentExists(step))) {
19
+ throw new Error(`Agent '${step}' does not exist. Create it first with: drift agent create ${step}`);
20
+ }
21
+ }
22
+ const dataDir = await resolveDataDir();
23
+ const dir = pipelinesDir(dataDir);
24
+ await ensureDir(dir);
25
+ const filePath = pipelinePath(dataDir, name);
26
+ if (await fileExists(filePath)) {
27
+ throw new Error(`Pipeline '${name}' already exists.`);
28
+ }
29
+ const pipeline = { name, steps };
30
+ await writeJSON(filePath, pipeline);
31
+ }
32
+ export async function listPipelines() {
33
+ const dataDir = await resolveDataDir();
34
+ const files = await listJSONFiles(pipelinesDir(dataDir));
35
+ const pipelines = [];
36
+ for (const file of files) {
37
+ const pipeline = await readJSON(path.join(pipelinesDir(dataDir), file));
38
+ pipelines.push(pipeline);
39
+ }
40
+ return pipelines.sort((a, b) => a.name.localeCompare(b.name));
41
+ }
42
+ export async function getPipeline(name) {
43
+ const dataDir = await resolveDataDir();
44
+ const filePath = pipelinePath(dataDir, name);
45
+ if (!(await fileExists(filePath))) {
46
+ const allPipelines = await listPipelines();
47
+ const suggestions = suggestSimilar(name, allPipelines.map((p) => p.name));
48
+ let msg = `Pipeline '${name}' not found.`;
49
+ if (suggestions.length > 0) {
50
+ msg += ` Did you mean: ${suggestions.join(", ")}?`;
51
+ }
52
+ throw new Error(msg);
53
+ }
54
+ return readJSON(filePath);
55
+ }
56
+ export async function updatePipeline(name, newSteps) {
57
+ if (newSteps.length === 0) {
58
+ throw new Error("Pipeline must have at least one step.");
59
+ }
60
+ for (const step of newSteps) {
61
+ if (!(await agentExists(step))) {
62
+ throw new Error(`Agent '${step}' does not exist.`);
63
+ }
64
+ }
65
+ const dataDir = await resolveDataDir();
66
+ const filePath = pipelinePath(dataDir, name);
67
+ if (!(await fileExists(filePath))) {
68
+ throw new Error(`Pipeline '${name}' not found.`);
69
+ }
70
+ const pipeline = { name, steps: newSteps };
71
+ await writeJSON(filePath, pipeline);
72
+ }
73
+ export async function renamePipeline(oldName, newName) {
74
+ const nameError = validateName(newName);
75
+ if (nameError)
76
+ throw new Error(nameError);
77
+ const dataDir = await resolveDataDir();
78
+ const oldPath = pipelinePath(dataDir, oldName);
79
+ const newPath = pipelinePath(dataDir, newName);
80
+ if (!(await fileExists(oldPath))) {
81
+ throw new Error(`Pipeline '${oldName}' not found.`);
82
+ }
83
+ if (await fileExists(newPath)) {
84
+ throw new Error(`Pipeline '${newName}' already exists.`);
85
+ }
86
+ const pipeline = await readJSON(oldPath);
87
+ pipeline.name = newName;
88
+ await writeJSON(newPath, pipeline);
89
+ await deleteFile(oldPath);
90
+ }
91
+ export async function deletePipeline(name) {
92
+ const dataDir = await resolveDataDir();
93
+ const filePath = pipelinePath(dataDir, name);
94
+ if (!(await fileExists(filePath))) {
95
+ throw new Error(`Pipeline '${name}' not found.`);
96
+ }
97
+ await deleteFile(filePath);
98
+ }
99
+ //# sourceMappingURL=pipelineManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipelineManager.js","sourceRoot":"","sources":["../../src/core/pipelineManager.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,GACV,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOhD,SAAS,YAAY,CAAC,GAAW,EAAE,IAAY;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,KAAe;IAChE,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IAE1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,iCAAiC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,8DAA8D,IAAI,EAAE,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IAErB,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAI,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,mBAAmB,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC3C,MAAM,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAW,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAClF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,MAAM,aAAa,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,cAAc,CAChC,IAAI,EACJ,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAChC,CAAC;QACF,IAAI,GAAG,GAAG,aAAa,IAAI,cAAc,CAAC;QAC1C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,GAAG,IAAI,kBAAkB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACrD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,QAAQ,CAAW,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,QAAkB;IACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,mBAAmB,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,cAAc,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACrD,MAAM,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAe,EAAE,OAAe;IACnE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IAE1C,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE/C,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,aAAa,OAAO,cAAc,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,aAAa,OAAO,mBAAmB,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAW,OAAO,CAAC,CAAC;IACnD,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC;IACxB,MAAM,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAY;IAC/C,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,cAAc,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface AIProvider {
2
+ name: string;
3
+ run(prompt: string): Promise<string>;
4
+ }
5
+ //# sourceMappingURL=AIProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIProvider.d.ts","sourceRoot":"","sources":["../../../src/core/providers/AIProvider.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACtC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AIProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIProvider.js","sourceRoot":"","sources":["../../../src/core/providers/AIProvider.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { AIProvider } from "./AIProvider.js";
2
+ export declare class ClipboardProvider implements AIProvider {
3
+ name: string;
4
+ run(prompt: string): Promise<string>;
5
+ }
6
+ //# sourceMappingURL=clipboardProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboardProvider.d.ts","sourceRoot":"","sources":["../../../src/core/providers/clipboardProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,qBAAa,iBAAkB,YAAW,UAAU;IAClD,IAAI,SAAe;IAEb,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAoB3C"}
@@ -0,0 +1,24 @@
1
+ import clipboard from "clipboardy";
2
+ import inquirer from "inquirer";
3
+ import { logger } from "../../utils/logger.js";
4
+ export class ClipboardProvider {
5
+ name = "clipboard";
6
+ async run(prompt) {
7
+ // Copy prompt to clipboard
8
+ await clipboard.write(prompt);
9
+ logger.info("Prompt copied to clipboard!");
10
+ logger.dim("Paste it into GitHub Copilot (or your preferred AI tool), then copy the response.");
11
+ const { response } = await inquirer.prompt([
12
+ {
13
+ type: "editor",
14
+ name: "response",
15
+ message: "Paste the AI response here (opens your editor):",
16
+ },
17
+ ]);
18
+ if (!response || response.trim().length === 0) {
19
+ throw new Error("No response provided. Aborting.");
20
+ }
21
+ return response.trim();
22
+ }
23
+ }
24
+ //# sourceMappingURL=clipboardProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboardProvider.js","sourceRoot":"","sources":["../../../src/core/providers/clipboardProvider.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,OAAO,iBAAiB;IAC5B,IAAI,GAAG,WAAW,CAAC;IAEnB,KAAK,CAAC,GAAG,CAAC,MAAc;QACtB,2BAA2B;QAC3B,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;QAEhG,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAuB;YAC/D;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,iDAAiD;aAC3D;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import { AIProvider } from "./AIProvider.js";
2
+ export declare class OllamaProvider implements AIProvider {
3
+ name: string;
4
+ private model;
5
+ private baseUrl;
6
+ constructor(model?: string, baseUrl?: string);
7
+ run(prompt: string): Promise<string>;
8
+ }
9
+ //# sourceMappingURL=ollamaProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollamaProvider.d.ts","sourceRoot":"","sources":["../../../src/core/providers/ollamaProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,cAAe,YAAW,UAAU;IAC/C,IAAI,SAAY;IAChB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;gBAEZ,KAAK,SAAW,EAAE,OAAO,SAA2B;IAK1D,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA+B3C"}
@@ -0,0 +1,35 @@
1
+ export class OllamaProvider {
2
+ name = "ollama";
3
+ model;
4
+ baseUrl;
5
+ constructor(model = "llama3", baseUrl = "http://localhost:11434") {
6
+ this.model = model;
7
+ this.baseUrl = baseUrl;
8
+ }
9
+ async run(prompt) {
10
+ const url = `${this.baseUrl}/api/generate`;
11
+ let res;
12
+ try {
13
+ res = await fetch(url, {
14
+ method: "POST",
15
+ headers: { "Content-Type": "application/json" },
16
+ body: JSON.stringify({
17
+ model: this.model,
18
+ prompt,
19
+ stream: false,
20
+ }),
21
+ });
22
+ }
23
+ catch (err) {
24
+ throw new Error(`Could not connect to Ollama at ${this.baseUrl}. Is Ollama running?\n` +
25
+ `Start it with: ollama serve`);
26
+ }
27
+ if (!res.ok) {
28
+ const body = await res.text();
29
+ throw new Error(`Ollama returned status ${res.status}: ${body}`);
30
+ }
31
+ const json = (await res.json());
32
+ return json.response;
33
+ }
34
+ }
35
+ //# sourceMappingURL=ollamaProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollamaProvider.js","sourceRoot":"","sources":["../../../src/core/providers/ollamaProvider.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,cAAc;IACzB,IAAI,GAAG,QAAQ,CAAC;IACR,KAAK,CAAS;IACd,OAAO,CAAS;IAExB,YAAY,KAAK,GAAG,QAAQ,EAAE,OAAO,GAAG,wBAAwB;QAC9D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAc;QACtB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,eAAe,CAAC;QAE3C,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBACrB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM;oBACN,MAAM,EAAE,KAAK;iBACd,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,kCAAkC,IAAI,CAAC,OAAO,wBAAwB;gBACpE,6BAA6B,CAChC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,0BAA0B,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAChD,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;QACxD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from "commander";
3
+ import { registerInitCommand } from "./commands/init.js";
4
+ import { registerDoctorCommand } from "./commands/doctor.js";
5
+ import { registerAgentCommands } from "./commands/agent/index.js";
6
+ import { registerPipelineCommands } from "./commands/pipeline/index.js";
7
+ import { registerConfigCommands } from "./commands/config/index.js";
8
+ const program = new Command();
9
+ program
10
+ .name("drift")
11
+ .version("0.1.0")
12
+ .description("A developer-first CLI for creating and running custom AI agents and multi-agent pipelines locally.");
13
+ registerInitCommand(program);
14
+ registerDoctorCommand(program);
15
+ registerAgentCommands(program);
16
+ registerPipelineCommands(program);
17
+ registerConfigCommands(program);
18
+ program.parse();
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CACV,oGAAoG,CACrG,CAAC;AAEJ,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAEhC,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,22 @@
1
+ export declare function getGlobalDir(): string;
2
+ export declare function getLocalDir(): string;
3
+ /** Returns the project-local .drift/ if it exists, otherwise the global ~/.drift/ */
4
+ export declare function resolveDataDir(): Promise<string>;
5
+ export declare function ensureDir(dir: string): Promise<void>;
6
+ export declare function readJSON<T>(filePath: string): Promise<T>;
7
+ export declare function writeJSON(filePath: string, data: unknown): Promise<void>;
8
+ export declare function fileExists(filePath: string): Promise<boolean>;
9
+ export declare function deleteFile(filePath: string): Promise<void>;
10
+ export declare function renameFile(oldPath: string, newPath: string): Promise<void>;
11
+ export declare function listJSONFiles(dir: string): Promise<string[]>;
12
+ export declare function readFileContent(filePath: string): Promise<string>;
13
+ export interface DriftConfig {
14
+ provider: "ollama" | "clipboard";
15
+ model: string;
16
+ }
17
+ export declare const DEFAULT_CONFIG: DriftConfig;
18
+ export declare function getConfig(): Promise<DriftConfig>;
19
+ export declare function writeConfig(config: DriftConfig): Promise<void>;
20
+ export declare function agentsDir(dataDir: string): string;
21
+ export declare function pipelinesDir(dataDir: string): string;
22
+ //# sourceMappingURL=fileLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileLoader.d.ts","sourceRoot":"","sources":["../../src/utils/fileLoader.ts"],"names":[],"mappings":"AAOA,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,qFAAqF;AACrF,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAQtD;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAG9D;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9E;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhF;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOlE;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEvE;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,cAAc,EAAE,WAG5B,CAAC;AAEF,wBAAsB,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,CAQtD;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpE;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD"}
@@ -0,0 +1,85 @@
1
+ import { promises as fs } from "node:fs";
2
+ import path from "node:path";
3
+ import os from "node:os";
4
+ const GLOBAL_DIR = path.join(os.homedir(), ".drift");
5
+ const LOCAL_DIR = ".drift";
6
+ export function getGlobalDir() {
7
+ return GLOBAL_DIR;
8
+ }
9
+ export function getLocalDir() {
10
+ return path.resolve(process.cwd(), LOCAL_DIR);
11
+ }
12
+ /** Returns the project-local .drift/ if it exists, otherwise the global ~/.drift/ */
13
+ export async function resolveDataDir() {
14
+ const local = getLocalDir();
15
+ try {
16
+ await fs.access(local);
17
+ return local;
18
+ }
19
+ catch {
20
+ return GLOBAL_DIR;
21
+ }
22
+ }
23
+ export async function ensureDir(dir) {
24
+ await fs.mkdir(dir, { recursive: true });
25
+ }
26
+ export async function readJSON(filePath) {
27
+ const raw = await fs.readFile(filePath, "utf-8");
28
+ return JSON.parse(raw);
29
+ }
30
+ export async function writeJSON(filePath, data) {
31
+ await fs.writeFile(filePath, JSON.stringify(data, null, 2) + "\n", "utf-8");
32
+ }
33
+ export async function fileExists(filePath) {
34
+ try {
35
+ await fs.access(filePath);
36
+ return true;
37
+ }
38
+ catch {
39
+ return false;
40
+ }
41
+ }
42
+ export async function deleteFile(filePath) {
43
+ await fs.unlink(filePath);
44
+ }
45
+ export async function renameFile(oldPath, newPath) {
46
+ await fs.rename(oldPath, newPath);
47
+ }
48
+ export async function listJSONFiles(dir) {
49
+ try {
50
+ const entries = await fs.readdir(dir);
51
+ return entries.filter((f) => f.endsWith(".json"));
52
+ }
53
+ catch {
54
+ return [];
55
+ }
56
+ }
57
+ export async function readFileContent(filePath) {
58
+ return fs.readFile(filePath, "utf-8");
59
+ }
60
+ export const DEFAULT_CONFIG = {
61
+ provider: "ollama",
62
+ model: "llama3",
63
+ };
64
+ export async function getConfig() {
65
+ const dataDir = await resolveDataDir();
66
+ const configPath = path.join(dataDir, "config.json");
67
+ try {
68
+ return await readJSON(configPath);
69
+ }
70
+ catch {
71
+ return { ...DEFAULT_CONFIG };
72
+ }
73
+ }
74
+ export async function writeConfig(config) {
75
+ const dataDir = await resolveDataDir();
76
+ const configPath = path.join(dataDir, "config.json");
77
+ await writeJSON(configPath, config);
78
+ }
79
+ export function agentsDir(dataDir) {
80
+ return path.join(dataDir, "agents");
81
+ }
82
+ export function pipelinesDir(dataDir) {
83
+ return path.join(dataDir, "pipelines");
84
+ }
85
+ //# sourceMappingURL=fileLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileLoader.js","sourceRoot":"","sources":["../../src/utils/fileLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare const logger: {
2
+ success(msg: string): void;
3
+ error(msg: string): void;
4
+ info(msg: string): void;
5
+ warn(msg: string): void;
6
+ step(msg: string): void;
7
+ dim(msg: string): void;
8
+ heading(msg: string): void;
9
+ };
10
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;iBACJ,MAAM;eAGR,MAAM;cAGP,MAAM;cAGN,MAAM;cAGN,MAAM;aAGP,MAAM;iBAGF,MAAM;CAGpB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import chalk from "chalk";
2
+ export const logger = {
3
+ success(msg) {
4
+ console.log(chalk.green("✅ " + msg));
5
+ },
6
+ error(msg) {
7
+ console.error(chalk.red("❌ " + msg));
8
+ },
9
+ info(msg) {
10
+ console.log(chalk.blue("ℹ️ " + msg));
11
+ },
12
+ warn(msg) {
13
+ console.log(chalk.yellow("⚠️ " + msg));
14
+ },
15
+ step(msg) {
16
+ console.log(chalk.cyan("🚀 " + msg));
17
+ },
18
+ dim(msg) {
19
+ console.log(chalk.dim(msg));
20
+ },
21
+ heading(msg) {
22
+ console.log(chalk.bold.underline(msg));
23
+ },
24
+ };
25
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,OAAO,CAAC,GAAW;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,KAAK,CAAC,GAAW;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,GAAW;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,CAAC,GAAW;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,CAAC,GAAW;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,GAAG,CAAC,GAAW;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,GAAW;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function buildPrompt(systemPrompt: string, content: string): string;
2
+ //# sourceMappingURL=promptBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promptBuilder.d.ts","sourceRoot":"","sources":["../../src/utils/promptBuilder.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE"}
@@ -0,0 +1,4 @@
1
+ export function buildPrompt(systemPrompt, content) {
2
+ return `${systemPrompt}\n\n---\n\nHere is the input:\n\n${content}`;
3
+ }
4
+ //# sourceMappingURL=promptBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promptBuilder.js","sourceRoot":"","sources":["../../src/utils/promptBuilder.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,YAAoB,EAAE,OAAe;IAC/D,OAAO,GAAG,YAAY,oCAAoC,OAAO,EAAE,CAAC;AACtE,CAAC"}