@frontmcp/plugin-codecall 0.0.1 → 0.7.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 (62) hide show
  1. package/codecall.plugin.d.ts +42 -0
  2. package/codecall.plugin.d.ts.map +1 -0
  3. package/codecall.symbol.d.ts +107 -0
  4. package/codecall.symbol.d.ts.map +1 -0
  5. package/codecall.types.d.ts +353 -0
  6. package/codecall.types.d.ts.map +1 -0
  7. package/errors/index.d.ts +2 -0
  8. package/errors/index.d.ts.map +1 -0
  9. package/errors/tool-call.errors.d.ts +80 -0
  10. package/errors/tool-call.errors.d.ts.map +1 -0
  11. package/esm/index.mjs +2625 -0
  12. package/esm/package.json +59 -0
  13. package/index.d.ts +3 -0
  14. package/index.d.ts.map +1 -0
  15. package/index.js +2668 -0
  16. package/package.json +1 -1
  17. package/providers/code-call.config.d.ts +30 -0
  18. package/providers/code-call.config.d.ts.map +1 -0
  19. package/security/index.d.ts +3 -0
  20. package/security/index.d.ts.map +1 -0
  21. package/security/self-reference-guard.d.ts +33 -0
  22. package/security/self-reference-guard.d.ts.map +1 -0
  23. package/security/tool-access-control.service.d.ts +105 -0
  24. package/security/tool-access-control.service.d.ts.map +1 -0
  25. package/services/audit-logger.service.d.ts +187 -0
  26. package/services/audit-logger.service.d.ts.map +1 -0
  27. package/services/enclave.service.d.ts +63 -0
  28. package/services/enclave.service.d.ts.map +1 -0
  29. package/services/error-enrichment.service.d.ts +95 -0
  30. package/services/error-enrichment.service.d.ts.map +1 -0
  31. package/services/index.d.ts +7 -0
  32. package/services/index.d.ts.map +1 -0
  33. package/services/output-sanitizer.d.ts +87 -0
  34. package/services/output-sanitizer.d.ts.map +1 -0
  35. package/services/synonym-expansion.service.d.ts +67 -0
  36. package/services/synonym-expansion.service.d.ts.map +1 -0
  37. package/services/tool-search.service.d.ts +196 -0
  38. package/services/tool-search.service.d.ts.map +1 -0
  39. package/tools/describe.schema.d.ts +29 -0
  40. package/tools/describe.schema.d.ts.map +1 -0
  41. package/tools/describe.tool.d.ts +36 -0
  42. package/tools/describe.tool.d.ts.map +1 -0
  43. package/tools/execute.schema.d.ts +116 -0
  44. package/tools/execute.schema.d.ts.map +1 -0
  45. package/tools/execute.tool.d.ts +6 -0
  46. package/tools/execute.tool.d.ts.map +1 -0
  47. package/tools/index.d.ts +5 -0
  48. package/tools/index.d.ts.map +1 -0
  49. package/tools/invoke.schema.d.ts +105 -0
  50. package/tools/invoke.schema.d.ts.map +1 -0
  51. package/tools/invoke.tool.d.ts +14 -0
  52. package/tools/invoke.tool.d.ts.map +1 -0
  53. package/tools/search.schema.d.ts +31 -0
  54. package/tools/search.schema.d.ts.map +1 -0
  55. package/tools/search.tool.d.ts +6 -0
  56. package/tools/search.tool.d.ts.map +1 -0
  57. package/utils/describe.utils.d.ts +87 -0
  58. package/utils/describe.utils.d.ts.map +1 -0
  59. package/utils/index.d.ts +3 -0
  60. package/utils/index.d.ts.map +1 -0
  61. package/utils/mcp-result.d.ts +7 -0
  62. package/utils/mcp-result.d.ts.map +1 -0
@@ -0,0 +1,42 @@
1
+ import { DynamicPlugin, FlowCtxOf, ProviderType } from '@frontmcp/sdk';
2
+ import { CodeCallPluginOptions, CodeCallPluginOptionsInput } from './codecall.types';
3
+ export default class CodeCallPlugin extends DynamicPlugin<CodeCallPluginOptions, CodeCallPluginOptionsInput> {
4
+ options: CodeCallPluginOptions;
5
+ constructor(options?: CodeCallPluginOptionsInput);
6
+ /**
7
+ * Dynamic providers allow you to configure the plugin with custom options
8
+ * without touching the plugin decorator.
9
+ */
10
+ static dynamicProviders(options: CodeCallPluginOptionsInput): ProviderType[];
11
+ /**
12
+ * Hook into list_tools to enforce CodeCall modes:
13
+ *
14
+ * Modes:
15
+ * - codecall_only: Hide all tools from list_tools except CodeCall meta-tools.
16
+ * All other tools must be discovered via codecall:search.
17
+ * - codecall_opt_in: Show all tools in list_tools. Tools opt-in to CodeCall via metadata.
18
+ * - metadata_driven: Use per-tool metadata.codecall to control visibility in list_tools.
19
+ *
20
+ * CodeCall meta-tools (codecall:search, codecall:describe, codecall:execute, codecall:invoke)
21
+ * are ALWAYS visible regardless of mode.
22
+ */
23
+ adjustListTools(flowCtx: FlowCtxOf<'tools:list-tools'>): Promise<void>;
24
+ /**
25
+ * Determine if a tool should be visible in list_tools based on mode.
26
+ *
27
+ * @param tool - The tool entry to check
28
+ * @param mode - The current CodeCall mode
29
+ * @returns true if tool should be visible
30
+ */
31
+ private shouldShowInListTools;
32
+ /**
33
+ * Check if a tool is a CodeCall meta-tool.
34
+ * CodeCall meta-tools always remain visible.
35
+ */
36
+ private isCodeCallTool;
37
+ /**
38
+ * Extract CodeCall-specific metadata from a tool.
39
+ */
40
+ private getCodeCallMetadata;
41
+ }
42
+ //# sourceMappingURL=codecall.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codecall.plugin.d.ts","sourceRoot":"","sources":["../src/codecall.plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAyB,YAAY,EAAyB,MAAM,eAAe,CAAC;AAErH,OAAO,EAEL,qBAAqB,EACrB,0BAA0B,EAG3B,MAAM,kBAAkB,CAAC;AAgB1B,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;IAC1G,OAAO,EAAE,qBAAqB,CAAC;gBAEnB,OAAO,GAAE,0BAA+B;IAOpD;;;OAGG;WACa,gBAAgB,CAAC,OAAO,EAAE,0BAA0B,GAAG,YAAY,EAAE;IAuCrF;;;;;;;;;;;OAWG;IAEG,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,kBAAkB,CAAC;IAqB5D;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAkC7B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAG5B"}
@@ -0,0 +1,107 @@
1
+ import { CodeCallVmPreset } from './codecall.types';
2
+ import type { ToolCallResult, CallToolOptions } from './errors';
3
+ export interface CodeCallAstValidationIssue {
4
+ kind: 'IllegalBuiltinAccess' | 'DisallowedGlobal' | 'DisallowedLoop' | 'ParseError';
5
+ message: string;
6
+ location?: {
7
+ line: number;
8
+ column: number;
9
+ };
10
+ identifier?: string;
11
+ }
12
+ export interface CodeCallAstValidationResult {
13
+ ok: boolean;
14
+ issues: CodeCallAstValidationIssue[];
15
+ transformedCode?: string;
16
+ }
17
+ /**
18
+ * Interface for the AST validator service
19
+ */
20
+ export interface CodeCallAstValidator {
21
+ /**
22
+ * Validate a JavaScript script before execution
23
+ */
24
+ validate(script: string): Promise<CodeCallAstValidationResult>;
25
+ }
26
+ /**
27
+ * Resolved VM options with all defaults applied.
28
+ * Plugins compute this once and pass into providers.
29
+ */
30
+ export interface ResolvedCodeCallVmOptions {
31
+ preset: CodeCallVmPreset;
32
+ timeoutMs: number;
33
+ allowLoops: boolean;
34
+ maxSteps?: number;
35
+ disabledBuiltins: string[];
36
+ disabledGlobals: string[];
37
+ allowConsole: boolean;
38
+ }
39
+ /**
40
+ * Environment available to code running inside the VM.
41
+ * The plugin is responsible for wiring this to the underlying tool pipeline.
42
+ */
43
+ export interface CodeCallVmEnvironment {
44
+ /**
45
+ * Call a tool from within AgentScript.
46
+ *
47
+ * @param name - Tool name (e.g., 'users:list')
48
+ * @param input - Tool input arguments
49
+ * @param options - Optional behavior configuration
50
+ * @param options.throwOnError - When true (default), throws on error.
51
+ * When false, returns { success, data, error }.
52
+ *
53
+ * SECURITY NOTES:
54
+ * - Cannot call 'codecall:*' tools (self-reference blocked)
55
+ * - Errors are sanitized - no stack traces or internal details exposed
56
+ * - Security guard errors (self-reference, access control) are NEVER catchable
57
+ */
58
+ callTool: <TInput, TResult>(name: string, input: TInput, options?: CallToolOptions) => Promise<TResult | ToolCallResult<TResult>>;
59
+ getTool: (name: string) => {
60
+ name: string;
61
+ description?: string;
62
+ inputSchema: unknown;
63
+ outputSchema?: unknown | null;
64
+ } | undefined;
65
+ console?: Console;
66
+ mcpLog?: (level: 'debug' | 'info' | 'warn' | 'error', message: string, metadata?: Record<string, unknown>) => void;
67
+ mcpNotify?: (event: string, payload: Record<string, unknown>) => void;
68
+ }
69
+ /**
70
+ * Result from a tool search query
71
+ */
72
+ export interface ToolSearchResult {
73
+ toolName: string;
74
+ appId?: string;
75
+ description: string;
76
+ relevanceScore: number;
77
+ }
78
+ /**
79
+ * Options for searching tools
80
+ */
81
+ export interface ToolSearchOptions {
82
+ topK?: number;
83
+ appIds?: string[];
84
+ excludeToolNames?: string[];
85
+ }
86
+ /**
87
+ * Interface for the tool search service
88
+ */
89
+ export interface ToolSearch {
90
+ /**
91
+ * Search for tools matching the query
92
+ */
93
+ search(query: string, options?: ToolSearchOptions): Promise<ToolSearchResult[]>;
94
+ /**
95
+ * Check if a tool exists in the index
96
+ */
97
+ hasTool(toolName: string): boolean;
98
+ /**
99
+ * Get the total number of indexed tools
100
+ */
101
+ getTotalCount(): number;
102
+ /**
103
+ * Initialize the search index with tools
104
+ */
105
+ initialize(): Promise<void>;
106
+ }
107
+ //# sourceMappingURL=codecall.symbol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codecall.symbol.d.ts","sourceRoot":"","sources":["../src/codecall.symbol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,353 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Tool info passed to the directCalls filter function
4
+ */
5
+ export interface DirectCallsFilterToolInfo {
6
+ name: string;
7
+ appId?: string;
8
+ source?: string;
9
+ tags?: string[];
10
+ }
11
+ /**
12
+ * Tool info passed to the includeTools filter function
13
+ */
14
+ export interface IncludeToolsFilterToolInfo {
15
+ name: string;
16
+ appId?: string;
17
+ source?: string;
18
+ description?: string;
19
+ tags?: string[];
20
+ }
21
+ /**
22
+ * Function type for directCalls filter
23
+ */
24
+ export type DirectCallsFilterFn = (tool: DirectCallsFilterToolInfo) => boolean;
25
+ /**
26
+ * Function type for includeTools filter
27
+ */
28
+ export type IncludeToolsFilterFn = (tool: IncludeToolsFilterToolInfo) => boolean;
29
+ export declare const codeCallModeSchema: z.ZodDefault<z.ZodEnum<{
30
+ codecall_only: "codecall_only";
31
+ codecall_opt_in: "codecall_opt_in";
32
+ metadata_driven: "metadata_driven";
33
+ }>>;
34
+ export declare const codeCallVmPresetSchema: z.ZodDefault<z.ZodEnum<{
35
+ locked_down: "locked_down";
36
+ secure: "secure";
37
+ balanced: "balanced";
38
+ experimental: "experimental";
39
+ }>>;
40
+ export declare const codeCallVmOptionsSchema: z.ZodDefault<z.ZodObject<{
41
+ preset: z.ZodDefault<z.ZodEnum<{
42
+ locked_down: "locked_down";
43
+ secure: "secure";
44
+ balanced: "balanced";
45
+ experimental: "experimental";
46
+ }>>;
47
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
48
+ allowLoops: z.ZodOptional<z.ZodBoolean>;
49
+ maxSteps: z.ZodOptional<z.ZodNumber>;
50
+ disabledBuiltins: z.ZodOptional<z.ZodArray<z.ZodString>>;
51
+ disabledGlobals: z.ZodOptional<z.ZodArray<z.ZodString>>;
52
+ allowConsole: z.ZodOptional<z.ZodBoolean>;
53
+ }, z.core.$strip>>;
54
+ export declare const codeCallDirectCallsOptionsSchema: z.ZodObject<{
55
+ enabled: z.ZodBoolean;
56
+ allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
57
+ filter: z.ZodOptional<z.ZodCustom<DirectCallsFilterFn, DirectCallsFilterFn>>;
58
+ }, z.core.$strip>;
59
+ export declare const embeddingStrategySchema: z.ZodDefault<z.ZodEnum<{
60
+ tfidf: "tfidf";
61
+ ml: "ml";
62
+ }>>;
63
+ export declare const synonymExpansionConfigSchema: z.ZodDefault<z.ZodObject<{
64
+ enabled: z.ZodDefault<z.ZodBoolean>;
65
+ additionalSynonyms: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString>>>;
66
+ replaceDefaults: z.ZodDefault<z.ZodBoolean>;
67
+ maxExpansionsPerTerm: z.ZodDefault<z.ZodNumber>;
68
+ }, z.core.$strip>>;
69
+ export declare const codeCallEmbeddingOptionsSchema: z.ZodPipe<z.ZodOptional<z.ZodObject<{
70
+ strategy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
71
+ tfidf: "tfidf";
72
+ ml: "ml";
73
+ }>>>;
74
+ modelName: z.ZodOptional<z.ZodString>;
75
+ cacheDir: z.ZodOptional<z.ZodString>;
76
+ useHNSW: z.ZodOptional<z.ZodBoolean>;
77
+ synonymExpansion: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodDefault<z.ZodObject<{
78
+ enabled: z.ZodDefault<z.ZodBoolean>;
79
+ additionalSynonyms: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString>>>;
80
+ replaceDefaults: z.ZodDefault<z.ZodBoolean>;
81
+ maxExpansionsPerTerm: z.ZodDefault<z.ZodNumber>;
82
+ }, z.core.$strip>>]>>;
83
+ }, z.core.$strip>>, z.ZodTransform<{
84
+ strategy: "tfidf" | "ml";
85
+ modelName: string;
86
+ cacheDir: string;
87
+ useHNSW: boolean;
88
+ synonymExpansion: false | {
89
+ enabled: boolean;
90
+ replaceDefaults: boolean;
91
+ maxExpansionsPerTerm: number;
92
+ };
93
+ }, {
94
+ strategy?: "tfidf" | "ml" | undefined;
95
+ modelName?: string | undefined;
96
+ cacheDir?: string | undefined;
97
+ useHNSW?: boolean | undefined;
98
+ synonymExpansion?: false | {
99
+ enabled: boolean;
100
+ replaceDefaults: boolean;
101
+ maxExpansionsPerTerm: number;
102
+ additionalSynonyms?: string[][] | undefined;
103
+ } | undefined;
104
+ } | undefined>>;
105
+ export declare const codeCallSidecarOptionsSchema: z.ZodDefault<z.ZodObject<{
106
+ enabled: z.ZodDefault<z.ZodBoolean>;
107
+ maxTotalSize: z.ZodOptional<z.ZodNumber>;
108
+ maxReferenceSize: z.ZodOptional<z.ZodNumber>;
109
+ extractionThreshold: z.ZodOptional<z.ZodNumber>;
110
+ maxResolvedSize: z.ZodOptional<z.ZodNumber>;
111
+ allowComposites: z.ZodOptional<z.ZodBoolean>;
112
+ maxScriptLengthWhenDisabled: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
113
+ }, z.core.$strip>>;
114
+ declare const codeCallPluginOptionsObjectSchema: z.ZodObject<{
115
+ mode: z.ZodDefault<z.ZodEnum<{
116
+ codecall_only: "codecall_only";
117
+ codecall_opt_in: "codecall_opt_in";
118
+ metadata_driven: "metadata_driven";
119
+ }>>;
120
+ topK: z.ZodDefault<z.ZodNumber>;
121
+ maxDefinitions: z.ZodDefault<z.ZodNumber>;
122
+ includeTools: z.ZodOptional<z.ZodCustom<IncludeToolsFilterFn, IncludeToolsFilterFn>>;
123
+ directCalls: z.ZodOptional<z.ZodObject<{
124
+ enabled: z.ZodBoolean;
125
+ allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
126
+ filter: z.ZodOptional<z.ZodCustom<DirectCallsFilterFn, DirectCallsFilterFn>>;
127
+ }, z.core.$strip>>;
128
+ vm: z.ZodDefault<z.ZodObject<{
129
+ preset: z.ZodDefault<z.ZodEnum<{
130
+ locked_down: "locked_down";
131
+ secure: "secure";
132
+ balanced: "balanced";
133
+ experimental: "experimental";
134
+ }>>;
135
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
136
+ allowLoops: z.ZodOptional<z.ZodBoolean>;
137
+ maxSteps: z.ZodOptional<z.ZodNumber>;
138
+ disabledBuiltins: z.ZodOptional<z.ZodArray<z.ZodString>>;
139
+ disabledGlobals: z.ZodOptional<z.ZodArray<z.ZodString>>;
140
+ allowConsole: z.ZodOptional<z.ZodBoolean>;
141
+ }, z.core.$strip>>;
142
+ embedding: z.ZodPipe<z.ZodOptional<z.ZodObject<{
143
+ strategy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
144
+ tfidf: "tfidf";
145
+ ml: "ml";
146
+ }>>>;
147
+ modelName: z.ZodOptional<z.ZodString>;
148
+ cacheDir: z.ZodOptional<z.ZodString>;
149
+ useHNSW: z.ZodOptional<z.ZodBoolean>;
150
+ synonymExpansion: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodDefault<z.ZodObject<{
151
+ enabled: z.ZodDefault<z.ZodBoolean>;
152
+ additionalSynonyms: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString>>>;
153
+ replaceDefaults: z.ZodDefault<z.ZodBoolean>;
154
+ maxExpansionsPerTerm: z.ZodDefault<z.ZodNumber>;
155
+ }, z.core.$strip>>]>>;
156
+ }, z.core.$strip>>, z.ZodTransform<{
157
+ strategy: "tfidf" | "ml";
158
+ modelName: string;
159
+ cacheDir: string;
160
+ useHNSW: boolean;
161
+ synonymExpansion: false | {
162
+ enabled: boolean;
163
+ replaceDefaults: boolean;
164
+ maxExpansionsPerTerm: number;
165
+ };
166
+ }, {
167
+ strategy?: "tfidf" | "ml" | undefined;
168
+ modelName?: string | undefined;
169
+ cacheDir?: string | undefined;
170
+ useHNSW?: boolean | undefined;
171
+ synonymExpansion?: false | {
172
+ enabled: boolean;
173
+ replaceDefaults: boolean;
174
+ maxExpansionsPerTerm: number;
175
+ additionalSynonyms?: string[][] | undefined;
176
+ } | undefined;
177
+ } | undefined>>;
178
+ sidecar: z.ZodDefault<z.ZodObject<{
179
+ enabled: z.ZodDefault<z.ZodBoolean>;
180
+ maxTotalSize: z.ZodOptional<z.ZodNumber>;
181
+ maxReferenceSize: z.ZodOptional<z.ZodNumber>;
182
+ extractionThreshold: z.ZodOptional<z.ZodNumber>;
183
+ maxResolvedSize: z.ZodOptional<z.ZodNumber>;
184
+ allowComposites: z.ZodOptional<z.ZodBoolean>;
185
+ maxScriptLengthWhenDisabled: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
186
+ }, z.core.$strip>>;
187
+ }, z.core.$strip>;
188
+ export declare const codeCallPluginOptionsSchema: z.ZodPrefault<z.ZodObject<{
189
+ mode: z.ZodDefault<z.ZodEnum<{
190
+ codecall_only: "codecall_only";
191
+ codecall_opt_in: "codecall_opt_in";
192
+ metadata_driven: "metadata_driven";
193
+ }>>;
194
+ topK: z.ZodDefault<z.ZodNumber>;
195
+ maxDefinitions: z.ZodDefault<z.ZodNumber>;
196
+ includeTools: z.ZodOptional<z.ZodCustom<IncludeToolsFilterFn, IncludeToolsFilterFn>>;
197
+ directCalls: z.ZodOptional<z.ZodObject<{
198
+ enabled: z.ZodBoolean;
199
+ allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
200
+ filter: z.ZodOptional<z.ZodCustom<DirectCallsFilterFn, DirectCallsFilterFn>>;
201
+ }, z.core.$strip>>;
202
+ vm: z.ZodDefault<z.ZodObject<{
203
+ preset: z.ZodDefault<z.ZodEnum<{
204
+ locked_down: "locked_down";
205
+ secure: "secure";
206
+ balanced: "balanced";
207
+ experimental: "experimental";
208
+ }>>;
209
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
210
+ allowLoops: z.ZodOptional<z.ZodBoolean>;
211
+ maxSteps: z.ZodOptional<z.ZodNumber>;
212
+ disabledBuiltins: z.ZodOptional<z.ZodArray<z.ZodString>>;
213
+ disabledGlobals: z.ZodOptional<z.ZodArray<z.ZodString>>;
214
+ allowConsole: z.ZodOptional<z.ZodBoolean>;
215
+ }, z.core.$strip>>;
216
+ embedding: z.ZodPipe<z.ZodOptional<z.ZodObject<{
217
+ strategy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
218
+ tfidf: "tfidf";
219
+ ml: "ml";
220
+ }>>>;
221
+ modelName: z.ZodOptional<z.ZodString>;
222
+ cacheDir: z.ZodOptional<z.ZodString>;
223
+ useHNSW: z.ZodOptional<z.ZodBoolean>;
224
+ synonymExpansion: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodDefault<z.ZodObject<{
225
+ enabled: z.ZodDefault<z.ZodBoolean>;
226
+ additionalSynonyms: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString>>>;
227
+ replaceDefaults: z.ZodDefault<z.ZodBoolean>;
228
+ maxExpansionsPerTerm: z.ZodDefault<z.ZodNumber>;
229
+ }, z.core.$strip>>]>>;
230
+ }, z.core.$strip>>, z.ZodTransform<{
231
+ strategy: "tfidf" | "ml";
232
+ modelName: string;
233
+ cacheDir: string;
234
+ useHNSW: boolean;
235
+ synonymExpansion: false | {
236
+ enabled: boolean;
237
+ replaceDefaults: boolean;
238
+ maxExpansionsPerTerm: number;
239
+ };
240
+ }, {
241
+ strategy?: "tfidf" | "ml" | undefined;
242
+ modelName?: string | undefined;
243
+ cacheDir?: string | undefined;
244
+ useHNSW?: boolean | undefined;
245
+ synonymExpansion?: false | {
246
+ enabled: boolean;
247
+ replaceDefaults: boolean;
248
+ maxExpansionsPerTerm: number;
249
+ additionalSynonyms?: string[][] | undefined;
250
+ } | undefined;
251
+ } | undefined>>;
252
+ sidecar: z.ZodDefault<z.ZodObject<{
253
+ enabled: z.ZodDefault<z.ZodBoolean>;
254
+ maxTotalSize: z.ZodOptional<z.ZodNumber>;
255
+ maxReferenceSize: z.ZodOptional<z.ZodNumber>;
256
+ extractionThreshold: z.ZodOptional<z.ZodNumber>;
257
+ maxResolvedSize: z.ZodOptional<z.ZodNumber>;
258
+ allowComposites: z.ZodOptional<z.ZodBoolean>;
259
+ maxScriptLengthWhenDisabled: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
260
+ }, z.core.$strip>>;
261
+ }, z.core.$strip>>;
262
+ export type CodeCallMode = z.infer<typeof codeCallModeSchema>;
263
+ export type CodeCallVmPreset = z.infer<typeof codeCallVmPresetSchema>;
264
+ export type CodeCallVmOptions = z.infer<typeof codeCallVmOptionsSchema>;
265
+ export type CodeCallDirectCallsOptions = z.infer<typeof codeCallDirectCallsOptionsSchema>;
266
+ export type EmbeddingStrategy = z.infer<typeof embeddingStrategySchema>;
267
+ export type SynonymExpansionConfig = z.infer<typeof synonymExpansionConfigSchema>;
268
+ export type CodeCallSidecarOptions = z.infer<typeof codeCallSidecarOptionsSchema>;
269
+ export type CodeCallEmbeddingOptions = z.infer<typeof codeCallEmbeddingOptionsSchema>;
270
+ export type CodeCallEmbeddingOptionsInput = z.input<typeof codeCallEmbeddingOptionsSchema>;
271
+ /**
272
+ * Resolved options type (after parsing with defaults applied).
273
+ * Use this for internal plugin logic where all defaults are guaranteed.
274
+ */
275
+ export type CodeCallPluginOptions = z.infer<typeof codeCallPluginOptionsSchema>;
276
+ /**
277
+ * Input options type (what users provide to init()).
278
+ * All fields with defaults are optional.
279
+ */
280
+ export type CodeCallPluginOptionsInput = z.input<typeof codeCallPluginOptionsObjectSchema>;
281
+ /**
282
+ * Per-tool metadata used by CodeCall.
283
+ * This maps to `metadata.codecall` on tools.
284
+ */
285
+ export interface CodeCallToolMetadata {
286
+ /**
287
+ * If true, this tool stays visible in `list_tools`
288
+ * even when CodeCall is hiding most tools.
289
+ */
290
+ visibleInListTools?: boolean;
291
+ /**
292
+ * Whether this tool can be used via CodeCall.
293
+ * Semantics depend on CodeCallMode (see README).
294
+ */
295
+ enabledInCodeCall?: boolean;
296
+ /** Optional extra indexing hints */
297
+ appId?: string;
298
+ source?: string;
299
+ tags?: string[];
300
+ }
301
+ export type CodeCallSearchInput = {
302
+ query: string;
303
+ topK?: number;
304
+ filter?: {
305
+ appIds?: string[];
306
+ tags?: string[];
307
+ includeOpenApi?: boolean;
308
+ includeInline?: boolean;
309
+ };
310
+ };
311
+ export type CodeCallSearchResult = {
312
+ tools: {
313
+ name: string;
314
+ description: string;
315
+ appId?: string;
316
+ source?: string;
317
+ score: number;
318
+ }[];
319
+ };
320
+ export type CodeCallDescribeInput = {
321
+ tools: string[];
322
+ max?: number;
323
+ };
324
+ export type CodeCallDescribeResult = {
325
+ tools: {
326
+ name: string;
327
+ description: string;
328
+ inputSchema: unknown;
329
+ outputSchema?: unknown | null;
330
+ examples?: {
331
+ input: unknown;
332
+ output?: unknown;
333
+ }[];
334
+ }[];
335
+ };
336
+ export type CodeCallExecuteInput = {
337
+ script: string;
338
+ /**
339
+ * Arbitrary, readonly context exposed as `codecallContext`.
340
+ */
341
+ context?: Record<string, unknown>;
342
+ };
343
+ declare global {
344
+ interface ExtendFrontMcpToolMetadata {
345
+ /**
346
+ * CodeCall-specific metadata, attached via `@Tool({ metadata: { codecall: ... } })`
347
+ * or whatever your decorator mapping is.
348
+ */
349
+ codecall?: CodeCallToolMetadata;
350
+ }
351
+ }
352
+ export {};
353
+ //# sourceMappingURL=codecall.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codecall.types.d.ts","sourceRoot":"","sources":["../src/codecall.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './tool-call.errors';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAEA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Error codes exposed to AgentScript via result-based error handling.
3
+ * These are the ONLY error codes scripts can see - no internal details.
4
+ */
5
+ export declare const TOOL_CALL_ERROR_CODES: {
6
+ readonly NOT_FOUND: "NOT_FOUND";
7
+ readonly VALIDATION: "VALIDATION";
8
+ readonly EXECUTION: "EXECUTION";
9
+ readonly TIMEOUT: "TIMEOUT";
10
+ readonly ACCESS_DENIED: "ACCESS_DENIED";
11
+ readonly SELF_REFERENCE: "SELF_REFERENCE";
12
+ };
13
+ export type ToolCallErrorCode = (typeof TOOL_CALL_ERROR_CODES)[keyof typeof TOOL_CALL_ERROR_CODES];
14
+ /**
15
+ * Sanitized error structure exposed to AgentScript.
16
+ * Contains NO stack traces, NO internal details, NO sensitive information.
17
+ */
18
+ export interface ToolCallError {
19
+ readonly code: ToolCallErrorCode;
20
+ readonly message: string;
21
+ readonly toolName: string;
22
+ }
23
+ /**
24
+ * Result type for callTool when throwOnError is false.
25
+ */
26
+ export type ToolCallResult<T> = {
27
+ success: true;
28
+ data: T;
29
+ } | {
30
+ success: false;
31
+ error: ToolCallError;
32
+ };
33
+ /**
34
+ * Options for callTool behavior.
35
+ */
36
+ export interface CallToolOptions {
37
+ /**
38
+ * When true (default), errors are thrown and can be caught.
39
+ * When false, errors are returned as { success: false, error: ToolCallError }.
40
+ *
41
+ * SECURITY: Even when throwOnError is true, only sanitized errors are thrown.
42
+ * Internal security guard errors are NEVER exposed to scripts.
43
+ */
44
+ throwOnError?: boolean;
45
+ }
46
+ /**
47
+ * Creates a sanitized ToolCallError for script consumption.
48
+ * This function ensures no internal details leak to AgentScript.
49
+ */
50
+ export declare function createToolCallError(code: ToolCallErrorCode, toolName: string, rawMessage?: string): ToolCallError;
51
+ /**
52
+ * FATAL: Self-reference attack detected.
53
+ * This error is thrown internally and causes immediate execution termination.
54
+ * The script NEVER sees this error - it only sees the sanitized version.
55
+ */
56
+ export declare class SelfReferenceError extends Error {
57
+ readonly code: "SELF_REFERENCE";
58
+ readonly toolName: string;
59
+ constructor(toolName: string);
60
+ }
61
+ /**
62
+ * Internal error for tool access denial.
63
+ * Only the sanitized version is exposed to scripts.
64
+ */
65
+ export declare class ToolAccessDeniedError extends Error {
66
+ readonly code: "ACCESS_DENIED";
67
+ readonly toolName: string;
68
+ readonly reason: string;
69
+ constructor(toolName: string, reason: string);
70
+ }
71
+ /**
72
+ * Internal error for tool not found.
73
+ * Only the sanitized version is exposed to scripts.
74
+ */
75
+ export declare class ToolNotFoundError extends Error {
76
+ readonly code: "NOT_FOUND";
77
+ readonly toolName: string;
78
+ constructor(toolName: string);
79
+ }
80
+ //# sourceMappingURL=tool-call.errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-call.errors.d.ts","sourceRoot":"","sources":["../../src/errors/tool-call.errors.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;CAOxB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAC;AAEnG;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AAEtG;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,CASjH;AAwDD;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,mBAAwC;IACrD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,EAAE,MAAM;CAM7B;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,kBAAuC;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAO7C;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,cAAmC;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,EAAE,MAAM;CAM7B"}