@gracefultools/astrid-sdk 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.
- package/README.md +160 -0
- package/dist/adapters/astrid-oauth.d.ts +95 -0
- package/dist/adapters/astrid-oauth.d.ts.map +1 -0
- package/dist/adapters/astrid-oauth.js +230 -0
- package/dist/adapters/astrid-oauth.js.map +1 -0
- package/dist/bin/cli.d.ts +13 -0
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +286 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/executors/claude.d.ts +45 -0
- package/dist/executors/claude.d.ts.map +1 -0
- package/dist/executors/claude.js +654 -0
- package/dist/executors/claude.js.map +1 -0
- package/dist/executors/gemini.d.ts +23 -0
- package/dist/executors/gemini.d.ts.map +1 -0
- package/dist/executors/gemini.js +487 -0
- package/dist/executors/gemini.js.map +1 -0
- package/dist/executors/openai.d.ts +24 -0
- package/dist/executors/openai.d.ts.map +1 -0
- package/dist/executors/openai.js +502 -0
- package/dist/executors/openai.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +143 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/agent-config.d.ts +56 -0
- package/dist/utils/agent-config.d.ts.map +1 -0
- package/dist/utils/agent-config.js +125 -0
- package/dist/utils/agent-config.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @gracefultools/astrid-sdk Type Definitions
|
|
3
|
+
*/
|
|
4
|
+
export interface CodeGenerationRequest {
|
|
5
|
+
taskTitle: string;
|
|
6
|
+
taskDescription: string;
|
|
7
|
+
repositoryContext?: string;
|
|
8
|
+
existingFiles?: string[];
|
|
9
|
+
targetFramework?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface GeneratedCode {
|
|
12
|
+
files: Array<{
|
|
13
|
+
path: string;
|
|
14
|
+
content: string;
|
|
15
|
+
action: 'create' | 'modify' | 'delete';
|
|
16
|
+
}>;
|
|
17
|
+
commitMessage: string;
|
|
18
|
+
prTitle: string;
|
|
19
|
+
prDescription: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ImplementationPlan {
|
|
22
|
+
summary: string;
|
|
23
|
+
approach: string;
|
|
24
|
+
files: Array<{
|
|
25
|
+
path: string;
|
|
26
|
+
purpose: string;
|
|
27
|
+
changes: string;
|
|
28
|
+
/** Set during validation if file is too large for complete content */
|
|
29
|
+
requiresPartialContent?: boolean;
|
|
30
|
+
/** File size in bytes (set during validation) */
|
|
31
|
+
fileSize?: number;
|
|
32
|
+
/** Estimated line count (set during validation) */
|
|
33
|
+
estimatedLines?: number;
|
|
34
|
+
}>;
|
|
35
|
+
dependencies?: string[];
|
|
36
|
+
estimatedComplexity: 'simple' | 'medium' | 'complex';
|
|
37
|
+
considerations: string[];
|
|
38
|
+
/** Files explored during planning phase */
|
|
39
|
+
exploredFiles?: Array<{
|
|
40
|
+
path: string;
|
|
41
|
+
content: string;
|
|
42
|
+
relevance: string;
|
|
43
|
+
}>;
|
|
44
|
+
/** Analysis summary for implementation phase */
|
|
45
|
+
analysisNotes?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface ExecutionResult {
|
|
48
|
+
success: boolean;
|
|
49
|
+
files: Array<{
|
|
50
|
+
path: string;
|
|
51
|
+
content: string;
|
|
52
|
+
action: 'create' | 'modify' | 'delete';
|
|
53
|
+
}>;
|
|
54
|
+
commitMessage: string;
|
|
55
|
+
prTitle: string;
|
|
56
|
+
prDescription: string;
|
|
57
|
+
error?: string;
|
|
58
|
+
usage?: {
|
|
59
|
+
inputTokens: number;
|
|
60
|
+
outputTokens: number;
|
|
61
|
+
costUSD: number;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export interface PlanningResult {
|
|
65
|
+
success: boolean;
|
|
66
|
+
plan?: ImplementationPlan;
|
|
67
|
+
error?: string;
|
|
68
|
+
usage?: {
|
|
69
|
+
inputTokens: number;
|
|
70
|
+
outputTokens: number;
|
|
71
|
+
costUSD: number;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export type AIService = 'claude' | 'openai' | 'gemini';
|
|
75
|
+
export interface AIAgentConfig {
|
|
76
|
+
/** The AI service provider */
|
|
77
|
+
service: AIService;
|
|
78
|
+
/** Default model to use */
|
|
79
|
+
model: string;
|
|
80
|
+
/** Display name for UI */
|
|
81
|
+
displayName: string;
|
|
82
|
+
/** Agent type stored in database */
|
|
83
|
+
agentType: string;
|
|
84
|
+
/** Context file to load from repository */
|
|
85
|
+
contextFile: string;
|
|
86
|
+
/** Agent capabilities */
|
|
87
|
+
capabilities: readonly string[];
|
|
88
|
+
}
|
|
89
|
+
export type LogLevel = 'info' | 'warn' | 'error';
|
|
90
|
+
export type Logger = (level: LogLevel, message: string, meta?: Record<string, unknown>) => void;
|
|
91
|
+
export type ProgressCallback = (message: string) => void;
|
|
92
|
+
export interface AstridTask {
|
|
93
|
+
id: string;
|
|
94
|
+
title: string;
|
|
95
|
+
description: string | null;
|
|
96
|
+
priority: number;
|
|
97
|
+
completed: boolean;
|
|
98
|
+
dueDateTime?: string;
|
|
99
|
+
createdAt: string;
|
|
100
|
+
updatedAt: string;
|
|
101
|
+
assigneeId?: string;
|
|
102
|
+
assigneeEmail?: string;
|
|
103
|
+
lists?: Array<{
|
|
104
|
+
id: string;
|
|
105
|
+
name: string;
|
|
106
|
+
githubRepositoryId?: string;
|
|
107
|
+
}>;
|
|
108
|
+
comments?: Array<{
|
|
109
|
+
id: string;
|
|
110
|
+
content: string;
|
|
111
|
+
authorId: string;
|
|
112
|
+
authorEmail?: string;
|
|
113
|
+
createdAt: string;
|
|
114
|
+
}>;
|
|
115
|
+
}
|
|
116
|
+
export interface AstridList {
|
|
117
|
+
id: string;
|
|
118
|
+
name: string;
|
|
119
|
+
description?: string;
|
|
120
|
+
githubRepositoryId?: string;
|
|
121
|
+
}
|
|
122
|
+
/** Context from previous attempts on the same task */
|
|
123
|
+
export interface PreviousTaskContext {
|
|
124
|
+
hasBeenProcessedBefore: boolean;
|
|
125
|
+
previousAttempts: Array<{
|
|
126
|
+
planSummary?: string;
|
|
127
|
+
filesModified?: string[];
|
|
128
|
+
prUrl?: string;
|
|
129
|
+
outcome?: string;
|
|
130
|
+
}>;
|
|
131
|
+
userFeedback: Array<{
|
|
132
|
+
content: string;
|
|
133
|
+
timestamp: string;
|
|
134
|
+
}>;
|
|
135
|
+
systemUnderstanding: string;
|
|
136
|
+
}
|
|
137
|
+
/** Repository context cache entry */
|
|
138
|
+
export interface RepositoryContextCache {
|
|
139
|
+
context: string;
|
|
140
|
+
structure: string;
|
|
141
|
+
timestamp: number;
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Agent Configuration
|
|
3
|
+
*
|
|
4
|
+
* Centralized configuration for AI agent routing.
|
|
5
|
+
* Maps agent emails to their AI service providers.
|
|
6
|
+
*/
|
|
7
|
+
import type { AIService, AIAgentConfig } from '../types/index.js';
|
|
8
|
+
export type { AIService, AIAgentConfig };
|
|
9
|
+
/**
|
|
10
|
+
* Suggested models for each AI service
|
|
11
|
+
* Users can enter any model name, but these are shown as suggestions
|
|
12
|
+
*/
|
|
13
|
+
export declare const SUGGESTED_MODELS: Record<AIService, string[]>;
|
|
14
|
+
/**
|
|
15
|
+
* Default models for each service (first in the suggestions list)
|
|
16
|
+
*/
|
|
17
|
+
export declare const DEFAULT_MODELS: Record<AIService, string>;
|
|
18
|
+
/**
|
|
19
|
+
* AI Agent Registry
|
|
20
|
+
*
|
|
21
|
+
* Maps agent emails to their configuration.
|
|
22
|
+
* All cloud agents load ASTRID.md as their context file.
|
|
23
|
+
*/
|
|
24
|
+
export declare const AI_AGENT_CONFIG: Record<string, AIAgentConfig>;
|
|
25
|
+
/**
|
|
26
|
+
* Get agent configuration by email
|
|
27
|
+
*/
|
|
28
|
+
export declare function getAgentConfig(email: string): AIAgentConfig | null;
|
|
29
|
+
/**
|
|
30
|
+
* Get AI service for an agent email
|
|
31
|
+
* Returns 'claude' as default if email not found
|
|
32
|
+
*/
|
|
33
|
+
export declare function getAgentService(email: string): AIService;
|
|
34
|
+
/**
|
|
35
|
+
* Get the model for an agent email
|
|
36
|
+
*/
|
|
37
|
+
export declare function getAgentModel(email: string): string;
|
|
38
|
+
/**
|
|
39
|
+
* Get the context file for an agent
|
|
40
|
+
*/
|
|
41
|
+
export declare function getAgentContextFile(email: string): string;
|
|
42
|
+
/**
|
|
43
|
+
* Check if an email is a registered AI agent
|
|
44
|
+
*/
|
|
45
|
+
export declare function isRegisteredAgent(email: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Get all registered agent emails
|
|
48
|
+
*/
|
|
49
|
+
export declare function getRegisteredAgentEmails(): string[];
|
|
50
|
+
/**
|
|
51
|
+
* Get all agent configs as an array
|
|
52
|
+
*/
|
|
53
|
+
export declare function getAllAgentConfigs(): Array<AIAgentConfig & {
|
|
54
|
+
email: string;
|
|
55
|
+
}>;
|
|
56
|
+
//# sourceMappingURL=agent-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-config.d.ts","sourceRoot":"","sources":["../../src/utils/agent-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,CAAA;AAExC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAiBxD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAIpD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAyBhD,CAAA;AAEV;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAElE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAExD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAEnD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,KAAK,CAAC,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAK7E"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* AI Agent Configuration
|
|
4
|
+
*
|
|
5
|
+
* Centralized configuration for AI agent routing.
|
|
6
|
+
* Maps agent emails to their AI service providers.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.AI_AGENT_CONFIG = exports.DEFAULT_MODELS = exports.SUGGESTED_MODELS = void 0;
|
|
10
|
+
exports.getAgentConfig = getAgentConfig;
|
|
11
|
+
exports.getAgentService = getAgentService;
|
|
12
|
+
exports.getAgentModel = getAgentModel;
|
|
13
|
+
exports.getAgentContextFile = getAgentContextFile;
|
|
14
|
+
exports.isRegisteredAgent = isRegisteredAgent;
|
|
15
|
+
exports.getRegisteredAgentEmails = getRegisteredAgentEmails;
|
|
16
|
+
exports.getAllAgentConfigs = getAllAgentConfigs;
|
|
17
|
+
/**
|
|
18
|
+
* Suggested models for each AI service
|
|
19
|
+
* Users can enter any model name, but these are shown as suggestions
|
|
20
|
+
*/
|
|
21
|
+
exports.SUGGESTED_MODELS = {
|
|
22
|
+
claude: [
|
|
23
|
+
'claude-sonnet-4-20250514',
|
|
24
|
+
'claude-opus-4-20250514',
|
|
25
|
+
'claude-3-5-sonnet-20241022',
|
|
26
|
+
],
|
|
27
|
+
openai: [
|
|
28
|
+
'gpt-5.2',
|
|
29
|
+
'gpt-5.1-codex-max',
|
|
30
|
+
'gpt-4.1',
|
|
31
|
+
'gpt-4o',
|
|
32
|
+
],
|
|
33
|
+
gemini: [
|
|
34
|
+
'gemini-3-flash-preview',
|
|
35
|
+
'gemini-2.5-flash',
|
|
36
|
+
'gemini-2.0-flash',
|
|
37
|
+
],
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Default models for each service (first in the suggestions list)
|
|
41
|
+
*/
|
|
42
|
+
exports.DEFAULT_MODELS = {
|
|
43
|
+
claude: 'claude-sonnet-4-20250514',
|
|
44
|
+
openai: 'gpt-5.2',
|
|
45
|
+
gemini: 'gemini-3-flash-preview',
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* AI Agent Registry
|
|
49
|
+
*
|
|
50
|
+
* Maps agent emails to their configuration.
|
|
51
|
+
* All cloud agents load ASTRID.md as their context file.
|
|
52
|
+
*/
|
|
53
|
+
exports.AI_AGENT_CONFIG = {
|
|
54
|
+
'claude@astrid.cc': {
|
|
55
|
+
service: 'claude',
|
|
56
|
+
model: 'claude-sonnet-4-20250514',
|
|
57
|
+
displayName: 'Claude AI Agent',
|
|
58
|
+
agentType: 'claude_agent',
|
|
59
|
+
contextFile: 'ASTRID.md',
|
|
60
|
+
capabilities: ['code_generation', 'code_review', 'planning', 'github_operations'],
|
|
61
|
+
},
|
|
62
|
+
'openai-codex@astrid.cc': {
|
|
63
|
+
service: 'openai',
|
|
64
|
+
model: 'gpt-5.2',
|
|
65
|
+
displayName: 'OpenAI Codex Agent',
|
|
66
|
+
agentType: 'openai_agent',
|
|
67
|
+
contextFile: 'ASTRID.md',
|
|
68
|
+
capabilities: ['code_generation', 'code_review', 'planning', 'github_operations'],
|
|
69
|
+
},
|
|
70
|
+
'gemini@astrid.cc': {
|
|
71
|
+
service: 'gemini',
|
|
72
|
+
model: 'gemini-3-flash-preview',
|
|
73
|
+
displayName: 'Gemini AI Agent',
|
|
74
|
+
agentType: 'gemini_agent',
|
|
75
|
+
contextFile: 'ASTRID.md',
|
|
76
|
+
capabilities: ['code_generation', 'code_review', 'planning', 'github_operations'],
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Get agent configuration by email
|
|
81
|
+
*/
|
|
82
|
+
function getAgentConfig(email) {
|
|
83
|
+
return exports.AI_AGENT_CONFIG[email] || null;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get AI service for an agent email
|
|
87
|
+
* Returns 'claude' as default if email not found
|
|
88
|
+
*/
|
|
89
|
+
function getAgentService(email) {
|
|
90
|
+
return exports.AI_AGENT_CONFIG[email]?.service || 'claude';
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get the model for an agent email
|
|
94
|
+
*/
|
|
95
|
+
function getAgentModel(email) {
|
|
96
|
+
return exports.AI_AGENT_CONFIG[email]?.model || 'claude-sonnet-4-20250514';
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get the context file for an agent
|
|
100
|
+
*/
|
|
101
|
+
function getAgentContextFile(email) {
|
|
102
|
+
return exports.AI_AGENT_CONFIG[email]?.contextFile || 'ASTRID.md';
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Check if an email is a registered AI agent
|
|
106
|
+
*/
|
|
107
|
+
function isRegisteredAgent(email) {
|
|
108
|
+
return email in exports.AI_AGENT_CONFIG;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Get all registered agent emails
|
|
112
|
+
*/
|
|
113
|
+
function getRegisteredAgentEmails() {
|
|
114
|
+
return Object.keys(exports.AI_AGENT_CONFIG);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get all agent configs as an array
|
|
118
|
+
*/
|
|
119
|
+
function getAllAgentConfigs() {
|
|
120
|
+
return Object.entries(exports.AI_AGENT_CONFIG).map(([email, config]) => ({
|
|
121
|
+
email,
|
|
122
|
+
...config,
|
|
123
|
+
}));
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=agent-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-config.js","sourceRoot":"","sources":["../../src/utils/agent-config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA2EH,wCAEC;AAMD,0CAEC;AAKD,sCAEC;AAKD,kDAEC;AAKD,8CAEC;AAKD,4DAEC;AAKD,gDAKC;AApHD;;;GAGG;AACU,QAAA,gBAAgB,GAAgC;IAC3D,MAAM,EAAE;QACN,0BAA0B;QAC1B,wBAAwB;QACxB,4BAA4B;KAC7B;IACD,MAAM,EAAE;QACN,SAAS;QACT,mBAAmB;QACnB,SAAS;QACT,QAAQ;KACT;IACD,MAAM,EAAE;QACN,wBAAwB;QACxB,kBAAkB;QAClB,kBAAkB;KACnB;CACF,CAAA;AAED;;GAEG;AACU,QAAA,cAAc,GAA8B;IACvD,MAAM,EAAE,0BAA0B;IAClC,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,wBAAwB;CACjC,CAAA;AAED;;;;;GAKG;AACU,QAAA,eAAe,GAAkC;IAC5D,kBAAkB,EAAE;QAClB,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,iBAAiB;QAC9B,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,WAAW;QACxB,YAAY,EAAE,CAAC,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB,CAAC;KAClF;IACD,wBAAwB,EAAE;QACxB,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,oBAAoB;QACjC,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,WAAW;QACxB,YAAY,EAAE,CAAC,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB,CAAC;KAClF;IACD,kBAAkB,EAAE;QAClB,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,iBAAiB;QAC9B,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,WAAW;QACxB,YAAY,EAAE,CAAC,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB,CAAC;KAClF;CACO,CAAA;AAEV;;GAEG;AACH,SAAgB,cAAc,CAAC,KAAa;IAC1C,OAAO,uBAAe,CAAC,KAAK,CAAC,IAAI,IAAI,CAAA;AACvC,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,KAAa;IAC3C,OAAO,uBAAe,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,QAAQ,CAAA;AACpD,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,uBAAe,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,0BAA0B,CAAA;AACpE,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,KAAa;IAC/C,OAAO,uBAAe,CAAC,KAAK,CAAC,EAAE,WAAW,IAAI,WAAW,CAAA;AAC3D,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,KAAa;IAC7C,OAAO,KAAK,IAAI,uBAAe,CAAA;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB;IACtC,OAAO,MAAM,CAAC,IAAI,CAAC,uBAAe,CAAC,CAAA;AACrC,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB;IAChC,OAAO,MAAM,CAAC,OAAO,CAAC,uBAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,KAAK;QACL,GAAG,MAAM;KACV,CAAC,CAAC,CAAA;AACL,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@gracefultools/astrid-sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "AI agent SDK for automated coding tasks with Claude, OpenAI, and Gemini",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"astrid-agent": "./dist/bin/cli.js"
|
|
9
|
+
},
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"import": "./dist/index.js",
|
|
14
|
+
"require": "./dist/index.js"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist",
|
|
19
|
+
"README.md"
|
|
20
|
+
],
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "tsc",
|
|
23
|
+
"dev": "tsc --watch",
|
|
24
|
+
"clean": "rm -rf dist",
|
|
25
|
+
"prepublishOnly": "npm run clean && npm run build",
|
|
26
|
+
"test": "echo \"No tests yet\" && exit 0"
|
|
27
|
+
},
|
|
28
|
+
"keywords": [
|
|
29
|
+
"ai",
|
|
30
|
+
"agent",
|
|
31
|
+
"claude",
|
|
32
|
+
"openai",
|
|
33
|
+
"gemini",
|
|
34
|
+
"coding",
|
|
35
|
+
"automation",
|
|
36
|
+
"astrid"
|
|
37
|
+
],
|
|
38
|
+
"author": "Astrid",
|
|
39
|
+
"license": "MIT",
|
|
40
|
+
"repository": {
|
|
41
|
+
"type": "git",
|
|
42
|
+
"url": "https://github.com/Graceful-Tools/astrid-res-www.git",
|
|
43
|
+
"directory": "packages/astrid-sdk"
|
|
44
|
+
},
|
|
45
|
+
"homepage": "https://astrid.cc",
|
|
46
|
+
"engines": {
|
|
47
|
+
"node": ">=18.0.0"
|
|
48
|
+
},
|
|
49
|
+
"dependencies": {
|
|
50
|
+
"@anthropic-ai/claude-agent-sdk": "^0.1.0",
|
|
51
|
+
"dotenv": "^16.3.1",
|
|
52
|
+
"glob": "^10.3.10"
|
|
53
|
+
},
|
|
54
|
+
"peerDependencies": {
|
|
55
|
+
"typescript": ">=5.0.0"
|
|
56
|
+
},
|
|
57
|
+
"peerDependenciesMeta": {
|
|
58
|
+
"typescript": {
|
|
59
|
+
"optional": true
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"publishConfig": {
|
|
63
|
+
"access": "public"
|
|
64
|
+
}
|
|
65
|
+
}
|