@gugacoder/agentic-sdk 0.2.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 (129) hide show
  1. package/dist/agent.d.ts +2 -0
  2. package/dist/agent.js +463 -0
  3. package/dist/context/compaction.d.ts +27 -0
  4. package/dist/context/compaction.js +219 -0
  5. package/dist/context/models.d.ts +6 -0
  6. package/dist/context/models.js +41 -0
  7. package/dist/context/tokenizer.d.ts +5 -0
  8. package/dist/context/tokenizer.js +11 -0
  9. package/dist/context/usage.d.ts +11 -0
  10. package/dist/context/usage.js +49 -0
  11. package/dist/display-schemas.d.ts +1865 -0
  12. package/dist/display-schemas.js +219 -0
  13. package/dist/index.d.ts +38 -0
  14. package/dist/index.js +28 -0
  15. package/dist/middleware/logging.d.ts +2 -0
  16. package/dist/middleware/logging.js +32 -0
  17. package/dist/prompts/assembly.d.ts +13 -0
  18. package/dist/prompts/assembly.js +229 -0
  19. package/dist/providers.d.ts +19 -0
  20. package/dist/providers.js +44 -0
  21. package/dist/proxy.d.ts +2 -0
  22. package/dist/proxy.js +103 -0
  23. package/dist/schemas.d.ts +228 -0
  24. package/dist/schemas.js +51 -0
  25. package/dist/session.d.ts +7 -0
  26. package/dist/session.js +102 -0
  27. package/dist/structured.d.ts +18 -0
  28. package/dist/structured.js +38 -0
  29. package/dist/tool-repair.d.ts +21 -0
  30. package/dist/tool-repair.js +72 -0
  31. package/dist/tools/api-spec.d.ts +4 -0
  32. package/dist/tools/api-spec.js +123 -0
  33. package/dist/tools/apply-patch.d.ts +484 -0
  34. package/dist/tools/apply-patch.js +157 -0
  35. package/dist/tools/ask-user.d.ts +14 -0
  36. package/dist/tools/ask-user.js +27 -0
  37. package/dist/tools/bash.d.ts +550 -0
  38. package/dist/tools/bash.js +43 -0
  39. package/dist/tools/batch.d.ts +13 -0
  40. package/dist/tools/batch.js +84 -0
  41. package/dist/tools/brave-search.d.ts +6 -0
  42. package/dist/tools/brave-search.js +19 -0
  43. package/dist/tools/code-search.d.ts +20 -0
  44. package/dist/tools/code-search.js +42 -0
  45. package/dist/tools/diagnostics.d.ts +4 -0
  46. package/dist/tools/diagnostics.js +69 -0
  47. package/dist/tools/display.d.ts +483 -0
  48. package/dist/tools/display.js +77 -0
  49. package/dist/tools/edit.d.ts +682 -0
  50. package/dist/tools/edit.js +47 -0
  51. package/dist/tools/glob.d.ts +4 -0
  52. package/dist/tools/glob.js +42 -0
  53. package/dist/tools/grep.d.ts +6 -0
  54. package/dist/tools/grep.js +69 -0
  55. package/dist/tools/http-request.d.ts +7 -0
  56. package/dist/tools/http-request.js +98 -0
  57. package/dist/tools/index.d.ts +1611 -0
  58. package/dist/tools/index.js +46 -0
  59. package/dist/tools/job-tools.d.ts +24 -0
  60. package/dist/tools/job-tools.js +67 -0
  61. package/dist/tools/list-dir.d.ts +5 -0
  62. package/dist/tools/list-dir.js +79 -0
  63. package/dist/tools/multi-edit.d.ts +814 -0
  64. package/dist/tools/multi-edit.js +57 -0
  65. package/dist/tools/read.d.ts +5 -0
  66. package/dist/tools/read.js +33 -0
  67. package/dist/tools/task.d.ts +21 -0
  68. package/dist/tools/task.js +51 -0
  69. package/dist/tools/todo.d.ts +14 -0
  70. package/dist/tools/todo.js +60 -0
  71. package/dist/tools/web-fetch.d.ts +4 -0
  72. package/dist/tools/web-fetch.js +126 -0
  73. package/dist/tools/web-search.d.ts +22 -0
  74. package/dist/tools/web-search.js +48 -0
  75. package/dist/tools/write.d.ts +550 -0
  76. package/dist/tools/write.js +30 -0
  77. package/dist/types.d.ts +201 -0
  78. package/dist/types.js +1 -0
  79. package/package.json +43 -0
  80. package/src/agent.ts +520 -0
  81. package/src/context/compaction.ts +265 -0
  82. package/src/context/models.ts +42 -0
  83. package/src/context/tokenizer.ts +12 -0
  84. package/src/context/usage.ts +65 -0
  85. package/src/display-schemas.ts +276 -0
  86. package/src/index.ts +43 -0
  87. package/src/middleware/logging.ts +37 -0
  88. package/src/prompts/assembly.ts +263 -0
  89. package/src/prompts/identity.md +10 -0
  90. package/src/prompts/patterns.md +7 -0
  91. package/src/prompts/safety.md +7 -0
  92. package/src/prompts/tool-guide.md +9 -0
  93. package/src/prompts/tools/bash.md +7 -0
  94. package/src/prompts/tools/edit.md +7 -0
  95. package/src/prompts/tools/glob.md +7 -0
  96. package/src/prompts/tools/grep.md +7 -0
  97. package/src/prompts/tools/read.md +7 -0
  98. package/src/prompts/tools/write.md +7 -0
  99. package/src/providers.ts +58 -0
  100. package/src/proxy.ts +101 -0
  101. package/src/schemas.ts +58 -0
  102. package/src/session.ts +110 -0
  103. package/src/structured.ts +65 -0
  104. package/src/tool-repair.ts +92 -0
  105. package/src/tools/api-spec.ts +158 -0
  106. package/src/tools/apply-patch.ts +188 -0
  107. package/src/tools/ask-user.ts +40 -0
  108. package/src/tools/bash.ts +51 -0
  109. package/src/tools/batch.ts +103 -0
  110. package/src/tools/brave-search.ts +24 -0
  111. package/src/tools/code-search.ts +69 -0
  112. package/src/tools/diagnostics.ts +93 -0
  113. package/src/tools/display.ts +105 -0
  114. package/src/tools/edit.ts +55 -0
  115. package/src/tools/glob.ts +46 -0
  116. package/src/tools/grep.ts +68 -0
  117. package/src/tools/http-request.ts +103 -0
  118. package/src/tools/index.ts +48 -0
  119. package/src/tools/job-tools.ts +84 -0
  120. package/src/tools/list-dir.ts +102 -0
  121. package/src/tools/multi-edit.ts +65 -0
  122. package/src/tools/read.ts +40 -0
  123. package/src/tools/task.ts +71 -0
  124. package/src/tools/todo.ts +82 -0
  125. package/src/tools/web-fetch.ts +155 -0
  126. package/src/tools/web-search.ts +75 -0
  127. package/src/tools/write.ts +34 -0
  128. package/src/types.ts +145 -0
  129. package/tsconfig.json +17 -0
@@ -0,0 +1,201 @@
1
+ import type { LanguageModelMiddleware } from "ai";
2
+ export interface McpServerConfig {
3
+ name: string;
4
+ transport: {
5
+ type: "http";
6
+ url: string;
7
+ headers?: Record<string, string>;
8
+ } | {
9
+ type: "stdio";
10
+ command: string;
11
+ args?: string[];
12
+ };
13
+ }
14
+ export type AiAgentEvent = {
15
+ type: "init";
16
+ sessionId: string;
17
+ } | {
18
+ type: "mcp_connected";
19
+ servers: string[];
20
+ } | {
21
+ type: "text";
22
+ content: string;
23
+ } | {
24
+ type: "reasoning";
25
+ content: string;
26
+ } | {
27
+ type: "tool-call";
28
+ toolCallId: string;
29
+ toolName: string;
30
+ args: Record<string, unknown>;
31
+ } | {
32
+ type: "tool-result";
33
+ toolCallId: string;
34
+ toolName: string;
35
+ result: unknown;
36
+ } | {
37
+ type: "result";
38
+ content: string;
39
+ } | {
40
+ type: "usage";
41
+ usage: AiUsageData;
42
+ } | {
43
+ type: "ask_user";
44
+ question: string;
45
+ options?: string[];
46
+ } | {
47
+ type: "todo_update";
48
+ todos: AiTodoItem[];
49
+ } | {
50
+ type: "context_status";
51
+ context: ContextUsage & {
52
+ compacted: boolean;
53
+ };
54
+ } | {
55
+ type: "step_finish";
56
+ step: number;
57
+ toolCalls: string[];
58
+ finishReason: string;
59
+ } | {
60
+ type: "mcp_error";
61
+ server: string;
62
+ error: string;
63
+ };
64
+ export interface AiTodoItem {
65
+ id: string;
66
+ content: string;
67
+ status: "pending" | "in_progress" | "completed";
68
+ priority: "high" | "medium" | "low";
69
+ }
70
+ export interface AiUsageData {
71
+ inputTokens: number;
72
+ outputTokens: number;
73
+ cacheReadInputTokens: number;
74
+ cacheCreationInputTokens: number;
75
+ totalCostUsd: number;
76
+ numTurns: number;
77
+ durationMs: number;
78
+ durationApiMs: number;
79
+ stopReason: string;
80
+ /** Latencia ate o primeiro token (ms). Disponivel apenas com telemetria. */
81
+ timeToFirstTokenMs?: number;
82
+ /** Breakdown de uso por step. Disponivel apenas com telemetria. */
83
+ steps?: Array<{
84
+ stepNumber: number;
85
+ toolCalls: string[];
86
+ inputTokens: number;
87
+ outputTokens: number;
88
+ durationMs: number;
89
+ }>;
90
+ }
91
+ export interface ContextUsage {
92
+ model: string;
93
+ contextWindow: number;
94
+ systemPrompt: number;
95
+ toolDefinitions: number;
96
+ messages: number;
97
+ used: number;
98
+ free: number;
99
+ usagePercent: number;
100
+ compactThreshold: number;
101
+ willCompact: boolean;
102
+ }
103
+ export interface PrepareStepContext {
104
+ /** Current step number (0-indexed) */
105
+ stepNumber: number;
106
+ /** Total number of steps executed so far */
107
+ stepCount: number;
108
+ /** Tool calls from the previous step (empty on first step) */
109
+ previousToolCalls: string[];
110
+ }
111
+ export interface PrepareStepResult {
112
+ /** Switch model for this step */
113
+ model?: string;
114
+ /** Filter available tools for this step (tool names) */
115
+ activeTools?: string[];
116
+ /** Force tool choice: "auto" | "required" | "none" | specific tool */
117
+ toolChoice?: "auto" | "required" | "none" | {
118
+ type: "tool";
119
+ toolName: string;
120
+ };
121
+ }
122
+ export interface AiTelemetryOptions {
123
+ /** Habilita tracing OpenTelemetry. Default: false */
124
+ enabled: boolean;
125
+ /** Identificador da funcao nos spans (ex: "ai-agent", "heartbeat") */
126
+ functionId?: string;
127
+ /** Metadata adicional propagada nos spans */
128
+ metadata?: Record<string, string>;
129
+ }
130
+ export interface AiAgentOptions {
131
+ model: string;
132
+ apiKey: string;
133
+ /** Provider name (e.g. "openrouter", "groq"). Default: "openrouter" */
134
+ provider?: string;
135
+ /** Additional provider configs by name (e.g. { groq: { baseURL, apiKey } }) */
136
+ providers?: Record<string, {
137
+ baseURL: string;
138
+ apiKey: string;
139
+ }>;
140
+ sessionId?: string;
141
+ sessionDir?: string;
142
+ maxSteps?: number;
143
+ system?: string | {
144
+ append: string;
145
+ };
146
+ /** Working directory for project context discovery (AGENTS.md/CLAUDE.md). Defaults to process.cwd(). */
147
+ cwd?: string;
148
+ /** Callback invoked when the agent uses the AskUser tool. Return the user's answer. */
149
+ onAskUser?: (question: string, options?: string[]) => Promise<string>;
150
+ /** Callback invoked when the agent uses the WebSearch tool. Return search results. */
151
+ onWebSearch?: (query: string, numResults: number) => Promise<Array<{
152
+ title: string;
153
+ url: string;
154
+ snippet: string;
155
+ }>>;
156
+ /** Callback invoked when the agent uses the CodeSearch tool. Return code examples and documentation. */
157
+ onCodeSearch?: (query: string) => Promise<Array<{
158
+ title: string;
159
+ url: string;
160
+ content: string;
161
+ }>>;
162
+ /** MCP servers to connect to. Tools from these servers are merged with codingTools. */
163
+ mcpServers?: McpServerConfig[];
164
+ /** Extra Vercel AI SDK tools to merge. Useful for in-process tools that aren't MCP servers. */
165
+ tools?: Record<string, any>;
166
+ /** Override context window size (tokens) for the model. Takes precedence over the built-in model map. */
167
+ contextWindow?: number;
168
+ /** Usage percentage (0-1) at which automatic compaction triggers. Default: 0.65 */
169
+ compactThreshold?: number;
170
+ /** Disable automatic context compaction. Default: false */
171
+ disableCompaction?: boolean;
172
+ /** Custom stop condition. Complements maxSteps — whichever triggers first. */
173
+ stopWhen?: (event: {
174
+ type: "step_finish";
175
+ step: number;
176
+ toolCalls: string[];
177
+ finishReason: string;
178
+ }) => boolean;
179
+ /** Callback executed before each step. Returns overrides for model, tools, toolChoice. */
180
+ prepareStep?: (context: PrepareStepContext) => PrepareStepResult | undefined;
181
+ /** Middleware pipeline applied to the model. Executed in array order. */
182
+ middleware?: LanguageModelMiddleware[];
183
+ /** Configuracao de telemetria OpenTelemetry */
184
+ telemetry?: AiTelemetryOptions;
185
+ /** Aliases de modelo customizados: nome amigavel → model ID completo (ex: { fast: "anthropic/claude-haiku-4.5" }) */
186
+ modelAliases?: Record<string, string>;
187
+ /** Habilita reparo automatico de tool calls malformadas. Default: true */
188
+ repairToolCalls?: boolean;
189
+ /** Maximo de tentativas de reparo por tool call. Default: 1 */
190
+ maxRepairAttempts?: number;
191
+ /** Habilita reasoning (extended thinking) do modelo. true usa budget de 5000 tokens; objeto permite especificar budgetTokens. */
192
+ reasoning?: boolean | {
193
+ budgetTokens: number;
194
+ };
195
+ /** Metadados do backbone anexados como _meta na user message */
196
+ messageMeta?: Record<string, unknown>;
197
+ /** Content parts para user message (substitui prompt como content quando presente) */
198
+ contentParts?: unknown[];
199
+ /** Desabilita display tools. Default: false (display tools habilitadas) */
200
+ disableDisplayTools?: boolean;
201
+ }
package/dist/types.js ADDED
@@ -0,0 +1 @@
1
+ export {};
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@gugacoder/agentic-sdk",
3
+ "version": "0.2.0",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ }
12
+ },
13
+ "scripts": {
14
+ "build": "tsc",
15
+ "dev": "tsc --watch"
16
+ },
17
+ "dependencies": {
18
+ "@ai-sdk/groq": "^3.0.31",
19
+ "@ai-sdk/mcp": "^1.0.22",
20
+ "@ai-sdk/openai-compatible": "^2",
21
+ "ai": "^6",
22
+ "fast-glob": "^3",
23
+ "js-tiktoken": "^1.0.21",
24
+ "zod": "^3"
25
+ },
26
+ "peerDependencies": {
27
+ "@opentelemetry/api": "^1"
28
+ },
29
+ "peerDependenciesMeta": {
30
+ "@opentelemetry/api": {
31
+ "optional": true
32
+ }
33
+ },
34
+ "devDependencies": {
35
+ "@types/node": "^22",
36
+ "typescript": "^5"
37
+ },
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "git@github.com:codrstudio/agentic-sdk.git"
41
+ },
42
+ "license": "MIT"
43
+ }