mister-wolf 1.0.0 → 1.0.3

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 (256) hide show
  1. package/README.md +96 -103
  2. package/README.ru.md +213 -0
  3. package/dist/bootstrap/cli.js +0 -0
  4. package/dist/domain/npx.d.ts +3 -1
  5. package/dist/domain/npx.d.ts.map +1 -1
  6. package/dist/domain/npx.js +4 -2
  7. package/dist/domain/npx.js.map +1 -1
  8. package/package.json +10 -2
  9. package/dist/agent/registry.d.ts +0 -14
  10. package/dist/agent/registry.d.ts.map +0 -1
  11. package/dist/agent/registry.js +0 -42
  12. package/dist/agent/registry.js.map +0 -1
  13. package/dist/agent/router.d.ts +0 -10
  14. package/dist/agent/router.d.ts.map +0 -1
  15. package/dist/agent/router.js +0 -21
  16. package/dist/agent/router.js.map +0 -1
  17. package/dist/agent/runner.d.ts +0 -24
  18. package/dist/agent/runner.d.ts.map +0 -1
  19. package/dist/agent/runner.js +0 -388
  20. package/dist/agent/runner.js.map +0 -1
  21. package/dist/cli/commands/agents.d.ts +0 -3
  22. package/dist/cli/commands/agents.d.ts.map +0 -1
  23. package/dist/cli/commands/agents.js +0 -65
  24. package/dist/cli/commands/agents.js.map +0 -1
  25. package/dist/cli/commands/cases.d.ts +0 -3
  26. package/dist/cli/commands/cases.d.ts.map +0 -1
  27. package/dist/cli/commands/cases.js +0 -143
  28. package/dist/cli/commands/cases.js.map +0 -1
  29. package/dist/cli/commands/context.d.ts +0 -3
  30. package/dist/cli/commands/context.d.ts.map +0 -1
  31. package/dist/cli/commands/context.js +0 -161
  32. package/dist/cli/commands/context.js.map +0 -1
  33. package/dist/cli/commands/events.d.ts +0 -3
  34. package/dist/cli/commands/events.d.ts.map +0 -1
  35. package/dist/cli/commands/events.js +0 -37
  36. package/dist/cli/commands/events.js.map +0 -1
  37. package/dist/cli/commands/gates.d.ts +0 -5
  38. package/dist/cli/commands/gates.d.ts.map +0 -1
  39. package/dist/cli/commands/gates.js +0 -94
  40. package/dist/cli/commands/gates.js.map +0 -1
  41. package/dist/cli/commands/policy.d.ts +0 -3
  42. package/dist/cli/commands/policy.d.ts.map +0 -1
  43. package/dist/cli/commands/policy.js +0 -35
  44. package/dist/cli/commands/policy.js.map +0 -1
  45. package/dist/cli/commands/resume.d.ts +0 -3
  46. package/dist/cli/commands/resume.d.ts.map +0 -1
  47. package/dist/cli/commands/resume.js +0 -59
  48. package/dist/cli/commands/resume.js.map +0 -1
  49. package/dist/cli/commands/run.d.ts +0 -3
  50. package/dist/cli/commands/run.d.ts.map +0 -1
  51. package/dist/cli/commands/run.js +0 -97
  52. package/dist/cli/commands/run.js.map +0 -1
  53. package/dist/cli/commands/validate.d.ts +0 -3
  54. package/dist/cli/commands/validate.d.ts.map +0 -1
  55. package/dist/cli/commands/validate.js +0 -28
  56. package/dist/cli/commands/validate.js.map +0 -1
  57. package/dist/cli/commands/wac.d.ts +0 -8
  58. package/dist/cli/commands/wac.d.ts.map +0 -1
  59. package/dist/cli/commands/wac.js +0 -161
  60. package/dist/cli/commands/wac.js.map +0 -1
  61. package/dist/cli/index.d.ts +0 -3
  62. package/dist/cli/index.d.ts.map +0 -1
  63. package/dist/cli/index.js +0 -34
  64. package/dist/cli/index.js.map +0 -1
  65. package/dist/config/loader.d.ts +0 -3
  66. package/dist/config/loader.d.ts.map +0 -1
  67. package/dist/config/loader.js +0 -12
  68. package/dist/config/loader.js.map +0 -1
  69. package/dist/config/project-config.d.ts +0 -857
  70. package/dist/config/project-config.d.ts.map +0 -1
  71. package/dist/config/project-config.js +0 -129
  72. package/dist/config/project-config.js.map +0 -1
  73. package/dist/config/schema.d.ts +0 -2
  74. package/dist/config/schema.d.ts.map +0 -1
  75. package/dist/config/schema.js +0 -2
  76. package/dist/config/schema.js.map +0 -1
  77. package/dist/config/validator.d.ts +0 -6
  78. package/dist/config/validator.d.ts.map +0 -1
  79. package/dist/config/validator.js +0 -58
  80. package/dist/config/validator.js.map +0 -1
  81. package/dist/context/bundle-builder.d.ts +0 -7
  82. package/dist/context/bundle-builder.d.ts.map +0 -1
  83. package/dist/context/bundle-builder.js +0 -25
  84. package/dist/context/bundle-builder.js.map +0 -1
  85. package/dist/context/case-memory.d.ts +0 -11
  86. package/dist/context/case-memory.d.ts.map +0 -1
  87. package/dist/context/case-memory.js +0 -131
  88. package/dist/context/case-memory.js.map +0 -1
  89. package/dist/context/md-generator.d.ts +0 -6
  90. package/dist/context/md-generator.d.ts.map +0 -1
  91. package/dist/context/md-generator.js +0 -136
  92. package/dist/context/md-generator.js.map +0 -1
  93. package/dist/context/resolver.d.ts +0 -18
  94. package/dist/context/resolver.d.ts.map +0 -1
  95. package/dist/context/resolver.js +0 -86
  96. package/dist/context/resolver.js.map +0 -1
  97. package/dist/context/scanner.d.ts +0 -10
  98. package/dist/context/scanner.d.ts.map +0 -1
  99. package/dist/context/scanner.js +0 -197
  100. package/dist/context/scanner.js.map +0 -1
  101. package/dist/kernel/event-bus.d.ts +0 -13
  102. package/dist/kernel/event-bus.d.ts.map +0 -1
  103. package/dist/kernel/event-bus.js +0 -18
  104. package/dist/kernel/event-bus.js.map +0 -1
  105. package/dist/model/errors.d.ts +0 -22
  106. package/dist/model/errors.d.ts.map +0 -1
  107. package/dist/model/errors.js +0 -36
  108. package/dist/model/errors.js.map +0 -1
  109. package/dist/model/mock-provider.d.ts +0 -8
  110. package/dist/model/mock-provider.d.ts.map +0 -1
  111. package/dist/model/mock-provider.js +0 -59
  112. package/dist/model/mock-provider.js.map +0 -1
  113. package/dist/model/openai-provider.d.ts +0 -9
  114. package/dist/model/openai-provider.d.ts.map +0 -1
  115. package/dist/model/openai-provider.js +0 -201
  116. package/dist/model/openai-provider.js.map +0 -1
  117. package/dist/model/registry.d.ts +0 -9
  118. package/dist/model/registry.d.ts.map +0 -1
  119. package/dist/model/registry.js +0 -23
  120. package/dist/model/registry.js.map +0 -1
  121. package/dist/model/stream-types.d.ts +0 -16
  122. package/dist/model/stream-types.d.ts.map +0 -1
  123. package/dist/model/stream-types.js +0 -2
  124. package/dist/model/stream-types.js.map +0 -1
  125. package/dist/model/types.d.ts +0 -50
  126. package/dist/model/types.d.ts.map +0 -1
  127. package/dist/model/types.js +0 -2
  128. package/dist/model/types.js.map +0 -1
  129. package/dist/policy/engine.d.ts +0 -12
  130. package/dist/policy/engine.d.ts.map +0 -1
  131. package/dist/policy/engine.js +0 -130
  132. package/dist/policy/engine.js.map +0 -1
  133. package/dist/policy/gate-adapter.d.ts +0 -9
  134. package/dist/policy/gate-adapter.d.ts.map +0 -1
  135. package/dist/policy/gate-adapter.js +0 -22
  136. package/dist/policy/gate-adapter.js.map +0 -1
  137. package/dist/policy/preflight.d.ts +0 -8
  138. package/dist/policy/preflight.d.ts.map +0 -1
  139. package/dist/policy/preflight.js +0 -19
  140. package/dist/policy/preflight.js.map +0 -1
  141. package/dist/policy/step-guard.d.ts +0 -8
  142. package/dist/policy/step-guard.d.ts.map +0 -1
  143. package/dist/policy/step-guard.js +0 -8
  144. package/dist/policy/step-guard.js.map +0 -1
  145. package/dist/state/case-store.d.ts +0 -19
  146. package/dist/state/case-store.d.ts.map +0 -1
  147. package/dist/state/case-store.js +0 -105
  148. package/dist/state/case-store.js.map +0 -1
  149. package/dist/state/file-store.d.ts +0 -15
  150. package/dist/state/file-store.d.ts.map +0 -1
  151. package/dist/state/file-store.js +0 -55
  152. package/dist/state/file-store.js.map +0 -1
  153. package/dist/state/gate-store.d.ts +0 -18
  154. package/dist/state/gate-store.d.ts.map +0 -1
  155. package/dist/state/gate-store.js +0 -91
  156. package/dist/state/gate-store.js.map +0 -1
  157. package/dist/state/sqlite-index.d.ts +0 -35
  158. package/dist/state/sqlite-index.d.ts.map +0 -1
  159. package/dist/state/sqlite-index.js +0 -69
  160. package/dist/state/sqlite-index.js.map +0 -1
  161. package/dist/state/store.d.ts +0 -11
  162. package/dist/state/store.d.ts.map +0 -1
  163. package/dist/state/store.js +0 -2
  164. package/dist/state/store.js.map +0 -1
  165. package/dist/tool/errors.d.ts +0 -25
  166. package/dist/tool/errors.d.ts.map +0 -1
  167. package/dist/tool/errors.js +0 -41
  168. package/dist/tool/errors.js.map +0 -1
  169. package/dist/tool/executors/context-read.d.ts +0 -6
  170. package/dist/tool/executors/context-read.d.ts.map +0 -1
  171. package/dist/tool/executors/context-read.js +0 -39
  172. package/dist/tool/executors/context-read.js.map +0 -1
  173. package/dist/tool/registry.d.ts +0 -13
  174. package/dist/tool/registry.d.ts.map +0 -1
  175. package/dist/tool/registry.js +0 -49
  176. package/dist/tool/registry.js.map +0 -1
  177. package/dist/tool/types.d.ts +0 -46
  178. package/dist/tool/types.d.ts.map +0 -1
  179. package/dist/tool/types.js +0 -10
  180. package/dist/tool/types.js.map +0 -1
  181. package/dist/types/agent.d.ts +0 -98
  182. package/dist/types/agent.d.ts.map +0 -1
  183. package/dist/types/agent.js +0 -35
  184. package/dist/types/agent.js.map +0 -1
  185. package/dist/types/case.d.ts +0 -32
  186. package/dist/types/case.d.ts.map +0 -1
  187. package/dist/types/case.js +0 -11
  188. package/dist/types/case.js.map +0 -1
  189. package/dist/types/context.d.ts +0 -613
  190. package/dist/types/context.d.ts.map +0 -1
  191. package/dist/types/context.js +0 -60
  192. package/dist/types/context.js.map +0 -1
  193. package/dist/types/events.d.ts +0 -63
  194. package/dist/types/events.d.ts.map +0 -1
  195. package/dist/types/events.js +0 -26
  196. package/dist/types/events.js.map +0 -1
  197. package/dist/types/policy.d.ts +0 -225
  198. package/dist/types/policy.d.ts.map +0 -1
  199. package/dist/types/policy.js +0 -43
  200. package/dist/types/policy.js.map +0 -1
  201. package/dist/types/runner.d.ts +0 -18
  202. package/dist/types/runner.d.ts.map +0 -1
  203. package/dist/types/runner.js +0 -2
  204. package/dist/types/runner.js.map +0 -1
  205. package/dist/types/state.d.ts +0 -316
  206. package/dist/types/state.d.ts.map +0 -1
  207. package/dist/types/state.js +0 -42
  208. package/dist/types/state.js.map +0 -1
  209. package/dist/types/workflow.d.ts +0 -379
  210. package/dist/types/workflow.d.ts.map +0 -1
  211. package/dist/types/workflow.js +0 -51
  212. package/dist/types/workflow.js.map +0 -1
  213. package/dist/wac/context.d.ts +0 -4
  214. package/dist/wac/context.d.ts.map +0 -1
  215. package/dist/wac/context.js +0 -67
  216. package/dist/wac/context.js.map +0 -1
  217. package/dist/wac/llm.d.ts +0 -2
  218. package/dist/wac/llm.d.ts.map +0 -1
  219. package/dist/wac/llm.js +0 -69
  220. package/dist/wac/llm.js.map +0 -1
  221. package/dist/wac/store.d.ts +0 -25
  222. package/dist/wac/store.d.ts.map +0 -1
  223. package/dist/wac/store.js +0 -124
  224. package/dist/wac/store.js.map +0 -1
  225. package/dist/workflow/conditions.d.ts +0 -3
  226. package/dist/workflow/conditions.d.ts.map +0 -1
  227. package/dist/workflow/conditions.js +0 -18
  228. package/dist/workflow/conditions.js.map +0 -1
  229. package/dist/workflow/engine.d.ts +0 -47
  230. package/dist/workflow/engine.d.ts.map +0 -1
  231. package/dist/workflow/engine.js +0 -611
  232. package/dist/workflow/engine.js.map +0 -1
  233. package/dist/workflow/graph.d.ts +0 -13
  234. package/dist/workflow/graph.d.ts.map +0 -1
  235. package/dist/workflow/graph.js +0 -82
  236. package/dist/workflow/graph.js.map +0 -1
  237. package/dist/workflow/runner-registry.d.ts +0 -8
  238. package/dist/workflow/runner-registry.d.ts.map +0 -1
  239. package/dist/workflow/runner-registry.js +0 -17
  240. package/dist/workflow/runner-registry.js.map +0 -1
  241. package/dist/workflow/runners/echo.d.ts +0 -8
  242. package/dist/workflow/runners/echo.d.ts.map +0 -1
  243. package/dist/workflow/runners/echo.js +0 -11
  244. package/dist/workflow/runners/echo.js.map +0 -1
  245. package/dist/workflow/runners/manual-gate.d.ts +0 -8
  246. package/dist/workflow/runners/manual-gate.d.ts.map +0 -1
  247. package/dist/workflow/runners/manual-gate.js +0 -25
  248. package/dist/workflow/runners/manual-gate.js.map +0 -1
  249. package/dist/workflow/runners/shell.d.ts +0 -8
  250. package/dist/workflow/runners/shell.d.ts.map +0 -1
  251. package/dist/workflow/runners/shell.js +0 -156
  252. package/dist/workflow/runners/shell.js.map +0 -1
  253. package/dist/workflow/template.d.ts +0 -3
  254. package/dist/workflow/template.d.ts.map +0 -1
  255. package/dist/workflow/template.js +0 -25
  256. package/dist/workflow/template.js.map +0 -1
@@ -1,86 +0,0 @@
1
- export class ContextResolver {
2
- resolve(scanResult, caseMemory, config, scenarioId) {
3
- const scenario = this.findScenario(config, scenarioId);
4
- const effectiveLimits = scenario?.context?.limits
5
- ? { ...config.limits, ...scenario.context.limits }
6
- : config.limits;
7
- // Apply case limit from effective config
8
- const cases = caseMemory.cases.slice(0, effectiveLimits.max_cases);
9
- const files = [];
10
- const docs = [];
11
- const rules = [];
12
- const configs = [];
13
- for (const file of scanResult.files) {
14
- const kind = classifyPath(file.path);
15
- const classifiedFile = { ...file, kind };
16
- switch (kind) {
17
- case 'project_doc':
18
- docs.push(classifiedFile);
19
- break;
20
- case 'project_rule':
21
- rules.push(classifiedFile);
22
- break;
23
- case 'project_config':
24
- configs.push(classifiedFile);
25
- break;
26
- default:
27
- files.push(classifiedFile);
28
- break;
29
- }
30
- }
31
- const resolveMetadata = {
32
- groups: {
33
- project_files: files.length,
34
- project_docs: docs.length,
35
- project_rules: rules.length,
36
- project_configs: configs.length,
37
- cases: cases.length,
38
- },
39
- };
40
- return {
41
- files,
42
- docs,
43
- rules,
44
- configs,
45
- cases,
46
- caseMemoryMetadata: caseMemory.metadata,
47
- resolveMetadata,
48
- };
49
- }
50
- findScenario(config, scenarioId) {
51
- if (!scenarioId)
52
- return undefined;
53
- const scenario = config.scenarios.find((s) => s.id === scenarioId);
54
- if (!scenario) {
55
- throw new Error(`Scenario not found: ${scenarioId}`);
56
- }
57
- return scenario;
58
- }
59
- }
60
- function classifyPath(filePath) {
61
- // project_docs: README.md, AGENTS.md, docs/**/*.md, .wolf/**/*.md
62
- if (filePath === 'README.md' ||
63
- filePath === 'AGENTS.md' ||
64
- (filePath.startsWith('docs/') && filePath.endsWith('.md')) ||
65
- (filePath.startsWith('.wolf/') && filePath.endsWith('.md'))) {
66
- return 'project_doc';
67
- }
68
- // project_rules: wolf.yaml, .wolf/**/*.yaml
69
- if (filePath === 'wolf.yaml' || (filePath.startsWith('.wolf/') && filePath.endsWith('.yaml'))) {
70
- return 'project_rule';
71
- }
72
- // project_configs: package.json, tsconfig.json, vitest.config.ts, Dockerfile,
73
- // docker-compose.yml, .github/workflows/*.yml, .github/workflows/*.yaml, .prettierrc*
74
- if (filePath === 'package.json' ||
75
- filePath === 'tsconfig.json' ||
76
- filePath === 'vitest.config.ts' ||
77
- filePath === 'Dockerfile' ||
78
- filePath === 'docker-compose.yml' ||
79
- /^\.github\/workflows\/[^/]+\.(yml|yaml)$/.test(filePath) ||
80
- filePath.startsWith('.prettierrc')) {
81
- return 'project_config';
82
- }
83
- // project_files: everything else
84
- return 'project_file';
85
- }
86
- //# sourceMappingURL=resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/context/resolver.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { ContextFile, ScanMetadata } from '../types/context.js';
2
- import { ContextConfig } from '../config/project-config.js';
3
- export interface ScanResult {
4
- files: ContextFile[];
5
- metadata: ScanMetadata;
6
- }
7
- export declare class ContextScanner {
8
- scan(projectRoot: string, config: ContextConfig): Promise<ScanResult>;
9
- }
10
- //# sourceMappingURL=scanner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/context/scanner.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;CACxB;AA2BD,qBAAa,cAAc;IACnB,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;CA6L5E"}
@@ -1,197 +0,0 @@
1
- import fg from 'fast-glob';
2
- const { glob } = fg;
3
- import { createHash } from 'crypto';
4
- import { readFileSync, lstatSync, realpathSync } from 'fs';
5
- import { resolve, relative } from 'path';
6
- function normalizePath(filePath) {
7
- return filePath.replace(/\\/g, '/');
8
- }
9
- function isHiddenPath(relPath) {
10
- return relPath.split('/').some((segment) => segment.startsWith('.') && segment !== '.' && segment !== '..');
11
- }
12
- function allowsHiddenPaths(patterns) {
13
- return patterns.some((p) => {
14
- const segments = p.split(/[\/\\]/);
15
- return segments.some((s) => s.startsWith('.') && s !== '.' && s !== '..');
16
- });
17
- }
18
- function isBinary(buffer) {
19
- const checkBytes = Math.min(buffer.length, 8192);
20
- for (let i = 0; i < checkBytes; i++) {
21
- if (buffer[i] === 0x00) {
22
- return true;
23
- }
24
- }
25
- return false;
26
- }
27
- export class ContextScanner {
28
- async scan(projectRoot, config) {
29
- const resolvedRoot = resolve(projectRoot);
30
- // Path traversal guard: reject projectRoot containing ..
31
- if (projectRoot.includes('..')) {
32
- return {
33
- files: [],
34
- metadata: {
35
- files_scanned: 0,
36
- files_included: 0,
37
- files_skipped: 0,
38
- bytes_included: 0,
39
- bytes_truncated: 0,
40
- limits_applied: [],
41
- },
42
- };
43
- }
44
- const includePatterns = config.include.length > 0 ? config.include : ['**/*'];
45
- const excludePatterns = config.exclude || [];
46
- // Use onlyFiles: false to detect symlinks; directories are filtered manually
47
- const entries = await glob(includePatterns, {
48
- cwd: resolvedRoot,
49
- dot: true,
50
- onlyFiles: false,
51
- absolute: true,
52
- followSymbolicLinks: false,
53
- ignore: excludePatterns,
54
- });
55
- const files = [];
56
- let filesScanned = 0;
57
- let bytesIncluded = 0;
58
- let bytesTruncated = 0;
59
- let filesSkipped = 0;
60
- const limitsApplied = new Set();
61
- const skippedFiles = [];
62
- const explicitHiddenAllowed = allowsHiddenPaths(includePatterns);
63
- for (const entry of entries) {
64
- const relPath = normalizePath(relative(resolvedRoot, entry));
65
- // Path traversal guard: relative path must not escape project root
66
- if (relPath.startsWith('..') || relPath.includes('/../')) {
67
- filesSkipped++;
68
- skippedFiles.push(relPath);
69
- continue;
70
- }
71
- let lstat;
72
- try {
73
- lstat = lstatSync(entry);
74
- }
75
- catch {
76
- filesSkipped++;
77
- skippedFiles.push(relPath);
78
- continue;
79
- }
80
- // Skip directories
81
- if (lstat.isDirectory()) {
82
- continue;
83
- }
84
- // Handle symlinks: resolve and check for escape
85
- if (lstat.isSymbolicLink()) {
86
- let realPath;
87
- try {
88
- realPath = realpathSync(entry);
89
- }
90
- catch {
91
- filesSkipped++;
92
- skippedFiles.push(relPath);
93
- continue;
94
- }
95
- const realRelPath = normalizePath(relative(resolvedRoot, realPath));
96
- if (realRelPath.startsWith('..') ||
97
- realRelPath.includes('/../') ||
98
- (!realPath.startsWith(resolvedRoot + '/') && realPath !== resolvedRoot)) {
99
- filesSkipped++;
100
- skippedFiles.push(relPath);
101
- continue;
102
- }
103
- // Skip symlinks pointing to directories
104
- try {
105
- const targetStat = lstatSync(realPath);
106
- if (targetStat.isDirectory()) {
107
- continue;
108
- }
109
- }
110
- catch {
111
- filesSkipped++;
112
- skippedFiles.push(relPath);
113
- continue;
114
- }
115
- }
116
- else if (!lstat.isFile()) {
117
- // Skip non-file, non-symlink entries (fifos, sockets, etc.)
118
- continue;
119
- }
120
- filesScanned++;
121
- // Hidden path guard
122
- if (isHiddenPath(relPath) && !explicitHiddenAllowed) {
123
- continue;
124
- }
125
- // max_files limit
126
- if (files.length >= config.limits.max_files) {
127
- limitsApplied.add('max_files');
128
- continue;
129
- }
130
- // Read file content for hash and potential inclusion
131
- let fileBuffer;
132
- try {
133
- fileBuffer = readFileSync(entry);
134
- }
135
- catch {
136
- filesSkipped++;
137
- skippedFiles.push(relPath);
138
- continue;
139
- }
140
- const hash = createHash('sha256').update(fileBuffer).digest('hex');
141
- const binary = isBinary(fileBuffer);
142
- const fileSize = fileBuffer.length;
143
- let content;
144
- let contentIncluded = false;
145
- let contentTruncated = false;
146
- let potentialBytes = 0;
147
- if (config.include_content && !binary) {
148
- const maxFileBytes = config.limits.max_file_bytes;
149
- if (fileSize > maxFileBytes) {
150
- const truncated = fileBuffer.subarray(0, maxFileBytes);
151
- content = truncated.toString('utf-8');
152
- contentTruncated = true;
153
- potentialBytes = maxFileBytes;
154
- }
155
- else {
156
- content = fileBuffer.toString('utf-8');
157
- potentialBytes = fileSize;
158
- }
159
- contentIncluded = true;
160
- }
161
- // max_bytes limit (applied after max_files)
162
- if (bytesIncluded + potentialBytes > config.limits.max_bytes) {
163
- limitsApplied.add('max_bytes');
164
- continue;
165
- }
166
- bytesIncluded += potentialBytes;
167
- if (contentTruncated) {
168
- bytesTruncated += fileSize - config.limits.max_file_bytes;
169
- }
170
- const lastDot = relPath.lastIndexOf('.');
171
- const extension = lastDot > 0 ? relPath.slice(lastDot) : '';
172
- const mtime = lstat.mtime.toISOString();
173
- files.push({
174
- path: relPath,
175
- kind: 'project_file',
176
- size: fileSize,
177
- extension,
178
- hash,
179
- mtime,
180
- content_included: contentIncluded,
181
- content_truncated: contentTruncated,
182
- content,
183
- });
184
- }
185
- const metadata = {
186
- files_scanned: filesScanned,
187
- files_included: files.length,
188
- files_skipped: filesSkipped,
189
- bytes_included: bytesIncluded,
190
- bytes_truncated: bytesTruncated,
191
- limits_applied: Array.from(limitsApplied),
192
- skipped_files: skippedFiles.length > 0 ? skippedFiles : undefined,
193
- };
194
- return { files, metadata };
195
- }
196
- }
197
- //# sourceMappingURL=scanner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/context/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AASzC,SAAS,aAAa,CAAC,QAAgB;IACrC,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC;AAC9G,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAkB;IAC3C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,OAAO,cAAc;IACzB,KAAK,CAAC,IAAI,CAAC,WAAmB,EAAE,MAAqB;QACnD,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAE1C,yDAAyD;QACzD,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO;gBACL,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE;oBACR,aAAa,EAAE,CAAC;oBAChB,cAAc,EAAE,CAAC;oBACjB,aAAa,EAAE,CAAC;oBAChB,cAAc,EAAE,CAAC;oBACjB,eAAe,EAAE,CAAC;oBAClB,cAAc,EAAE,EAAE;iBACnB;aACF,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC9E,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAE7C,6EAA6E;QAC7E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE;YAC1C,GAAG,EAAE,YAAY;YACjB,GAAG,EAAE,IAAI;YACT,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,IAAI;YACd,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE,eAAe;SACxB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAEjE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;YAE7D,mEAAmE;YACnE,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzD,YAAY,EAAE,CAAC;gBACf,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC;YACV,IAAI,CAAC;gBACH,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,EAAE,CAAC;gBACf,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,mBAAmB;YACnB,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,gDAAgD;YAChD,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC3B,IAAI,QAAgB,CAAC;gBACrB,IAAI,CAAC;oBACH,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC;gBAAC,MAAM,CAAC;oBACP,YAAY,EAAE,CAAC;oBACf,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC3B,SAAS;gBACX,CAAC;gBAED,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACpE,IACE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;oBAC5B,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAC5B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,QAAQ,KAAK,YAAY,CAAC,EACvE,CAAC;oBACD,YAAY,EAAE,CAAC;oBACf,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC3B,SAAS;gBACX,CAAC;gBAED,wCAAwC;gBACxC,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACvC,IAAI,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;wBAC7B,SAAS;oBACX,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,YAAY,EAAE,CAAC;oBACf,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC3B,SAAS;gBACX,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC3B,4DAA4D;gBAC5D,SAAS;YACX,CAAC;YAED,YAAY,EAAE,CAAC;YAEf,oBAAoB;YACpB,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACpD,SAAS;YACX,CAAC;YAED,kBAAkB;YAClB,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC5C,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,qDAAqD;YACrD,IAAI,UAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,EAAE,CAAC;gBACf,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;YAEnC,IAAI,OAA2B,CAAC;YAChC,IAAI,eAAe,GAAG,KAAK,CAAC;YAC5B,IAAI,gBAAgB,GAAG,KAAK,CAAC;YAC7B,IAAI,cAAc,GAAG,CAAC,CAAC;YAEvB,IAAI,MAAM,CAAC,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC;gBACtC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;gBAClD,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;oBAC5B,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;oBACvD,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACtC,gBAAgB,GAAG,IAAI,CAAC;oBACxB,cAAc,GAAG,YAAY,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACvC,cAAc,GAAG,QAAQ,CAAC;gBAC5B,CAAC;gBACD,eAAe,GAAG,IAAI,CAAC;YACzB,CAAC;YAED,4CAA4C;YAC5C,IAAI,aAAa,GAAG,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC7D,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,aAAa,IAAI,cAAc,CAAC;YAChC,IAAI,gBAAgB,EAAE,CAAC;gBACrB,cAAc,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;YAC5D,CAAC;YAED,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAExC,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,QAAQ;gBACd,SAAS;gBACT,IAAI;gBACJ,KAAK;gBACL,gBAAgB,EAAE,eAAe;gBACjC,iBAAiB,EAAE,gBAAgB;gBACnC,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAiB;YAC7B,aAAa,EAAE,YAAY;YAC3B,cAAc,EAAE,KAAK,CAAC,MAAM;YAC5B,aAAa,EAAE,YAAY;YAC3B,cAAc,EAAE,aAAa;YAC7B,eAAe,EAAE,cAAc;YAC/B,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;YACzC,aAAa,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;SAClE,CAAC;QAEF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC7B,CAAC;CACF"}
@@ -1,13 +0,0 @@
1
- import { RuntimeEvent } from '../types/events.js';
2
- export type EventHandler = (event: RuntimeEvent) => void | Promise<void>;
3
- export type Unsubscribe = () => void;
4
- export interface EventBus {
5
- publish(event: RuntimeEvent): Promise<void>;
6
- subscribe(type: string, handler: EventHandler): Unsubscribe;
7
- }
8
- export declare class InProcessEventBus implements EventBus {
9
- private handlers;
10
- publish(event: RuntimeEvent): Promise<void>;
11
- subscribe(type: string, handler: EventHandler): Unsubscribe;
12
- }
13
- //# sourceMappingURL=event-bus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/kernel/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACzE,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,WAAW,CAAC;CAC7D;AAED,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,OAAO,CAAC,QAAQ,CAAqC;IAE/C,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,WAAW;CAY5D"}
@@ -1,18 +0,0 @@
1
- export class InProcessEventBus {
2
- handlers = new Map();
3
- async publish(event) {
4
- const handlers = this.handlers.get(event.type) || [];
5
- for (const handler of handlers) {
6
- await handler(event);
7
- }
8
- }
9
- subscribe(type, handler) {
10
- const existing = this.handlers.get(type) || [];
11
- this.handlers.set(type, [...existing, handler]);
12
- return () => {
13
- const current = this.handlers.get(type) || [];
14
- this.handlers.set(type, current.filter((h) => h !== handler));
15
- };
16
- }
17
- }
18
- //# sourceMappingURL=event-bus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/kernel/event-bus.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,iBAAiB;IACpB,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IAErD,KAAK,CAAC,OAAO,CAAC,KAAmB;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACrD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,OAAqB;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAEhD,OAAO,GAAG,EAAE;YACV,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,IAAI,EACJ,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CACrC,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CACF"}
@@ -1,22 +0,0 @@
1
- export declare class ProviderNotFound extends Error {
2
- constructor(providerId: string);
3
- }
4
- export declare class ProviderAuthError extends Error {
5
- constructor(providerId: string);
6
- }
7
- export declare class ProviderRequestError extends Error {
8
- constructor(providerId: string, message: string);
9
- }
10
- export declare class ProviderNetworkError extends Error {
11
- constructor(providerId: string);
12
- }
13
- export declare class ContextReadError extends Error {
14
- constructor(path: string, reason: string);
15
- }
16
- export declare class ProviderStreamingUnsupported extends Error {
17
- constructor(providerId: string);
18
- }
19
- export declare class StreamingToolCallUnsupported extends Error {
20
- constructor();
21
- }
22
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/model/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,UAAU,EAAE,MAAM;CAG/B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,UAAU,EAAE,MAAM;CAG/B;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAGhD;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,UAAU,EAAE,MAAM;CAG/B;AAED,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAGzC;AAED,qBAAa,4BAA6B,SAAQ,KAAK;gBACzC,UAAU,EAAE,MAAM;CAG/B;AAED,qBAAa,4BAA6B,SAAQ,KAAK;;CAItD"}
@@ -1,36 +0,0 @@
1
- export class ProviderNotFound extends Error {
2
- constructor(providerId) {
3
- super(`Provider not found: ${providerId}`);
4
- }
5
- }
6
- export class ProviderAuthError extends Error {
7
- constructor(providerId) {
8
- super(`Provider authentication failed: ${providerId}`);
9
- }
10
- }
11
- export class ProviderRequestError extends Error {
12
- constructor(providerId, message) {
13
- super(`Provider request error (${providerId}): ${message}`);
14
- }
15
- }
16
- export class ProviderNetworkError extends Error {
17
- constructor(providerId) {
18
- super(`Provider network error: ${providerId}`);
19
- }
20
- }
21
- export class ContextReadError extends Error {
22
- constructor(path, reason) {
23
- super(`Context read error (${path}): ${reason}`);
24
- }
25
- }
26
- export class ProviderStreamingUnsupported extends Error {
27
- constructor(providerId) {
28
- super(`Provider does not support streaming: ${providerId}`);
29
- }
30
- }
31
- export class StreamingToolCallUnsupported extends Error {
32
- constructor() {
33
- super('Tool calling with streaming is not supported in MVP7');
34
- }
35
- }
36
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/model/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,UAAkB;QAC5B,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,UAAkB;QAC5B,KAAK,CAAC,mCAAmC,UAAU,EAAE,CAAC,CAAC;IACzD,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,UAAkB,EAAE,OAAe;QAC7C,KAAK,CAAC,2BAA2B,UAAU,MAAM,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,UAAkB;QAC5B,KAAK,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC;IACjD,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,IAAY,EAAE,MAAc;QACtC,KAAK,CAAC,uBAAuB,IAAI,MAAM,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IACrD,YAAY,UAAkB;QAC5B,KAAK,CAAC,wCAAwC,UAAU,EAAE,CAAC,CAAC;IAC9D,CAAC;CACF;AAED,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IACrD;QACE,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAChE,CAAC;CACF"}
@@ -1,8 +0,0 @@
1
- import { ModelProvider, ModelInvocationRequest, ModelInvocationResult } from './types.js';
2
- import { ModelStreamCallbacks } from './stream-types.js';
3
- export declare class MockProvider implements ModelProvider {
4
- id: string;
5
- invoke(request: ModelInvocationRequest): Promise<ModelInvocationResult>;
6
- invokeStream(request: ModelInvocationRequest, callbacks: ModelStreamCallbacks): Promise<ModelInvocationResult>;
7
- }
8
- //# sourceMappingURL=mock-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mock-provider.d.ts","sourceRoot":"","sources":["../../src/model/mock-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,qBAAqB,EAAiB,MAAM,YAAY,CAAC;AACzG,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAMzD,qBAAa,YAAa,YAAW,aAAa;IAChD,EAAE,SAAU;IAEN,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA0BvE,YAAY,CAAC,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAgCrH"}
@@ -1,59 +0,0 @@
1
- function estimateTokens(text) {
2
- return Math.ceil(text.length / 4);
3
- }
4
- export class MockProvider {
5
- id = 'mock';
6
- async invoke(request) {
7
- if (request.metadata?.mock_tool_call) {
8
- const mockCall = request.metadata.mock_tool_call;
9
- return {
10
- output: '',
11
- provider: this.id,
12
- model: request.model,
13
- tool_call: mockCall,
14
- usage: { input_tokens: 0, output_tokens: 0, total_tokens: 0 },
15
- };
16
- }
17
- const inputTokens = estimateTokens(request.input);
18
- const contextTokens = request.context ? estimateTokens(request.context) : 0;
19
- return {
20
- output: `[mock:${request.model}] ${request.input.slice(0, 200)}${request.input.length > 200 ? '...' : ''}`,
21
- provider: this.id,
22
- model: request.model,
23
- usage: {
24
- input_tokens: inputTokens + contextTokens,
25
- output_tokens: estimateTokens('[mock]'),
26
- total_tokens: inputTokens + contextTokens + estimateTokens('[mock]'),
27
- },
28
- };
29
- }
30
- async invokeStream(request, callbacks) {
31
- const chunkSize = 20;
32
- const fullOutput = `[mock:${request.model}] ${request.input.slice(0, 200)}${request.input.length > 200 ? '...' : ''}`;
33
- await callbacks.onStart?.({ provider: this.id, model: request.model });
34
- for (let i = 0; i < fullOutput.length; i += chunkSize) {
35
- const text = fullOutput.slice(i, i + chunkSize);
36
- await callbacks.onChunk?.({
37
- provider: this.id,
38
- model: request.model,
39
- chunk_index: Math.floor(i / chunkSize),
40
- text,
41
- });
42
- }
43
- const inputTokens = estimateTokens(request.input);
44
- const contextTokens = request.context ? estimateTokens(request.context) : 0;
45
- const result = {
46
- output: fullOutput,
47
- provider: this.id,
48
- model: request.model,
49
- usage: {
50
- input_tokens: inputTokens + contextTokens,
51
- output_tokens: estimateTokens(fullOutput),
52
- total_tokens: inputTokens + contextTokens + estimateTokens(fullOutput),
53
- },
54
- };
55
- await callbacks.onComplete?.(result);
56
- return result;
57
- }
58
- }
59
- //# sourceMappingURL=mock-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mock-provider.js","sourceRoot":"","sources":["../../src/model/mock-provider.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { ModelProvider, ModelInvocationRequest, ModelInvocationResult } from './types.js';
2
- export declare class OpenAIProvider implements ModelProvider {
3
- id: string;
4
- private baseUrl;
5
- private buildChatBody;
6
- invoke(request: ModelInvocationRequest): Promise<ModelInvocationResult>;
7
- invokeStream(request: ModelInvocationRequest, callbacks: import('./stream-types.js').ModelStreamCallbacks): Promise<ModelInvocationResult>;
8
- }
9
- //# sourceMappingURL=openai-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../src/model/openai-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,qBAAqB,EAAkB,MAAM,YAAY,CAAC;AA4B1G,qBAAa,cAAe,YAAW,aAAa;IAClD,EAAE,SAAY;IACd,OAAO,CAAC,OAAO,CAAgD;IAE/D,OAAO,CAAC,aAAa;IAuBf,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAuFvE,YAAY,CAChB,OAAO,EAAE,sBAAsB,EAC/B,SAAS,EAAE,OAAO,mBAAmB,EAAE,oBAAoB,GAC1D,OAAO,CAAC,qBAAqB,CAAC;CA+FlC"}