@octo-cyber/ai 0.5.6 → 0.5.7

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 (175) hide show
  1. package/dist/BranchDecisionEngine.d.ts +73 -0
  2. package/dist/BranchDecisionEngine.d.ts.map +1 -0
  3. package/dist/BranchDecisionEngine.js +195 -0
  4. package/dist/BranchDecisionEngine.js.map +1 -0
  5. package/dist/agent/coding-tools.d.ts +7 -0
  6. package/dist/agent/coding-tools.d.ts.map +1 -0
  7. package/dist/agent/coding-tools.js +181 -0
  8. package/dist/agent/coding-tools.js.map +1 -0
  9. package/dist/ai.module.d.ts +16 -0
  10. package/dist/ai.module.d.ts.map +1 -0
  11. package/dist/ai.module.js +106 -0
  12. package/dist/ai.module.js.map +1 -0
  13. package/dist/cli/adapters/antigravity.adapter.d.ts +31 -0
  14. package/dist/cli/adapters/antigravity.adapter.d.ts.map +1 -0
  15. package/dist/cli/adapters/antigravity.adapter.js +248 -0
  16. package/dist/cli/adapters/antigravity.adapter.js.map +1 -0
  17. package/dist/cli/adapters/claude-cli.adapter.d.ts +23 -0
  18. package/dist/cli/adapters/claude-cli.adapter.d.ts.map +1 -0
  19. package/dist/cli/adapters/claude-cli.adapter.js +81 -0
  20. package/dist/cli/adapters/claude-cli.adapter.js.map +1 -0
  21. package/dist/cli/adapters/cli-proxy-api.adapter.d.ts +32 -0
  22. package/dist/cli/adapters/cli-proxy-api.adapter.d.ts.map +1 -0
  23. package/dist/cli/adapters/cli-proxy-api.adapter.js +239 -0
  24. package/dist/cli/adapters/cli-proxy-api.adapter.js.map +1 -0
  25. package/dist/cli/adapters/codex-cli.adapter.d.ts +22 -0
  26. package/dist/cli/adapters/codex-cli.adapter.d.ts.map +1 -0
  27. package/dist/cli/adapters/codex-cli.adapter.js +76 -0
  28. package/dist/cli/adapters/codex-cli.adapter.js.map +1 -0
  29. package/dist/cli/adapters/detect-cli.d.ts +11 -0
  30. package/dist/cli/adapters/detect-cli.d.ts.map +1 -0
  31. package/dist/cli/adapters/detect-cli.js +40 -0
  32. package/dist/cli/adapters/detect-cli.js.map +1 -0
  33. package/dist/cli/adapters/gemini-cli.adapter.d.ts +21 -0
  34. package/dist/cli/adapters/gemini-cli.adapter.d.ts.map +1 -0
  35. package/dist/cli/adapters/gemini-cli.adapter.js +72 -0
  36. package/dist/cli/adapters/gemini-cli.adapter.js.map +1 -0
  37. package/dist/cli/adapters/index.d.ts +4 -0
  38. package/dist/cli/adapters/index.d.ts.map +1 -0
  39. package/dist/cli/adapters/index.js +10 -0
  40. package/dist/cli/adapters/index.js.map +1 -0
  41. package/dist/cli/cli-executor.service.d.ts +25 -0
  42. package/dist/cli/cli-executor.service.d.ts.map +1 -0
  43. package/dist/cli/cli-executor.service.js +170 -0
  44. package/dist/cli/cli-executor.service.js.map +1 -0
  45. package/dist/cli/cli-registry.service.d.ts +38 -0
  46. package/dist/cli/cli-registry.service.d.ts.map +1 -0
  47. package/dist/cli/cli-registry.service.js +114 -0
  48. package/dist/cli/cli-registry.service.js.map +1 -0
  49. package/dist/cli/controllers/ai-cli.controller.d.ts +40 -0
  50. package/dist/cli/controllers/ai-cli.controller.d.ts.map +1 -0
  51. package/dist/cli/controllers/ai-cli.controller.js +208 -0
  52. package/dist/cli/controllers/ai-cli.controller.js.map +1 -0
  53. package/dist/cli/index.d.ts +8 -0
  54. package/dist/cli/index.d.ts.map +1 -0
  55. package/dist/cli/index.js +17 -0
  56. package/dist/cli/index.js.map +1 -0
  57. package/dist/cli/types.d.ts +153 -0
  58. package/dist/cli/types.d.ts.map +1 -0
  59. package/dist/cli/types.js +9 -0
  60. package/dist/cli/types.js.map +1 -0
  61. package/dist/cli/workspace.service.d.ts +42 -0
  62. package/dist/cli/workspace.service.d.ts.map +1 -0
  63. package/dist/cli/workspace.service.js +249 -0
  64. package/dist/cli/workspace.service.js.map +1 -0
  65. package/dist/index.d.ts +10 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +44 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/session/claude-code-session-manager.service.d.ts +28 -0
  70. package/dist/session/claude-code-session-manager.service.d.ts.map +1 -0
  71. package/dist/session/claude-code-session-manager.service.js +177 -0
  72. package/dist/session/claude-code-session-manager.service.js.map +1 -0
  73. package/dist/skill/controllers/skill-market.controller.d.ts +18 -0
  74. package/dist/skill/controllers/skill-market.controller.d.ts.map +1 -0
  75. package/dist/skill/controllers/skill-market.controller.js +128 -0
  76. package/dist/skill/controllers/skill-market.controller.js.map +1 -0
  77. package/dist/skill/controllers/skill.controller.d.ts +37 -0
  78. package/dist/skill/controllers/skill.controller.d.ts.map +1 -0
  79. package/dist/skill/controllers/skill.controller.js +295 -0
  80. package/dist/skill/controllers/skill.controller.js.map +1 -0
  81. package/dist/skill/entities/octo-skill.entity.d.ts +22 -0
  82. package/dist/skill/entities/octo-skill.entity.d.ts.map +1 -0
  83. package/dist/skill/entities/octo-skill.entity.js +91 -0
  84. package/dist/skill/entities/octo-skill.entity.js.map +1 -0
  85. package/dist/skill/index.d.ts +9 -0
  86. package/dist/skill/index.d.ts.map +1 -0
  87. package/dist/skill/index.js +21 -0
  88. package/dist/skill/index.js.map +1 -0
  89. package/dist/skill/services/skill-generator.service.d.ts +47 -0
  90. package/dist/skill/services/skill-generator.service.d.ts.map +1 -0
  91. package/dist/skill/services/skill-generator.service.js +232 -0
  92. package/dist/skill/services/skill-generator.service.js.map +1 -0
  93. package/dist/skill/services/skill-installer.service.d.ts +65 -0
  94. package/dist/skill/services/skill-installer.service.d.ts.map +1 -0
  95. package/dist/skill/services/skill-installer.service.js +258 -0
  96. package/dist/skill/services/skill-installer.service.js.map +1 -0
  97. package/dist/skill/services/skill-market.service.d.ts +60 -0
  98. package/dist/skill/services/skill-market.service.d.ts.map +1 -0
  99. package/dist/skill/services/skill-market.service.js +244 -0
  100. package/dist/skill/services/skill-market.service.js.map +1 -0
  101. package/dist/skill/services/skill-registry.service.d.ts +61 -0
  102. package/dist/skill/services/skill-registry.service.d.ts.map +1 -0
  103. package/dist/skill/services/skill-registry.service.js +159 -0
  104. package/dist/skill/services/skill-registry.service.js.map +1 -0
  105. package/dist/skill/types.d.ts +76 -0
  106. package/dist/skill/types.d.ts.map +1 -0
  107. package/dist/skill/types.js +6 -0
  108. package/dist/skill/types.js.map +1 -0
  109. package/dist/src/agent/agent-run-persistence.service.d.ts +82 -0
  110. package/dist/src/agent/agent-run-persistence.service.d.ts.map +1 -0
  111. package/dist/src/agent/agent-run-persistence.service.js +171 -0
  112. package/dist/src/agent/agent-run-persistence.service.js.map +1 -0
  113. package/dist/src/agent/agent-run-step.entity.d.ts +23 -0
  114. package/dist/src/agent/agent-run-step.entity.d.ts.map +1 -0
  115. package/dist/src/agent/agent-run-step.entity.js +76 -0
  116. package/dist/src/agent/agent-run-step.entity.js.map +1 -0
  117. package/dist/src/skill/services/skill-market-utils.d.ts +25 -0
  118. package/dist/src/skill/services/skill-market-utils.d.ts.map +1 -0
  119. package/dist/src/skill/services/skill-market-utils.js +22 -0
  120. package/dist/src/skill/services/skill-market-utils.js.map +1 -0
  121. package/dist/src/workflow-design/WorkflowAssembler.d.ts +10 -0
  122. package/dist/src/workflow-design/WorkflowAssembler.d.ts.map +1 -0
  123. package/dist/src/workflow-design/WorkflowAssembler.js +81 -0
  124. package/dist/src/workflow-design/WorkflowAssembler.js.map +1 -0
  125. package/dist/src/workflow-design/n8n-node-templates-data.d.ts +4 -0
  126. package/dist/src/workflow-design/n8n-node-templates-data.d.ts.map +1 -0
  127. package/dist/src/workflow-design/n8n-node-templates-data.js +290 -0
  128. package/dist/src/workflow-design/n8n-node-templates-data.js.map +1 -0
  129. package/dist/workflow-design/DocumentExtractorAgent.d.ts +47 -0
  130. package/dist/workflow-design/DocumentExtractorAgent.d.ts.map +1 -0
  131. package/dist/workflow-design/DocumentExtractorAgent.js +118 -0
  132. package/dist/workflow-design/DocumentExtractorAgent.js.map +1 -0
  133. package/dist/workflow-design/N8nNodeKnowledgeBase.d.ts +26 -0
  134. package/dist/workflow-design/N8nNodeKnowledgeBase.d.ts.map +1 -0
  135. package/dist/workflow-design/N8nNodeKnowledgeBase.js +320 -0
  136. package/dist/workflow-design/N8nNodeKnowledgeBase.js.map +1 -0
  137. package/dist/workflow-design/OctoAgentClient.d.ts +42 -0
  138. package/dist/workflow-design/OctoAgentClient.d.ts.map +1 -0
  139. package/dist/workflow-design/OctoAgentClient.js +166 -0
  140. package/dist/workflow-design/OctoAgentClient.js.map +1 -0
  141. package/dist/workflow-design/WorkflowDesignOrchestrator.d.ts +45 -0
  142. package/dist/workflow-design/WorkflowDesignOrchestrator.d.ts.map +1 -0
  143. package/dist/workflow-design/WorkflowDesignOrchestrator.js +265 -0
  144. package/dist/workflow-design/WorkflowDesignOrchestrator.js.map +1 -0
  145. package/dist/workflow-design/agents/ActionChainAgent.d.ts +9 -0
  146. package/dist/workflow-design/agents/ActionChainAgent.d.ts.map +1 -0
  147. package/dist/workflow-design/agents/ActionChainAgent.js +79 -0
  148. package/dist/workflow-design/agents/ActionChainAgent.js.map +1 -0
  149. package/dist/workflow-design/agents/CodeScriptAgent.d.ts +15 -0
  150. package/dist/workflow-design/agents/CodeScriptAgent.d.ts.map +1 -0
  151. package/dist/workflow-design/agents/CodeScriptAgent.js +96 -0
  152. package/dist/workflow-design/agents/CodeScriptAgent.js.map +1 -0
  153. package/dist/workflow-design/agents/LogicFlowAgent.d.ts +9 -0
  154. package/dist/workflow-design/agents/LogicFlowAgent.d.ts.map +1 -0
  155. package/dist/workflow-design/agents/LogicFlowAgent.js +78 -0
  156. package/dist/workflow-design/agents/LogicFlowAgent.js.map +1 -0
  157. package/dist/workflow-design/agents/TriggerAnalystAgent.d.ts +9 -0
  158. package/dist/workflow-design/agents/TriggerAnalystAgent.d.ts.map +1 -0
  159. package/dist/workflow-design/agents/TriggerAnalystAgent.js +65 -0
  160. package/dist/workflow-design/agents/TriggerAnalystAgent.js.map +1 -0
  161. package/dist/workflow-design/agents/WorkflowValidatorAgent.d.ts +9 -0
  162. package/dist/workflow-design/agents/WorkflowValidatorAgent.d.ts.map +1 -0
  163. package/dist/workflow-design/agents/WorkflowValidatorAgent.js +117 -0
  164. package/dist/workflow-design/agents/WorkflowValidatorAgent.js.map +1 -0
  165. package/dist/workflow-design/index.d.ts +12 -0
  166. package/dist/workflow-design/index.d.ts.map +1 -0
  167. package/dist/workflow-design/index.js +23 -0
  168. package/dist/workflow-design/index.js.map +1 -0
  169. package/dist/workflow-design/types.d.ts +155 -0
  170. package/dist/workflow-design/types.d.ts.map +1 -0
  171. package/dist/workflow-design/types.js +6 -0
  172. package/dist/workflow-design/types.js.map +1 -0
  173. package/package.json +2 -1
  174. package/web/dist/module.iife.js +254 -0
  175. package/web/dynamic-entry.tsx +94 -0
@@ -0,0 +1,82 @@
1
+ import type { Repository } from '@octo-cyber/core';
2
+ import { AgentRun } from './agent-run.entity.js';
3
+ import type { AgentRunStatus, AgentRunType } from './agent-run.entity.js';
4
+ import { AgentRunStep } from './agent-run-step.entity.js';
5
+ import type { StepStatus } from './agent-run-step.entity.js';
6
+ export interface CreateRunOptions {
7
+ agentType: AgentRunType;
8
+ prompt: string;
9
+ userId?: string;
10
+ maxRounds?: number;
11
+ metadata?: Record<string, unknown>;
12
+ }
13
+ export interface AddStepOptions {
14
+ runId: string;
15
+ stepIndex: number;
16
+ toolName: string;
17
+ input?: unknown;
18
+ output?: unknown;
19
+ status: StepStatus;
20
+ duration?: number;
21
+ }
22
+ export interface RunWithStepsDto {
23
+ id: string;
24
+ agentType: AgentRunType;
25
+ status: AgentRunStatus;
26
+ prompt: string;
27
+ output: string | null;
28
+ error: string | null;
29
+ rounds: number;
30
+ maxRounds: number;
31
+ userId: string | null;
32
+ duration: number | null;
33
+ startedAt: string | null;
34
+ endedAt: string | null;
35
+ createdAt: string;
36
+ steps: StepDto[];
37
+ }
38
+ export interface StepDto {
39
+ id: string;
40
+ stepIndex: number;
41
+ toolName: string;
42
+ input: unknown;
43
+ output: unknown;
44
+ status: StepStatus;
45
+ duration: number | null;
46
+ createdAt: string;
47
+ }
48
+ /**
49
+ * AgentRunPersistenceService — fine-grained persistence for agent runs and steps.
50
+ *
51
+ * Responsibilities:
52
+ * - createRun() — insert a new AgentRun row
53
+ * - updateRunStatus() — transition status + fill output/error/duration
54
+ * - addStep() — append an AgentRunStep row
55
+ * - getRunHistory() — list runs with their steps (newest first)
56
+ */
57
+ export declare class AgentRunPersistenceService {
58
+ private readonly logger;
59
+ private runRepo;
60
+ private stepRepo;
61
+ setRepositories(runRepo: Repository<AgentRun>, stepRepo: Repository<AgentRunStep>): void;
62
+ private getRunRepo;
63
+ private getStepRepo;
64
+ /** Create a new AgentRun row in pending state. */
65
+ createRun(opts: CreateRunOptions): Promise<AgentRun>;
66
+ /** Transition the run to a new status and optionally record output/error/duration. */
67
+ updateRunStatus(runId: string, status: AgentRunStatus, extra?: {
68
+ output?: string;
69
+ error?: string;
70
+ startedAt?: Date;
71
+ endedAt?: Date;
72
+ }): Promise<void>;
73
+ /** Record a single tool-call step within a run. */
74
+ addStep(opts: AddStepOptions): Promise<AgentRunStep>;
75
+ /** List runs newest-first, with their steps ordered by stepIndex. */
76
+ getRunHistory(limit?: number, userId?: string): Promise<RunWithStepsDto[]>;
77
+ /** Get a single run with its steps. */
78
+ getRunWithSteps(runId: string): Promise<RunWithStepsDto | null>;
79
+ private toRunWithStepsDto;
80
+ private toStepDto;
81
+ }
82
+ //# sourceMappingURL=agent-run-persistence.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-run-persistence.service.d.ts","sourceRoot":"","sources":["../../../src/agent/agent-run-persistence.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AgentRunPersistenceService = void 0;
10
+ const core_1 = require("@octo-cyber/core");
11
+ /**
12
+ * AgentRunPersistenceService — fine-grained persistence for agent runs and steps.
13
+ *
14
+ * Responsibilities:
15
+ * - createRun() — insert a new AgentRun row
16
+ * - updateRunStatus() — transition status + fill output/error/duration
17
+ * - addStep() — append an AgentRunStep row
18
+ * - getRunHistory() — list runs with their steps (newest first)
19
+ */
20
+ let AgentRunPersistenceService = class AgentRunPersistenceService {
21
+ logger = core_1.Container.get(core_1.LoggerService).child('AgentRunPersistenceService');
22
+ runRepo = null;
23
+ stepRepo = null;
24
+ setRepositories(runRepo, stepRepo) {
25
+ this.runRepo = runRepo;
26
+ this.stepRepo = stepRepo;
27
+ }
28
+ getRunRepo() {
29
+ if (!this.runRepo)
30
+ throw new Error('AgentRunPersistenceService: runRepo not initialized');
31
+ return this.runRepo;
32
+ }
33
+ getStepRepo() {
34
+ if (!this.stepRepo)
35
+ throw new Error('AgentRunPersistenceService: stepRepo not initialized');
36
+ return this.stepRepo;
37
+ }
38
+ /** Create a new AgentRun row in pending state. */
39
+ async createRun(opts) {
40
+ const repo = this.getRunRepo();
41
+ const run = repo.create({
42
+ agentType: opts.agentType,
43
+ status: 'pending',
44
+ prompt: opts.prompt,
45
+ userId: opts.userId ?? null,
46
+ maxRounds: opts.maxRounds ?? 20,
47
+ rounds: 0,
48
+ output: null,
49
+ error: null,
50
+ duration: null,
51
+ startedAt: null,
52
+ endedAt: null,
53
+ metadata: opts.metadata ? JSON.stringify(opts.metadata) : null,
54
+ });
55
+ return repo.save(run);
56
+ }
57
+ /** Transition the run to a new status and optionally record output/error/duration. */
58
+ async updateRunStatus(runId, status, extra) {
59
+ const repo = this.getRunRepo();
60
+ const patch = { status };
61
+ if (status === 'running' && !extra?.startedAt) {
62
+ patch.startedAt = new Date();
63
+ }
64
+ if (extra?.startedAt)
65
+ patch.startedAt = extra.startedAt;
66
+ if (extra?.endedAt)
67
+ patch.endedAt = extra.endedAt;
68
+ if (extra?.output !== undefined)
69
+ patch.output = extra.output;
70
+ if (extra?.error !== undefined)
71
+ patch.error = extra.error;
72
+ if (['completed', 'failed', 'cancelled'].includes(status)) {
73
+ const run = await repo.findOne({ where: { id: runId } });
74
+ if (run?.startedAt) {
75
+ const endTime = extra?.endedAt ?? new Date();
76
+ patch.duration = endTime.getTime() - run.startedAt.getTime();
77
+ patch.endedAt = endTime;
78
+ }
79
+ }
80
+ await repo.update(runId, patch);
81
+ this.logger.debug(`[AgentRunPersistenceService] run ${runId} → ${status}`);
82
+ }
83
+ /** Record a single tool-call step within a run. */
84
+ async addStep(opts) {
85
+ const repo = this.getStepRepo();
86
+ const step = repo.create({
87
+ runId: opts.runId,
88
+ stepIndex: opts.stepIndex,
89
+ toolName: opts.toolName,
90
+ input: opts.input !== undefined ? JSON.stringify(opts.input) : null,
91
+ output: opts.output !== undefined ? JSON.stringify(opts.output) : null,
92
+ status: opts.status,
93
+ duration: opts.duration ?? null,
94
+ });
95
+ return repo.save(step);
96
+ }
97
+ /** List runs newest-first, with their steps ordered by stepIndex. */
98
+ async getRunHistory(limit = 20, userId) {
99
+ const runRepo = this.getRunRepo();
100
+ const stepRepo = this.getStepRepo();
101
+ const where = userId ? { userId } : {};
102
+ const runs = await runRepo.find({
103
+ where,
104
+ order: { createdAt: 'DESC' },
105
+ take: limit,
106
+ });
107
+ return Promise.all(runs.map(async (run) => {
108
+ const steps = await stepRepo.find({
109
+ where: { runId: run.id },
110
+ order: { stepIndex: 'ASC' },
111
+ });
112
+ return this.toRunWithStepsDto(run, steps);
113
+ }));
114
+ }
115
+ /** Get a single run with its steps. */
116
+ async getRunWithSteps(runId) {
117
+ const run = await this.getRunRepo().findOne({ where: { id: runId } });
118
+ if (!run)
119
+ return null;
120
+ const steps = await this.getStepRepo().find({
121
+ where: { runId },
122
+ order: { stepIndex: 'ASC' },
123
+ });
124
+ return this.toRunWithStepsDto(run, steps);
125
+ }
126
+ toRunWithStepsDto(run, steps) {
127
+ return {
128
+ id: run.id,
129
+ agentType: run.agentType,
130
+ status: run.status,
131
+ prompt: run.prompt,
132
+ output: run.output,
133
+ error: run.error,
134
+ rounds: run.rounds,
135
+ maxRounds: run.maxRounds,
136
+ userId: run.userId,
137
+ duration: run.duration,
138
+ startedAt: run.startedAt?.toISOString() ?? null,
139
+ endedAt: run.endedAt?.toISOString() ?? null,
140
+ createdAt: run.createdAt.toISOString(),
141
+ steps: steps.map((s) => this.toStepDto(s)),
142
+ };
143
+ }
144
+ toStepDto(step) {
145
+ const parseJson = (raw) => {
146
+ if (!raw)
147
+ return null;
148
+ try {
149
+ return JSON.parse(raw);
150
+ }
151
+ catch {
152
+ return raw;
153
+ }
154
+ };
155
+ return {
156
+ id: step.id,
157
+ stepIndex: step.stepIndex,
158
+ toolName: step.toolName,
159
+ input: parseJson(step.input),
160
+ output: parseJson(step.output),
161
+ status: step.status,
162
+ duration: step.duration,
163
+ createdAt: step.createdAt.toISOString(),
164
+ };
165
+ }
166
+ };
167
+ exports.AgentRunPersistenceService = AgentRunPersistenceService;
168
+ exports.AgentRunPersistenceService = AgentRunPersistenceService = __decorate([
169
+ (0, core_1.Service)()
170
+ ], AgentRunPersistenceService);
171
+ //# sourceMappingURL=agent-run-persistence.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-run-persistence.service.js","sourceRoot":"","sources":["../../../src/agent/agent-run-persistence.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export type StepStatus = 'running' | 'completed' | 'failed';
2
+ /**
3
+ * AgentRunStep — records a single tool-call step within an AgentRun.
4
+ *
5
+ * Allows fine-grained replay / audit of what actions the agent took.
6
+ */
7
+ export declare class AgentRunStep {
8
+ id: string;
9
+ runId: string;
10
+ /** Zero-based position of this step in the run. */
11
+ stepIndex: number;
12
+ /** Name of the tool called (e.g. "bash", "computer_use", "read_file"). */
13
+ toolName: string;
14
+ /** JSON-serialized tool input arguments. */
15
+ input: string | null;
16
+ /** JSON-serialized tool output / result. */
17
+ output: string | null;
18
+ status: StepStatus;
19
+ /** Execution duration in milliseconds. */
20
+ duration: number | null;
21
+ createdAt: Date;
22
+ }
23
+ //# sourceMappingURL=agent-run-step.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-run-step.entity.d.ts","sourceRoot":"","sources":["../../../src/agent/agent-run-step.entity.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE5D;;;;GAIG;AACH,qBACa,YAAY;IAEvB,EAAE,EAAG,MAAM,CAAC;IAIZ,KAAK,EAAG,MAAM,CAAC;IAEf,mDAAmD;IAEnD,SAAS,EAAG,MAAM,CAAC;IAEnB,0EAA0E;IAE1E,QAAQ,EAAG,MAAM,CAAC;IAElB,4CAA4C;IAE5C,KAAK,EAAG,MAAM,GAAG,IAAI,CAAC;IAEtB,4CAA4C;IAE5C,MAAM,EAAG,MAAM,GAAG,IAAI,CAAC;IAGvB,MAAM,EAAG,UAAU,CAAC;IAEpB,0CAA0C;IAE1C,QAAQ,EAAG,MAAM,GAAG,IAAI,CAAC;IAGzB,SAAS,EAAG,IAAI,CAAC;CAClB"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AgentRunStep = void 0;
13
+ const core_1 = require("@octo-cyber/core");
14
+ /**
15
+ * AgentRunStep — records a single tool-call step within an AgentRun.
16
+ *
17
+ * Allows fine-grained replay / audit of what actions the agent took.
18
+ */
19
+ let AgentRunStep = class AgentRunStep {
20
+ id;
21
+ runId;
22
+ /** Zero-based position of this step in the run. */
23
+ stepIndex;
24
+ /** Name of the tool called (e.g. "bash", "computer_use", "read_file"). */
25
+ toolName;
26
+ /** JSON-serialized tool input arguments. */
27
+ input;
28
+ /** JSON-serialized tool output / result. */
29
+ output;
30
+ status;
31
+ /** Execution duration in milliseconds. */
32
+ duration;
33
+ createdAt;
34
+ };
35
+ exports.AgentRunStep = AgentRunStep;
36
+ __decorate([
37
+ (0, core_1.PrimaryGeneratedColumn)('uuid'),
38
+ __metadata("design:type", String)
39
+ ], AgentRunStep.prototype, "id", void 0);
40
+ __decorate([
41
+ (0, core_1.Index)(),
42
+ (0, core_1.Column)({ type: 'varchar', length: 36, name: 'run_id' }),
43
+ __metadata("design:type", String)
44
+ ], AgentRunStep.prototype, "runId", void 0);
45
+ __decorate([
46
+ (0, core_1.Column)({ type: 'integer', name: 'step_index' }),
47
+ __metadata("design:type", Number)
48
+ ], AgentRunStep.prototype, "stepIndex", void 0);
49
+ __decorate([
50
+ (0, core_1.Column)({ type: 'varchar', length: 128, name: 'tool_name' }),
51
+ __metadata("design:type", String)
52
+ ], AgentRunStep.prototype, "toolName", void 0);
53
+ __decorate([
54
+ (0, core_1.Column)({ type: 'text', nullable: true }),
55
+ __metadata("design:type", Object)
56
+ ], AgentRunStep.prototype, "input", void 0);
57
+ __decorate([
58
+ (0, core_1.Column)({ type: 'text', nullable: true }),
59
+ __metadata("design:type", Object)
60
+ ], AgentRunStep.prototype, "output", void 0);
61
+ __decorate([
62
+ (0, core_1.Column)({ type: 'varchar', length: 16, default: 'running' }),
63
+ __metadata("design:type", String)
64
+ ], AgentRunStep.prototype, "status", void 0);
65
+ __decorate([
66
+ (0, core_1.Column)({ type: 'integer', nullable: true }),
67
+ __metadata("design:type", Object)
68
+ ], AgentRunStep.prototype, "duration", void 0);
69
+ __decorate([
70
+ (0, core_1.CreateDateColumn)({ name: 'created_at' }),
71
+ __metadata("design:type", Date)
72
+ ], AgentRunStep.prototype, "createdAt", void 0);
73
+ exports.AgentRunStep = AgentRunStep = __decorate([
74
+ (0, core_1.Entity)('agent_run_step')
75
+ ], AgentRunStep);
76
+ //# sourceMappingURL=agent-run-step.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-run-step.entity.js","sourceRoot":"","sources":["../../../src/agent/agent-run-step.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAM0B;AAI1B;;;;GAIG;AAEI,IAAM,YAAY,GAAlB,MAAM,YAAY;IAEvB,EAAE,CAAU;IAIZ,KAAK,CAAU;IAEf,mDAAmD;IAEnD,SAAS,CAAU;IAEnB,0EAA0E;IAE1E,QAAQ,CAAU;IAElB,4CAA4C;IAE5C,KAAK,CAAiB;IAEtB,4CAA4C;IAE5C,MAAM,CAAiB;IAGvB,MAAM,CAAc;IAEpB,0CAA0C;IAE1C,QAAQ,CAAiB;IAGzB,SAAS,CAAQ;CAClB,CAAA;AAjCY,oCAAY;AAEvB;IADC,IAAA,6BAAsB,EAAC,MAAM,CAAC;;wCACnB;AAIZ;IAFC,IAAA,YAAK,GAAE;IACP,IAAA,aAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;2CACzC;AAIf;IADC,IAAA,aAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;;+CAC7B;AAInB;IADC,IAAA,aAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;;8CAC1C;AAIlB;IADC,IAAA,aAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACnB;AAItB;IADC,IAAA,aAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CAClB;AAGvB;IADC,IAAA,aAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;;4CACxC;AAIpB;IADC,IAAA,aAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CACnB;AAGzB;IADC,IAAA,uBAAgB,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;8BAC7B,IAAI;+CAAC;uBAhCN,YAAY;IADxB,IAAA,aAAM,EAAC,gBAAgB,CAAC;GACZ,YAAY,CAiCxB"}
@@ -0,0 +1,25 @@
1
+ export interface CacheEntry<T> {
2
+ data: T;
3
+ timestamp: number;
4
+ }
5
+ export interface GitTreeEntry {
6
+ path: string;
7
+ type: string;
8
+ }
9
+ export interface GitTreeResponse {
10
+ tree: GitTreeEntry[];
11
+ truncated: boolean;
12
+ }
13
+ export interface GitRepoResponse {
14
+ name: string;
15
+ full_name: string;
16
+ description: string | null;
17
+ stargazers_count: number;
18
+ }
19
+ export declare function maskToken(token: string): string;
20
+ /**
21
+ * Extract category from a SKILL.md path.
22
+ * e.g. "skills/enterprise-communication/excel-analysis/SKILL.md" -> "enterprise-communication"
23
+ */
24
+ export declare function extractCategory(filePath: string): string | undefined;
25
+ //# sourceMappingURL=skill-market-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-market-utils.d.ts","sourceRoot":"","sources":["../../../../src/skill/services/skill-market-utils.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC;IACR,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOpE"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.maskToken = maskToken;
4
+ exports.extractCategory = extractCategory;
5
+ function maskToken(token) {
6
+ if (token.length <= 8)
7
+ return '****';
8
+ return `${token.slice(0, 4)}${'*'.repeat(Math.min(token.length - 8, 20))}${token.slice(-4)}`;
9
+ }
10
+ /**
11
+ * Extract category from a SKILL.md path.
12
+ * e.g. "skills/enterprise-communication/excel-analysis/SKILL.md" -> "enterprise-communication"
13
+ */
14
+ function extractCategory(filePath) {
15
+ const parts = filePath.split('/');
16
+ // Need at least 3 parts: {prefix}/{category}/{skill}/SKILL.md
17
+ if (parts.length >= 4) {
18
+ return parts[parts.length - 3];
19
+ }
20
+ return undefined;
21
+ }
22
+ //# sourceMappingURL=skill-market-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-market-utils.js","sourceRoot":"","sources":["../../../../src/skill/services/skill-market-utils.ts"],"names":[],"mappings":";;AAsBA,8BAGC;AAMD,0CAOC;AAhBD,SAAgB,SAAS,CAAC,KAAa;IACrC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACrC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/F,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,QAAgB;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,8DAA8D;IAC9D,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ActionNodeSpec, LogicNodeSpec, N8nNode, N8nWorkflow, TriggerNodeSpec, WorkflowDraft } from './types.js';
2
+ /**
3
+ * Assembles a complete N8nWorkflow from the parts in a WorkflowDraft.
4
+ * Extracted from WorkflowDesignOrchestrator to keep it within the 300-line limit.
5
+ */
6
+ export declare function assembleWorkflow(draft: WorkflowDraft): N8nWorkflow;
7
+ export declare function mergeActionAndLogic(actionSpecs: ActionNodeSpec[], logicSpecs: LogicNodeSpec[]): Array<ActionNodeSpec | LogicNodeSpec>;
8
+ export declare function specToNode(spec: TriggerNodeSpec | ActionNodeSpec | LogicNodeSpec, id: string): N8nNode;
9
+ export declare function generateWorkflowName(intent: string): string;
10
+ //# sourceMappingURL=WorkflowAssembler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowAssembler.d.ts","sourceRoot":"","sources":["../../../src/workflow-design/WorkflowAssembler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,OAAO,EACP,WAAW,EACX,eAAe,EACf,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,WAAW,CAuDlE;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,cAAc,EAAE,EAC7B,UAAU,EAAE,aAAa,EAAE,GAC1B,KAAK,CAAC,cAAc,GAAG,aAAa,CAAC,CAYvC;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,eAAe,GAAG,cAAc,GAAG,aAAa,EACtD,EAAE,EAAE,MAAM,GACT,OAAO,CAST;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG3D"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assembleWorkflow = assembleWorkflow;
4
+ exports.mergeActionAndLogic = mergeActionAndLogic;
5
+ exports.specToNode = specToNode;
6
+ exports.generateWorkflowName = generateWorkflowName;
7
+ /**
8
+ * Assembles a complete N8nWorkflow from the parts in a WorkflowDraft.
9
+ * Extracted from WorkflowDesignOrchestrator to keep it within the 300-line limit.
10
+ */
11
+ function assembleWorkflow(draft) {
12
+ const nodes = [];
13
+ const connections = {};
14
+ const triggerSpec = draft.triggerSpec;
15
+ if (!triggerSpec) {
16
+ throw new Error('Cannot assemble workflow: triggerSpec is missing');
17
+ }
18
+ // 1. Trigger node
19
+ nodes.push(specToNode(triggerSpec, 'trigger_0'));
20
+ // 2. Build ordered list: merge actionSpecs and logicSpecs by insertAfterIndex
21
+ const actionSpecs = draft.actionSpecs ?? [];
22
+ const logicSpecs = draft.logicSpecs ?? [];
23
+ const ordered = mergeActionAndLogic(actionSpecs, logicSpecs);
24
+ // 3. Build nodes + connections in order
25
+ let prevNodeName = triggerSpec.name;
26
+ ordered.forEach((item, idx) => {
27
+ const nodeId = `node_${idx}`;
28
+ const node = specToNode(item, nodeId);
29
+ // Inject generated code if applicable
30
+ if ('needsCodeGen' in item && item.needsCodeGen && draft.codeSpecs) {
31
+ const codeKey = `action_${actionSpecs.indexOf(item)}`;
32
+ const code = draft.codeSpecs[codeKey];
33
+ if (code) {
34
+ node.parameters = { ...node.parameters, jsCode: code };
35
+ }
36
+ }
37
+ nodes.push(node);
38
+ // Connect previous → current
39
+ if (!connections[prevNodeName]) {
40
+ connections[prevNodeName] = { main: [[]] };
41
+ }
42
+ connections[prevNodeName].main[0].push({
43
+ node: node.name,
44
+ type: 'main',
45
+ index: 0,
46
+ });
47
+ prevNodeName = node.name;
48
+ });
49
+ return {
50
+ name: generateWorkflowName(draft.intent),
51
+ nodes,
52
+ connections,
53
+ active: false,
54
+ settings: { executionOrder: 'v1' },
55
+ };
56
+ }
57
+ function mergeActionAndLogic(actionSpecs, logicSpecs) {
58
+ const result = [...actionSpecs];
59
+ // Insert logic nodes at their specified positions (descending order to preserve indices)
60
+ const sorted = [...logicSpecs].sort((a, b) => b.insertAfterIndex - a.insertAfterIndex);
61
+ for (const logic of sorted) {
62
+ const insertAt = logic.insertAfterIndex + 1;
63
+ result.splice(insertAt, 0, logic);
64
+ }
65
+ return result;
66
+ }
67
+ function specToNode(spec, id) {
68
+ return {
69
+ id,
70
+ name: spec.name,
71
+ type: spec.type,
72
+ typeVersion: 1,
73
+ position: [spec.position.x, spec.position.y],
74
+ parameters: spec.parameters,
75
+ };
76
+ }
77
+ function generateWorkflowName(intent) {
78
+ const words = intent.split(/\s+/).slice(0, 5).join(' ');
79
+ return `Workflow: ${words}`;
80
+ }
81
+ //# sourceMappingURL=WorkflowAssembler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowAssembler.js","sourceRoot":"","sources":["../../../src/workflow-design/WorkflowAssembler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { NodeTemplate } from './types.js';
2
+ /** Embedded n8n node knowledge base — all data inlined, no external fetch. */
3
+ export declare const NODE_TEMPLATES: NodeTemplate[];
4
+ //# sourceMappingURL=n8n-node-templates-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"n8n-node-templates-data.d.ts","sourceRoot":"","sources":["../../../src/workflow-design/n8n-node-templates-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,8EAA8E;AAC9E,eAAO,MAAM,cAAc,EAAE,YAAY,EAqSxC,CAAC"}