@a3s-lab/code 0.6.0 → 0.7.1

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 (52) hide show
  1. package/index.d.ts +87 -0
  2. package/index.darwin-arm64.node +0 -0
  3. package/index.darwin-x64.node +0 -0
  4. package/index.js +128 -0
  5. package/index.linux-arm64-gnu.node +0 -0
  6. package/index.linux-arm64-musl.node +0 -0
  7. package/index.linux-x64-gnu.node +0 -0
  8. package/index.linux-x64-musl.node +0 -0
  9. package/package.json +27 -34
  10. package/LICENSE +0 -21
  11. package/README.md +0 -764
  12. package/dist/chat.d.ts +0 -97
  13. package/dist/chat.d.ts.map +0 -1
  14. package/dist/chat.js +0 -179
  15. package/dist/chat.js.map +0 -1
  16. package/dist/client.d.ts +0 -1356
  17. package/dist/client.d.ts.map +0 -1
  18. package/dist/client.js +0 -1014
  19. package/dist/client.js.map +0 -1
  20. package/dist/config.d.ts +0 -106
  21. package/dist/config.d.ts.map +0 -1
  22. package/dist/config.js +0 -142
  23. package/dist/config.js.map +0 -1
  24. package/dist/generate.d.ts +0 -130
  25. package/dist/generate.d.ts.map +0 -1
  26. package/dist/generate.js +0 -283
  27. package/dist/generate.js.map +0 -1
  28. package/dist/index.d.ts +0 -54
  29. package/dist/index.d.ts.map +0 -1
  30. package/dist/index.js +0 -60
  31. package/dist/index.js.map +0 -1
  32. package/dist/message.d.ts +0 -157
  33. package/dist/message.d.ts.map +0 -1
  34. package/dist/message.js +0 -279
  35. package/dist/message.js.map +0 -1
  36. package/dist/openai-compat.d.ts +0 -186
  37. package/dist/openai-compat.d.ts.map +0 -1
  38. package/dist/openai-compat.js +0 -263
  39. package/dist/openai-compat.js.map +0 -1
  40. package/dist/provider.d.ts +0 -64
  41. package/dist/provider.d.ts.map +0 -1
  42. package/dist/provider.js +0 -60
  43. package/dist/provider.js.map +0 -1
  44. package/dist/session.d.ts +0 -573
  45. package/dist/session.d.ts.map +0 -1
  46. package/dist/session.js +0 -1153
  47. package/dist/session.js.map +0 -1
  48. package/dist/tool.d.ts +0 -106
  49. package/dist/tool.d.ts.map +0 -1
  50. package/dist/tool.js +0 -71
  51. package/dist/tool.js.map +0 -1
  52. package/proto/code_agent.proto +0 -1851
@@ -1,263 +0,0 @@
1
- /**
2
- * OpenAI-Compatible Types and Conversion Layer
3
- *
4
- * This module provides OpenAI-compatible type definitions and conversion
5
- * functions to allow seamless integration with OpenAI-style APIs.
6
- *
7
- * OpenAI Message Format:
8
- * {
9
- * role: "user" | "assistant" | "system" | "tool",
10
- * content: string | ContentPart[],
11
- * name?: string,
12
- * tool_calls?: ToolCall[],
13
- * tool_call_id?: string,
14
- * }
15
- */
16
- // ============================================================================
17
- // Conversion Functions: OpenAI -> A3S
18
- // ============================================================================
19
- /**
20
- * Convert OpenAI role to A3S MessageRole
21
- * Since proto now uses OpenAI-compatible string roles, this is a simple passthrough
22
- */
23
- export function openAIRoleToA3S(role) {
24
- switch (role) {
25
- case 'user':
26
- return 'user';
27
- case 'assistant':
28
- return 'assistant';
29
- case 'system':
30
- return 'system';
31
- case 'tool':
32
- case 'function':
33
- return 'tool';
34
- default:
35
- return 'user';
36
- }
37
- }
38
- /**
39
- * Convert OpenAI message to A3S Message
40
- */
41
- export function openAIMessageToA3S(msg) {
42
- let content;
43
- if (typeof msg.content === 'string') {
44
- content = msg.content;
45
- }
46
- else if (Array.isArray(msg.content)) {
47
- // Extract text from content parts
48
- content = msg.content
49
- .filter((part) => part.type === 'text')
50
- .map(part => part.text)
51
- .join('\n');
52
- }
53
- else {
54
- content = '';
55
- }
56
- return {
57
- role: openAIRoleToA3S(msg.role),
58
- content,
59
- metadata: msg.name ? { name: msg.name } : undefined,
60
- };
61
- }
62
- /**
63
- * Convert array of OpenAI messages to A3S Messages
64
- */
65
- export function openAIMessagesToA3S(messages) {
66
- return messages.map(openAIMessageToA3S);
67
- }
68
- /**
69
- * Convert OpenAI tool call to A3S ToolCall
70
- */
71
- export function openAIToolCallToA3S(toolCall) {
72
- return {
73
- id: toolCall.id,
74
- name: toolCall.function.name,
75
- arguments: toolCall.function.arguments,
76
- };
77
- }
78
- // ============================================================================
79
- // Conversion Functions: A3S -> OpenAI
80
- // ============================================================================
81
- /**
82
- * Convert A3S MessageRole to OpenAI role
83
- * Since proto now uses OpenAI-compatible string roles, this is a simple passthrough
84
- */
85
- export function a3sRoleToOpenAI(role) {
86
- switch (role) {
87
- case 'user':
88
- return 'user';
89
- case 'assistant':
90
- return 'assistant';
91
- case 'system':
92
- return 'system';
93
- case 'tool':
94
- return 'tool';
95
- default:
96
- return 'user';
97
- }
98
- }
99
- /**
100
- * Convert A3S Message to OpenAI message
101
- */
102
- export function a3sMessageToOpenAI(msg) {
103
- const openAIMsg = {
104
- role: a3sRoleToOpenAI(msg.role),
105
- content: msg.content,
106
- };
107
- if (msg.metadata?.name) {
108
- openAIMsg.name = msg.metadata.name;
109
- }
110
- return openAIMsg;
111
- }
112
- /**
113
- * Convert A3S ToolCall to OpenAI tool call
114
- */
115
- export function a3sToolCallToOpenAI(toolCall) {
116
- return {
117
- id: toolCall.id,
118
- type: 'function',
119
- function: {
120
- name: toolCall.name,
121
- arguments: toolCall.arguments,
122
- },
123
- };
124
- }
125
- /**
126
- * Convert A3S FinishReason to OpenAI finish_reason
127
- * Since proto now uses OpenAI-compatible string values, this is a simple passthrough
128
- */
129
- export function a3sFinishReasonToOpenAI(reason) {
130
- switch (reason) {
131
- case 'stop':
132
- return 'stop';
133
- case 'length':
134
- return 'length';
135
- case 'tool_calls':
136
- return 'tool_calls';
137
- case 'content_filter':
138
- return 'content_filter';
139
- default:
140
- return null;
141
- }
142
- }
143
- /**
144
- * Convert A3S Usage to OpenAI usage
145
- */
146
- export function a3sUsageToOpenAI(usage) {
147
- if (!usage)
148
- return undefined;
149
- return {
150
- prompt_tokens: usage.promptTokens || 0,
151
- completion_tokens: usage.completionTokens || 0,
152
- total_tokens: usage.totalTokens || 0,
153
- };
154
- }
155
- /**
156
- * Convert A3S GenerateResponse to OpenAI ChatCompletion
157
- */
158
- export function a3sResponseToOpenAI(response, model = 'unknown') {
159
- const message = response.message
160
- ? a3sMessageToOpenAI(response.message)
161
- : { role: 'assistant', content: '' };
162
- // Add tool calls if present
163
- if (response.toolCalls && response.toolCalls.length > 0) {
164
- message.tool_calls = response.toolCalls.map(a3sToolCallToOpenAI);
165
- }
166
- return {
167
- id: `chatcmpl-${response.sessionId}`,
168
- object: 'chat.completion',
169
- created: Math.floor(Date.now() / 1000),
170
- model,
171
- choices: [
172
- {
173
- index: 0,
174
- message,
175
- finish_reason: a3sFinishReasonToOpenAI(response.finishReason),
176
- },
177
- ],
178
- usage: a3sUsageToOpenAI(response.usage),
179
- };
180
- }
181
- /**
182
- * Convert A3S GenerateChunk to OpenAI ChatCompletionChunk
183
- * Since proto now uses OpenAI-compatible string values, conversion is simplified
184
- */
185
- export function a3sChunkToOpenAI(chunk, model = 'unknown') {
186
- const delta = {};
187
- if (chunk.type === 'content' && chunk.content) {
188
- delta.content = chunk.content;
189
- }
190
- if (chunk.type === 'tool_call' && chunk.toolCall) {
191
- delta.tool_calls = [
192
- {
193
- id: chunk.toolCall.id,
194
- type: 'function',
195
- function: {
196
- name: chunk.toolCall.name,
197
- arguments: chunk.toolCall.arguments,
198
- },
199
- },
200
- ];
201
- }
202
- let finishReason = null;
203
- if (chunk.type === 'done' || chunk.finishReason) {
204
- finishReason = chunk.finishReason ? a3sFinishReasonToOpenAI(chunk.finishReason) : 'stop';
205
- }
206
- return {
207
- id: `chatcmpl-${chunk.sessionId}`,
208
- object: 'chat.completion.chunk',
209
- created: Math.floor(Date.now() / 1000),
210
- model,
211
- choices: [
212
- {
213
- index: 0,
214
- delta,
215
- finish_reason: finishReason,
216
- },
217
- ],
218
- };
219
- }
220
- // ============================================================================
221
- // Helper Functions
222
- // ============================================================================
223
- /**
224
- * Check if a message uses OpenAI format (lowercase role)
225
- * Since proto now uses OpenAI-compatible string roles, all messages are in OpenAI format
226
- */
227
- export function isOpenAIFormat(msg) {
228
- const role = msg.role;
229
- // Both A3S and OpenAI now use the same lowercase role strings
230
- return ['user', 'assistant', 'system', 'tool', 'function'].includes(role);
231
- }
232
- /**
233
- * Normalize message to A3S format (accepts both OpenAI and A3S formats)
234
- * Since proto now uses OpenAI-compatible string roles, this is mostly a passthrough
235
- */
236
- export function normalizeMessage(msg) {
237
- if (isOpenAIFormat(msg)) {
238
- return openAIMessageToA3S(msg);
239
- }
240
- return msg;
241
- }
242
- /**
243
- * Normalize array of messages to A3S format
244
- */
245
- export function normalizeMessages(messages) {
246
- return messages.map(normalizeMessage);
247
- }
248
- // ============================================================================
249
- // Type Guards
250
- // ============================================================================
251
- /**
252
- * Type guard for OpenAI text content
253
- */
254
- export function isTextContent(content) {
255
- return content.type === 'text';
256
- }
257
- /**
258
- * Type guard for OpenAI image content
259
- */
260
- export function isImageContent(content) {
261
- return content.type === 'image_url';
262
- }
263
- //# sourceMappingURL=openai-compat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-compat.js","sourceRoot":"","sources":["../ts/openai-compat.ts"],"names":[],"mappings":"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"}
@@ -1,64 +0,0 @@
1
- /**
2
- * Provider Factory
3
- *
4
- * Vercel AI SDK-style provider abstraction for A3S Code.
5
- *
6
- * @example
7
- * ```typescript
8
- * import { createProvider } from '@a3s-lab/code';
9
- *
10
- * const openai = createProvider({ name: 'openai', apiKey: 'sk-xxx' });
11
- * const kimi = createProvider({ name: 'kimi', apiKey: 'sk-xxx', baseUrl: 'http://xxx/v1' });
12
- *
13
- * // Use as model selector
14
- * const model = openai('gpt-4o');
15
- * const model2 = kimi('k2.5');
16
- * ```
17
- */
18
- import type { LLMConfig } from './client.js';
19
- /**
20
- * Provider configuration
21
- */
22
- export interface ProviderOptions {
23
- /** Provider name (e.g., 'openai', 'anthropic', 'kimi') */
24
- name: string;
25
- /** API key */
26
- apiKey: string;
27
- /** Base URL override */
28
- baseUrl?: string;
29
- }
30
- /**
31
- * Model reference — a resolved provider + model pair
32
- */
33
- export interface ModelRef {
34
- provider: string;
35
- model: string;
36
- apiKey: string;
37
- baseUrl?: string;
38
- }
39
- /**
40
- * Model selector function returned by createProvider()
41
- */
42
- export type ModelSelector = (modelId: string) => ModelRef;
43
- /**
44
- * Create a provider factory that returns model references.
45
- *
46
- * @example
47
- * ```typescript
48
- * const openai = createProvider({ name: 'openai', apiKey: 'sk-xxx' });
49
- * const model = openai('gpt-4o');
50
- * ```
51
- */
52
- export declare function createProvider(options: ProviderOptions): ModelSelector;
53
- /**
54
- * Shorthand: create a provider and select a model in one call.
55
- *
56
- * @example
57
- * ```typescript
58
- * const model = model({ provider: 'openai', model: 'gpt-4o', apiKey: 'sk-xxx' });
59
- * ```
60
- */
61
- export declare function model(config: LLMConfig): ModelRef;
62
- /** Convert ModelRef to LLMConfig for the underlying client */
63
- export declare function modelRefToLLMConfig(ref: ModelRef): LLMConfig;
64
- //# sourceMappingURL=provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../ts/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,QAAQ,CAAC;AAE1D;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,aAAa,CAOtE;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAOjD;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,QAAQ,GAAG,SAAS,CAO5D"}
package/dist/provider.js DELETED
@@ -1,60 +0,0 @@
1
- /**
2
- * Provider Factory
3
- *
4
- * Vercel AI SDK-style provider abstraction for A3S Code.
5
- *
6
- * @example
7
- * ```typescript
8
- * import { createProvider } from '@a3s-lab/code';
9
- *
10
- * const openai = createProvider({ name: 'openai', apiKey: 'sk-xxx' });
11
- * const kimi = createProvider({ name: 'kimi', apiKey: 'sk-xxx', baseUrl: 'http://xxx/v1' });
12
- *
13
- * // Use as model selector
14
- * const model = openai('gpt-4o');
15
- * const model2 = kimi('k2.5');
16
- * ```
17
- */
18
- /**
19
- * Create a provider factory that returns model references.
20
- *
21
- * @example
22
- * ```typescript
23
- * const openai = createProvider({ name: 'openai', apiKey: 'sk-xxx' });
24
- * const model = openai('gpt-4o');
25
- * ```
26
- */
27
- export function createProvider(options) {
28
- return (modelId) => ({
29
- provider: options.name,
30
- model: modelId,
31
- apiKey: options.apiKey,
32
- baseUrl: options.baseUrl,
33
- });
34
- }
35
- /**
36
- * Shorthand: create a provider and select a model in one call.
37
- *
38
- * @example
39
- * ```typescript
40
- * const model = model({ provider: 'openai', model: 'gpt-4o', apiKey: 'sk-xxx' });
41
- * ```
42
- */
43
- export function model(config) {
44
- return {
45
- provider: config.provider,
46
- model: config.model,
47
- apiKey: config.apiKey || '',
48
- baseUrl: config.baseUrl,
49
- };
50
- }
51
- /** Convert ModelRef to LLMConfig for the underlying client */
52
- export function modelRefToLLMConfig(ref) {
53
- return {
54
- provider: ref.provider,
55
- model: ref.model,
56
- apiKey: ref.apiKey,
57
- baseUrl: ref.baseUrl,
58
- };
59
- }
60
- //# sourceMappingURL=provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../ts/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA+BH;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,OAAwB;IACrD,OAAO,CAAC,OAAe,EAAY,EAAE,CAAC,CAAC;QACrC,QAAQ,EAAE,OAAO,CAAC,IAAI;QACtB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,KAAK,CAAC,MAAiB;IACrC,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,mBAAmB,CAAC,GAAa;IAC/C,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC;AACJ,CAAC"}