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,105 +0,0 @@
1
- import { FileStateStore } from './file-store.js';
2
- import { CaseStatus } from '../types/case.js';
3
- import { mkdirSync, writeFileSync, readFileSync, existsSync } from 'fs';
4
- import { join, dirname, resolve, sep } from 'path';
5
- import yaml from 'js-yaml';
6
- export class CaseStore {
7
- index;
8
- fileStore;
9
- constructor(baseDir, index) {
10
- this.index = index;
11
- this.fileStore = new FileStateStore(baseDir);
12
- }
13
- createCase(caseId, workflow, rawRequest) {
14
- const caseDir = this.fileStore.getCaseDir(caseId);
15
- mkdirSync(caseDir, { recursive: true });
16
- const meta = {
17
- case_id: caseId,
18
- workflow_id: workflow.id,
19
- workflow_version: workflow.version,
20
- title: workflow.name || workflow.id,
21
- status: CaseStatus.CREATED,
22
- created_at: new Date().toISOString(),
23
- updated_at: new Date().toISOString(),
24
- };
25
- writeFileSync(join(caseDir, 'case.yaml'), yaml.dump(meta));
26
- writeFileSync(join(caseDir, 'workflow.yaml'), yaml.dump(workflow));
27
- this.index?.insertCase({
28
- id: caseId,
29
- workflow_id: workflow.id,
30
- status: meta.status,
31
- created_at: meta.created_at,
32
- updated_at: meta.updated_at,
33
- path: caseDir,
34
- });
35
- const state = {
36
- case_id: caseId,
37
- workflow_id: workflow.id,
38
- status: 'pending',
39
- execution_mode: 'sequential',
40
- completed_steps: [],
41
- failed_steps: [],
42
- skipped_steps: [],
43
- step_results: {},
44
- step_statuses: {},
45
- variables: {},
46
- gates: {},
47
- started_at: meta.created_at,
48
- updated_at: meta.created_at,
49
- };
50
- this.fileStore.writeState(caseId, state);
51
- }
52
- loadWorkflowSnapshot(caseId) {
53
- const path = join(this.fileStore.getCaseDir(caseId), 'workflow.yaml');
54
- const content = readFileSync(path, 'utf-8');
55
- return yaml.load(content);
56
- }
57
- updateCaseStatus(caseId, status) {
58
- const caseDir = this.fileStore.getCaseDir(caseId);
59
- const path = join(caseDir, 'case.yaml');
60
- if (!existsSync(path))
61
- return;
62
- const meta = yaml.load(readFileSync(path, 'utf-8'));
63
- meta.status = status;
64
- meta.updated_at = new Date().toISOString();
65
- writeFileSync(path, yaml.dump(meta));
66
- this.index?.insertCase({
67
- id: caseId,
68
- workflow_id: String(meta.workflow_id || ''),
69
- status: String(meta.status),
70
- created_at: String(meta.created_at || ''),
71
- updated_at: String(meta.updated_at),
72
- path: caseDir,
73
- });
74
- }
75
- writeState(caseId, state) {
76
- this.fileStore.writeState(caseId, state);
77
- }
78
- readState(caseId) {
79
- return this.fileStore.readState(caseId);
80
- }
81
- appendEvent(caseId, event) {
82
- this.fileStore.appendEvent(caseId, event);
83
- }
84
- readEvents(caseId) {
85
- return this.fileStore.readEvents(caseId);
86
- }
87
- writeOutput(caseId, stepId, stdout, stderr) {
88
- this.fileStore.writeOutput(caseId, stepId, stdout, stderr);
89
- }
90
- getStepResult(caseId, stepId) {
91
- const state = this.readState(caseId);
92
- return state?.step_results[stepId];
93
- }
94
- writeArtifact(caseId, stepId, artifactPath, content) {
95
- const caseDir = this.fileStore.getCaseDir(caseId);
96
- const artifactsRoot = resolve(caseDir, 'artifacts');
97
- const fullPath = resolve(artifactsRoot, artifactPath);
98
- if (!fullPath.startsWith(artifactsRoot + sep)) {
99
- throw new Error(`Invalid artifact path: ${artifactPath}. Path traversal detected.`);
100
- }
101
- mkdirSync(dirname(fullPath), { recursive: true });
102
- writeFileSync(fullPath, content);
103
- }
104
- }
105
- //# sourceMappingURL=case-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"case-store.js","sourceRoot":"","sources":["../../src/state/case-store.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { StateStore } from './store.js';
2
- import { ExecutionState } from '../types/state.js';
3
- import { RuntimeEvent } from '../types/events.js';
4
- export declare class FileStateStore implements StateStore {
5
- private baseDir;
6
- constructor(baseDir: string);
7
- getCaseDir(caseId: string): string;
8
- private ensureCaseDir;
9
- writeState(caseId: string, state: ExecutionState): void;
10
- readState(caseId: string): ExecutionState | null;
11
- appendEvent(caseId: string, event: RuntimeEvent): void;
12
- readEvents(caseId: string): RuntimeEvent[];
13
- writeOutput(caseId: string, stepId: string, stdout: string, stderr?: string): void;
14
- }
15
- //# sourceMappingURL=file-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-store.d.ts","sourceRoot":"","sources":["../../src/state/file-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,qBAAa,cAAe,YAAW,UAAU;IACnC,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,MAAM;IAEnC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIlC,OAAO,CAAC,aAAa;IAMrB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI;IAQvD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAOhD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAOtD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IAU1C,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;CAQnF"}
@@ -1,55 +0,0 @@
1
- import { mkdirSync, writeFileSync, readFileSync, renameSync, existsSync, appendFileSync } from 'fs';
2
- import { join } from 'path';
3
- export class FileStateStore {
4
- baseDir;
5
- constructor(baseDir) {
6
- this.baseDir = baseDir;
7
- }
8
- getCaseDir(caseId) {
9
- return join(this.baseDir, 'cases', caseId);
10
- }
11
- ensureCaseDir(caseId) {
12
- const dir = this.getCaseDir(caseId);
13
- mkdirSync(dir, { recursive: true });
14
- mkdirSync(join(dir, 'outputs'), { recursive: true });
15
- }
16
- writeState(caseId, state) {
17
- this.ensureCaseDir(caseId);
18
- const statePath = join(this.getCaseDir(caseId), 'state.json');
19
- const tmpPath = statePath + '.tmp';
20
- writeFileSync(tmpPath, JSON.stringify(state, null, 2));
21
- renameSync(tmpPath, statePath);
22
- }
23
- readState(caseId) {
24
- const statePath = join(this.getCaseDir(caseId), 'state.json');
25
- if (!existsSync(statePath))
26
- return null;
27
- const content = readFileSync(statePath, 'utf-8');
28
- return JSON.parse(content);
29
- }
30
- appendEvent(caseId, event) {
31
- this.ensureCaseDir(caseId);
32
- const eventsPath = join(this.getCaseDir(caseId), 'events.jsonl');
33
- const line = JSON.stringify(event) + '\n';
34
- appendFileSync(eventsPath, line);
35
- }
36
- readEvents(caseId) {
37
- const eventsPath = join(this.getCaseDir(caseId), 'events.jsonl');
38
- if (!existsSync(eventsPath))
39
- return [];
40
- const content = readFileSync(eventsPath, 'utf-8');
41
- return content
42
- .split('\n')
43
- .filter((line) => line.trim())
44
- .map((line) => JSON.parse(line));
45
- }
46
- writeOutput(caseId, stepId, stdout, stderr) {
47
- this.ensureCaseDir(caseId);
48
- const outputsDir = join(this.getCaseDir(caseId), 'outputs');
49
- writeFileSync(join(outputsDir, `${stepId}.stdout.txt`), stdout);
50
- if (stderr !== undefined) {
51
- writeFileSync(join(outputsDir, `${stepId}.stderr.txt`), stderr);
52
- }
53
- }
54
- }
55
- //# sourceMappingURL=file-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-store.js","sourceRoot":"","sources":["../../src/state/file-store.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { CaseStore } from './case-store.js';
2
- import { GateState } from '../types/state.js';
3
- import { SQLiteIndex } from './sqlite-index.js';
4
- export declare class GateStore {
5
- private index?;
6
- private caseStore;
7
- constructor(caseStoreOrPath: CaseStore | string, index?: SQLiteIndex | undefined);
8
- createGate(caseId: string, stepId: string, type?: string, payload?: Record<string, unknown>): string;
9
- getGate(gateId: string): {
10
- caseId: string;
11
- stepId: string;
12
- gate: GateState;
13
- } | null;
14
- approveGate(gateId: string, approvedBy: string): void;
15
- rejectGate(gateId: string, rejectedBy: string): void;
16
- private updateGate;
17
- }
18
- //# sourceMappingURL=gate-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gate-store.d.ts","sourceRoot":"","sources":["../../src/state/gate-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,SAAS;IAKlB,OAAO,CAAC,KAAK,CAAC;IAJhB,OAAO,CAAC,SAAS,CAAY;gBAG3B,eAAe,EAAE,SAAS,GAAG,MAAM,EAC3B,KAAK,CAAC,EAAE,WAAW,YAAA;IAS7B,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAkCpG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,GAAG,IAAI;IA2BnF,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAIrD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAIpD,OAAO,CAAC,UAAU;CAiBnB"}
@@ -1,91 +0,0 @@
1
- import { CaseStore } from './case-store.js';
2
- export class GateStore {
3
- index;
4
- caseStore;
5
- constructor(caseStoreOrPath, index) {
6
- this.index = index;
7
- if (typeof caseStoreOrPath === 'string') {
8
- this.caseStore = new CaseStore(caseStoreOrPath);
9
- }
10
- else {
11
- this.caseStore = caseStoreOrPath;
12
- }
13
- }
14
- createGate(caseId, stepId, type, payload) {
15
- const gateId = `gate_${caseId}_${stepId}`;
16
- const state = this.caseStore.readState(caseId);
17
- if (!state)
18
- throw new Error(`Case not found: ${caseId}`);
19
- // If gate already exists, don't overwrite
20
- if (state.gates[gateId]) {
21
- return gateId;
22
- }
23
- const gate = {
24
- step_id: stepId,
25
- status: 'pending',
26
- requested_at: new Date().toISOString(),
27
- type: type ?? 'manual',
28
- payload,
29
- };
30
- state.gates[gateId] = gate;
31
- this.caseStore.writeState(caseId, state);
32
- this.index?.insertGate({
33
- id: gateId,
34
- case_id: caseId,
35
- step_id: stepId,
36
- status: gate.status,
37
- requested_at: gate.requested_at,
38
- type: gate.type,
39
- payload: gate.payload ? JSON.stringify(gate.payload) : undefined,
40
- });
41
- return gateId;
42
- }
43
- getGate(gateId) {
44
- // gateId format: gate_{caseId}_{stepId}
45
- // caseId format: case_{uuid} (uuid has no underscores)
46
- // stepId may contain underscores
47
- const prefix = 'gate_';
48
- if (!gateId.startsWith(prefix))
49
- return null;
50
- const rest = gateId.slice(prefix.length);
51
- const casePrefix = 'case_';
52
- if (!rest.startsWith(casePrefix))
53
- return null;
54
- const afterCasePrefix = rest.slice(casePrefix.length);
55
- const firstUnderscore = afterCasePrefix.indexOf('_');
56
- if (firstUnderscore === -1)
57
- return null;
58
- const caseId = 'case_' + afterCasePrefix.slice(0, firstUnderscore);
59
- const stepId = afterCasePrefix.slice(firstUnderscore + 1);
60
- const state = this.caseStore.readState(caseId);
61
- if (!state)
62
- return null;
63
- const gate = state.gates[gateId];
64
- if (!gate)
65
- return null;
66
- return { caseId, stepId, gate };
67
- }
68
- approveGate(gateId, approvedBy) {
69
- this.updateGate(gateId, 'approved', approvedBy);
70
- }
71
- rejectGate(gateId, rejectedBy) {
72
- this.updateGate(gateId, 'rejected', rejectedBy);
73
- }
74
- updateGate(gateId, status, actor) {
75
- const found = this.getGate(gateId);
76
- if (!found)
77
- throw new Error(`Gate not found: ${gateId}`);
78
- const { caseId } = found;
79
- const state = this.caseStore.readState(caseId);
80
- const respondedAt = new Date().toISOString();
81
- state.gates[gateId].status = status;
82
- state.gates[gateId].responded_at = respondedAt;
83
- state.gates[gateId].responded_by = actor;
84
- if (status === 'rejected') {
85
- state.status = 'failed';
86
- }
87
- this.caseStore.writeState(caseId, state);
88
- this.index?.updateGate(gateId, status, respondedAt);
89
- }
90
- }
91
- //# sourceMappingURL=gate-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gate-store.js","sourceRoot":"","sources":["../../src/state/gate-store.ts"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- export declare class SQLiteIndex {
2
- private db;
3
- constructor(dbPath: string);
4
- private init;
5
- insertCase(data: {
6
- id: string;
7
- workflow_id: string;
8
- status: string;
9
- created_at: string;
10
- updated_at: string;
11
- path: string;
12
- }): void;
13
- listCases(status?: string): Array<{
14
- id: string;
15
- workflow_id: string;
16
- status: string;
17
- }>;
18
- insertGate(data: {
19
- id: string;
20
- case_id: string;
21
- step_id: string;
22
- status: string;
23
- requested_at: string;
24
- type?: string;
25
- payload?: string;
26
- }): void;
27
- updateGate(id: string, status: string, responded_at: string): void;
28
- listGates(caseId?: string): Array<{
29
- id: string;
30
- case_id: string;
31
- step_id: string;
32
- status: string;
33
- }>;
34
- }
35
- //# sourceMappingURL=sqlite-index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlite-index.d.ts","sourceRoot":"","sources":["../../src/state/sqlite-index.ts"],"names":[],"mappings":"AAEA,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAAoB;gBAElB,MAAM,EAAE,MAAM;IAK1B,OAAO,CAAC,IAAI;IAgCZ,UAAU,CAAC,IAAI,EAAE;QACf,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,IAAI;IAQR,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAOtF,UAAU,CAAC,IAAI,EAAE;QACf,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI;IAgBR,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAIlE,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAMpG"}
@@ -1,69 +0,0 @@
1
- import Database from 'better-sqlite3';
2
- export class SQLiteIndex {
3
- db;
4
- constructor(dbPath) {
5
- this.db = new Database(dbPath);
6
- this.init();
7
- }
8
- init() {
9
- this.db.exec(`
10
- CREATE TABLE IF NOT EXISTS cases (
11
- id TEXT PRIMARY KEY,
12
- workflow_id TEXT NOT NULL,
13
- status TEXT NOT NULL,
14
- created_at TEXT NOT NULL,
15
- updated_at TEXT NOT NULL,
16
- path TEXT NOT NULL
17
- );
18
-
19
- CREATE TABLE IF NOT EXISTS gates (
20
- id TEXT PRIMARY KEY,
21
- case_id TEXT NOT NULL,
22
- step_id TEXT NOT NULL,
23
- status TEXT NOT NULL,
24
- requested_at TEXT NOT NULL,
25
- responded_at TEXT,
26
- type TEXT,
27
- payload TEXT
28
- );
29
-
30
- CREATE TABLE IF NOT EXISTS events_index (
31
- id TEXT PRIMARY KEY,
32
- case_id TEXT NOT NULL,
33
- type TEXT NOT NULL,
34
- step_id TEXT,
35
- timestamp TEXT NOT NULL
36
- );
37
- `);
38
- }
39
- insertCase(data) {
40
- const stmt = this.db.prepare(`
41
- INSERT OR REPLACE INTO cases (id, workflow_id, status, created_at, updated_at, path)
42
- VALUES (?, ?, ?, ?, ?, ?)
43
- `);
44
- stmt.run(data.id, data.workflow_id, data.status, data.created_at, data.updated_at, data.path);
45
- }
46
- listCases(status) {
47
- if (status) {
48
- return this.db.prepare('SELECT id, workflow_id, status FROM cases WHERE status = ?').all(status);
49
- }
50
- return this.db.prepare('SELECT id, workflow_id, status FROM cases').all();
51
- }
52
- insertGate(data) {
53
- const stmt = this.db.prepare(`
54
- INSERT OR REPLACE INTO gates (id, case_id, step_id, status, requested_at, type, payload)
55
- VALUES (?, ?, ?, ?, ?, ?, ?)
56
- `);
57
- stmt.run(data.id, data.case_id, data.step_id, data.status, data.requested_at, data.type ?? null, data.payload ?? null);
58
- }
59
- updateGate(id, status, responded_at) {
60
- this.db.prepare('UPDATE gates SET status = ?, responded_at = ? WHERE id = ?').run(status, responded_at, id);
61
- }
62
- listGates(caseId) {
63
- if (caseId) {
64
- return this.db.prepare('SELECT id, case_id, step_id, status FROM gates WHERE case_id = ?').all(caseId);
65
- }
66
- return this.db.prepare('SELECT id, case_id, step_id, status FROM gates').all();
67
- }
68
- }
69
- //# sourceMappingURL=sqlite-index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlite-index.js","sourceRoot":"","sources":["../../src/state/sqlite-index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,OAAO,WAAW;IACd,EAAE,CAAoB;IAE9B,YAAY,MAAc;QACxB,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4BZ,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,IAOV;QACC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAG5B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChG,CAAC;IAED,SAAS,CAAC,MAAe;QACvB,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAQ,CAAC;QAC1G,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,EAAS,CAAC;IACnF,CAAC;IAED,UAAU,CAAC,IAQV;QACC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAG5B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,IAAI,IAAI,IAAI,EACjB,IAAI,CAAC,OAAO,IAAI,IAAI,CACrB,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,EAAU,EAAE,MAAc,EAAE,YAAoB;QACzD,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,SAAS,CAAC,MAAe;QACvB,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kEAAkE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAQ,CAAC;QAChH,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC,GAAG,EAAS,CAAC;IACxF,CAAC;CACF"}
@@ -1,11 +0,0 @@
1
- import { ExecutionState } from '../types/state.js';
2
- import { RuntimeEvent } from '../types/events.js';
3
- export interface StateStore {
4
- getCaseDir(caseId: string): string;
5
- writeState(caseId: string, state: ExecutionState): void;
6
- readState(caseId: string): ExecutionState | null;
7
- appendEvent(caseId: string, event: RuntimeEvent): void;
8
- readEvents(caseId: string): RuntimeEvent[];
9
- writeOutput(caseId: string, stepId: string, stdout: string, stderr?: string): void;
10
- }
11
- //# sourceMappingURL=store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/state/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACxD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;IACjD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACvD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IAC3C,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/state/store.ts"],"names":[],"mappings":""}
@@ -1,25 +0,0 @@
1
- export declare class ToolNotFound extends Error {
2
- constructor(toolId: string);
3
- }
4
- export declare class ToolNotAllowed extends Error {
5
- constructor(toolId: string, agentId: string);
6
- }
7
- export declare class ToolExecutorNotFound extends Error {
8
- constructor(executorId: string);
9
- }
10
- export declare class ToolExecutionError extends Error {
11
- constructor(toolId: string, reason: string);
12
- }
13
- export declare class ToolApprovalRejected extends Error {
14
- constructor(toolId: string, reason: string);
15
- }
16
- export declare class ContextToolError extends Error {
17
- constructor(reason: string);
18
- }
19
- export declare class ToolCallLimitExceeded extends Error {
20
- constructor();
21
- }
22
- export declare class ToolDenied extends Error {
23
- constructor(toolId: string, reason: string);
24
- }
25
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/tool/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;gBACzB,MAAM,EAAE,MAAM;CAG3B;AAED,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAG5C;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,UAAU,EAAE,MAAM;CAG/B;AAED,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAG3C;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAG3C;AAED,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,MAAM,EAAE,MAAM;CAG3B;AAED,qBAAa,qBAAsB,SAAQ,KAAK;;CAI/C;AAED,qBAAa,UAAW,SAAQ,KAAK;gBACvB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAG3C"}
@@ -1,41 +0,0 @@
1
- export class ToolNotFound extends Error {
2
- constructor(toolId) {
3
- super(`Tool not found: ${toolId}`);
4
- }
5
- }
6
- export class ToolNotAllowed extends Error {
7
- constructor(toolId, agentId) {
8
- super(`Tool '${toolId}' not allowed for agent '${agentId}'`);
9
- }
10
- }
11
- export class ToolExecutorNotFound extends Error {
12
- constructor(executorId) {
13
- super(`Tool executor not found: ${executorId}`);
14
- }
15
- }
16
- export class ToolExecutionError extends Error {
17
- constructor(toolId, reason) {
18
- super(`Tool execution error (${toolId}): ${reason}`);
19
- }
20
- }
21
- export class ToolApprovalRejected extends Error {
22
- constructor(toolId, reason) {
23
- super(`Tool '${toolId}' approval rejected: ${reason}`);
24
- }
25
- }
26
- export class ContextToolError extends Error {
27
- constructor(reason) {
28
- super(`Context tool error: ${reason}`);
29
- }
30
- }
31
- export class ToolCallLimitExceeded extends Error {
32
- constructor() {
33
- super('Tool call limit exceeded: at most one tool call per agent step');
34
- }
35
- }
36
- export class ToolDenied extends Error {
37
- constructor(toolId, reason) {
38
- super(`Tool '${toolId}' denied by policy: ${reason}`);
39
- }
40
- }
41
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/tool/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,MAAc;QACxB,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,YAAY,MAAc,EAAE,OAAe;QACzC,KAAK,CAAC,SAAS,MAAM,4BAA4B,OAAO,GAAG,CAAC,CAAC;IAC/D,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,UAAkB;QAC5B,KAAK,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;IAClD,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,MAAc,EAAE,MAAc;QACxC,KAAK,CAAC,yBAAyB,MAAM,MAAM,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,MAAc,EAAE,MAAc;QACxC,KAAK,CAAC,SAAS,MAAM,wBAAwB,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,MAAc;QACxB,KAAK,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C;QACE,KAAK,CAAC,gEAAgE,CAAC,CAAC;IAC1E,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,YAAY,MAAc,EAAE,MAAc;QACxC,KAAK,CAAC,SAAS,MAAM,uBAAuB,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;CACF"}
@@ -1,6 +0,0 @@
1
- import { ToolExecutor, ToolExecutionInput, ToolExecutionResult, ToolExecutionContext } from '../types.js';
2
- export declare class ContextReadToolExecutor implements ToolExecutor {
3
- id: string;
4
- execute(input: ToolExecutionInput, ctx: ToolExecutionContext): Promise<ToolExecutionResult>;
5
- }
6
- //# sourceMappingURL=context-read.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-read.d.ts","sourceRoot":"","sources":["../../../src/tool/executors/context-read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAK1G,qBAAa,uBAAwB,YAAW,YAAY;IAC1D,EAAE,SAAkB;IAEd,OAAO,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAoClG"}
@@ -1,39 +0,0 @@
1
- import { ContextToolError } from '../errors.js';
2
- import { resolve } from 'path';
3
- import { existsSync, readFileSync, statSync } from 'fs';
4
- export class ContextReadToolExecutor {
5
- id = 'context.read';
6
- async execute(input, ctx) {
7
- const path = input.input?.path || '.wolf/context/context.md';
8
- // Validate path
9
- if (path.startsWith('/')) {
10
- throw new ContextToolError('Path must be relative');
11
- }
12
- if (path.includes('..')) {
13
- throw new ContextToolError('Path must not contain parent traversal');
14
- }
15
- const resolvedPath = resolve(ctx.project_root, path);
16
- if (!resolvedPath.startsWith(ctx.project_root)) {
17
- throw new ContextToolError('Path must be inside project root');
18
- }
19
- if (!existsSync(resolvedPath)) {
20
- throw new ContextToolError(`Context file not found: ${path}`);
21
- }
22
- const stats = statSync(resolvedPath);
23
- if (stats.size > 1048576) {
24
- throw new ContextToolError(`File exceeds 1MB limit: ${path}`);
25
- }
26
- try {
27
- const content = readFileSync(resolvedPath, 'utf-8');
28
- return {
29
- tool_id: this.id,
30
- output: content,
31
- metadata: { path, bytes_read: stats.size },
32
- };
33
- }
34
- catch (err) {
35
- throw new ContextToolError(`Failed to read file: ${path}`);
36
- }
37
- }
38
- }
39
- //# sourceMappingURL=context-read.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-read.js","sourceRoot":"","sources":["../../../src/tool/executors/context-read.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAExD,MAAM,OAAO,uBAAuB;IAClC,EAAE,GAAG,cAAc,CAAC;IAEpB,KAAK,CAAC,OAAO,CAAC,KAAyB,EAAE,GAAyB;QAChE,MAAM,IAAI,GAAI,KAAK,CAAC,KAAuC,EAAE,IAAI,IAAI,0BAA0B,CAAC;QAEhG,gBAAgB;QAChB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,gBAAgB,CAAC,wCAAwC,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,gBAAgB,CAAC,kCAAkC,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,gBAAgB,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,gBAAgB,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACpD,OAAO;gBACL,OAAO,EAAE,IAAI,CAAC,EAAE;gBAChB,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE;aAC3C,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,gBAAgB,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF"}
@@ -1,13 +0,0 @@
1
- import { ToolDefinition, ToolExecutor } from './types.js';
2
- export declare class ToolRegistry {
3
- private definitions;
4
- private executors;
5
- registerDefinition(def: ToolDefinition): void;
6
- registerExecutor(executor: ToolExecutor): void;
7
- getDefinition(id: string): ToolDefinition | undefined;
8
- requireDefinition(id: string): ToolDefinition;
9
- requireExecutor(executorId: string): ToolExecutor;
10
- list(): ToolDefinition[];
11
- listForAgent(agentTools: string[]): ToolDefinition[];
12
- }
13
- //# sourceMappingURL=registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tool/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1D,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,SAAS,CAAmC;IAEpD,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAO7C,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAO9C,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIrD,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc;IAQ7C,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY;IAQjD,IAAI,IAAI,cAAc,EAAE;IAIxB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE;CAWrD"}