@shepai/cli 1.29.1 → 1.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts +4 -0
- package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +165 -0
- package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.js +34 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts +2 -0
- package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/index.js +1 -0
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +5 -0
- package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +2 -0
- package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +3 -0
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +5 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +70 -1
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +15 -1
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +2 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +10 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +24 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +10 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +27 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +18 -2
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +7 -3
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.js +5 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.js +4 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +148 -3
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.js +20 -5
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts +4 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.js +12 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +4 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +29 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge.node.d.ts +27 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge.node.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge.node.js +146 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts +5 -2
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +9 -3
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/pr-yaml-generator.d.ts +17 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/pr-yaml-generator.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/pr-yaml-generator.js +43 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge.prompt.d.ts +17 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge.prompt.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge.prompt.js +42 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts +8 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.js +33 -0
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +28 -0
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +182 -0
- package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/new.command.js +33 -2
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts +1 -0
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +70 -7
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +5 -3
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/cache/.previewinfo +1 -1
- package/web/.next/cache/.rscinfo +1 -1
- package/web/.next/cache/.tsbuildinfo +1 -1
- package/web/.next/cache/config.json +3 -3
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +1 -1
- package/web/.next/required-server-files.json +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_not-found.html +2 -2
- package/web/.next/server/app/_not-found.rsc +9 -9
- package/web/.next/server/app/_not-found.segments/_full.segment.rsc +9 -9
- package/web/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
- package/web/.next/server/app/_not-found.segments/_index.segment.rsc +5 -5
- package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version.html +2 -2
- package/web/.next/server/app/version.rsc +4 -4
- package/web/.next/server/app/version.segments/_full.segment.rsc +4 -4
- package/web/.next/server/app/version.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/version.segments/_index.segment.rsc +3 -3
- package/web/.next/server/app/version.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/version.segments/version/__PAGE__.segment.rsc +2 -2
- package/web/.next/server/app/version.segments/version.segment.rsc +1 -1
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_12059e3e.js +1 -1
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_12059e3e.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f12b60be._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ed0934e5._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ed0934e5._.js.map +1 -1
- package/web/.next/server/pages/404.html +2 -2
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +1 -1
- package/web/.next/static/chunks/9993505b2a26c454.js +1 -0
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- package/web/.next/static/chunks/b32b17f102226f32.js +0 -1
- /package/web/.next/static/{xfxn0ObmVPrJQ_jxVxePe → zHWQYn5H7ZmzuYWmx7b2E}/_buildManifest.js +0 -0
- /package/web/.next/static/{xfxn0ObmVPrJQ_jxVxePe → zHWQYn5H7ZmzuYWmx7b2E}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{xfxn0ObmVPrJQ_jxVxePe → zHWQYn5H7ZmzuYWmx7b2E}/_ssgManifest.js +0 -0
|
@@ -51,6 +51,11 @@ export function toDatabase(settings) {
|
|
|
51
51
|
notif_evt_waiting_approval: settings.notifications.events.waitingApproval ? 1 : 0,
|
|
52
52
|
notif_evt_agent_completed: settings.notifications.events.agentCompleted ? 1 : 0,
|
|
53
53
|
notif_evt_agent_failed: settings.notifications.events.agentFailed ? 1 : 0,
|
|
54
|
+
// WorkflowConfig (boolean → INTEGER)
|
|
55
|
+
workflow_open_pr_on_impl_complete: settings.workflow.openPrOnImplementationComplete ? 1 : 0,
|
|
56
|
+
workflow_auto_merge_on_impl_complete: settings.workflow.autoMergeOnImplementationComplete
|
|
57
|
+
? 1
|
|
58
|
+
: 0,
|
|
54
59
|
};
|
|
55
60
|
}
|
|
56
61
|
/**
|
|
@@ -108,5 +113,10 @@ export function fromDatabase(row) {
|
|
|
108
113
|
agentFailed: row.notif_evt_agent_failed === 1,
|
|
109
114
|
},
|
|
110
115
|
},
|
|
116
|
+
// WorkflowConfig (INTEGER → boolean)
|
|
117
|
+
workflow: {
|
|
118
|
+
openPrOnImplementationComplete: row.workflow_open_pr_on_impl_complete === 1,
|
|
119
|
+
autoMergeOnImplementationComplete: row.workflow_auto_merge_on_impl_complete === 1,
|
|
120
|
+
},
|
|
111
121
|
};
|
|
112
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/persistence/sqlite/migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/persistence/sqlite/migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAqM3C;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB9E"}
|
|
@@ -163,6 +163,33 @@ ALTER TABLE settings ADD COLUMN notif_evt_phase_completed INTEGER NOT NULL DEFAU
|
|
|
163
163
|
ALTER TABLE settings ADD COLUMN notif_evt_waiting_approval INTEGER NOT NULL DEFAULT 1;
|
|
164
164
|
ALTER TABLE settings ADD COLUMN notif_evt_agent_completed INTEGER NOT NULL DEFAULT 1;
|
|
165
165
|
ALTER TABLE settings ADD COLUMN notif_evt_agent_failed INTEGER NOT NULL DEFAULT 1;
|
|
166
|
+
`,
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
version: 10,
|
|
170
|
+
sql: `
|
|
171
|
+
-- Migration 010: Add workflow flags, PR tracking to features; workflow config to settings; lifecycle migration
|
|
172
|
+
|
|
173
|
+
-- Workflow configuration flags on features
|
|
174
|
+
ALTER TABLE features ADD COLUMN open_pr INTEGER NOT NULL DEFAULT 0;
|
|
175
|
+
ALTER TABLE features ADD COLUMN auto_merge INTEGER NOT NULL DEFAULT 0;
|
|
176
|
+
ALTER TABLE features ADD COLUMN allow_prd INTEGER NOT NULL DEFAULT 0;
|
|
177
|
+
ALTER TABLE features ADD COLUMN allow_plan INTEGER NOT NULL DEFAULT 0;
|
|
178
|
+
ALTER TABLE features ADD COLUMN allow_merge INTEGER NOT NULL DEFAULT 0;
|
|
179
|
+
|
|
180
|
+
-- PR tracking state on features
|
|
181
|
+
ALTER TABLE features ADD COLUMN pr_url TEXT;
|
|
182
|
+
ALTER TABLE features ADD COLUMN pr_number INTEGER;
|
|
183
|
+
ALTER TABLE features ADD COLUMN pr_status TEXT;
|
|
184
|
+
ALTER TABLE features ADD COLUMN commit_hash TEXT;
|
|
185
|
+
ALTER TABLE features ADD COLUMN ci_status TEXT;
|
|
186
|
+
|
|
187
|
+
-- Workflow defaults on settings
|
|
188
|
+
ALTER TABLE settings ADD COLUMN workflow_open_pr_on_impl_complete INTEGER NOT NULL DEFAULT 0;
|
|
189
|
+
ALTER TABLE settings ADD COLUMN workflow_auto_merge_on_impl_complete INTEGER NOT NULL DEFAULT 0;
|
|
190
|
+
|
|
191
|
+
-- Migrate existing features with DeployAndQA lifecycle to Maintain
|
|
192
|
+
UPDATE features SET lifecycle = 'Maintain' WHERE lifecycle = 'Deploy & QA';
|
|
166
193
|
`,
|
|
167
194
|
},
|
|
168
195
|
];
|
package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-feature.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-feature.repository.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,6EAA6E,CAAC;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAOhE;;;GAGG;AACH,qBACa,uBAAwB,YAAW,kBAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAE5C,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite-feature.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-feature.repository.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,6EAA6E,CAAC;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAOhE;;;GAGG;AACH,qBACa,uBAAwB,YAAW,kBAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAE5C,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBvC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAW7C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAcvD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAWzE,IAAI,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAqBtD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAIxC"}
|
|
@@ -30,11 +30,17 @@ let SQLiteFeatureRepository = class SQLiteFeatureRepository {
|
|
|
30
30
|
INSERT INTO features (
|
|
31
31
|
id, name, slug, description, repository_path, branch,
|
|
32
32
|
lifecycle, messages, plan, related_artifacts,
|
|
33
|
-
agent_run_id, spec_path,
|
|
33
|
+
agent_run_id, spec_path,
|
|
34
|
+
open_pr, auto_merge, allow_prd, allow_plan, allow_merge,
|
|
35
|
+
pr_url, pr_number, pr_status, commit_hash, ci_status,
|
|
36
|
+
created_at, updated_at
|
|
34
37
|
) VALUES (
|
|
35
38
|
@id, @name, @slug, @description, @repository_path, @branch,
|
|
36
39
|
@lifecycle, @messages, @plan, @related_artifacts,
|
|
37
|
-
@agent_run_id, @spec_path,
|
|
40
|
+
@agent_run_id, @spec_path,
|
|
41
|
+
@open_pr, @auto_merge, @allow_prd, @allow_plan, @allow_merge,
|
|
42
|
+
@pr_url, @pr_number, @pr_status, @commit_hash, @ci_status,
|
|
43
|
+
@created_at, @updated_at
|
|
38
44
|
)
|
|
39
45
|
`);
|
|
40
46
|
stmt.run(row);
|
|
@@ -96,6 +102,16 @@ let SQLiteFeatureRepository = class SQLiteFeatureRepository {
|
|
|
96
102
|
related_artifacts = @related_artifacts,
|
|
97
103
|
agent_run_id = @agent_run_id,
|
|
98
104
|
spec_path = @spec_path,
|
|
105
|
+
open_pr = @open_pr,
|
|
106
|
+
auto_merge = @auto_merge,
|
|
107
|
+
allow_prd = @allow_prd,
|
|
108
|
+
allow_plan = @allow_plan,
|
|
109
|
+
allow_merge = @allow_merge,
|
|
110
|
+
pr_url = @pr_url,
|
|
111
|
+
pr_number = @pr_number,
|
|
112
|
+
pr_status = @pr_status,
|
|
113
|
+
commit_hash = @commit_hash,
|
|
114
|
+
ci_status = @ci_status,
|
|
99
115
|
updated_at = @updated_at
|
|
100
116
|
WHERE id = @id
|
|
101
117
|
`);
|
package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-settings.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-settings.repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8EAA8E,CAAC;AACxH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAOjE;;;GAGG;AACH,qBACa,wBAAyB,YAAW,mBAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAElD;;;;;;OAMG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite-settings.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-settings.repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8EAA8E,CAAC;AACxH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAOjE;;;GAGG;AACH,qBACa,wBAAyB,YAAW,mBAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAElD;;;;;;OAMG;IACG,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCnD;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgBtC;;;;;OAKG;IACG,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAkDhD"}
|
|
@@ -51,7 +51,8 @@ let SQLiteSettingsRepository = class SQLiteSettingsRepository {
|
|
|
51
51
|
agent_type, agent_auth_method, agent_token,
|
|
52
52
|
notif_in_app_enabled, notif_browser_enabled, notif_desktop_enabled,
|
|
53
53
|
notif_evt_agent_started, notif_evt_phase_completed, notif_evt_waiting_approval,
|
|
54
|
-
notif_evt_agent_completed, notif_evt_agent_failed
|
|
54
|
+
notif_evt_agent_completed, notif_evt_agent_failed,
|
|
55
|
+
workflow_open_pr_on_impl_complete, workflow_auto_merge_on_impl_complete
|
|
55
56
|
) VALUES (
|
|
56
57
|
@id, @created_at, @updated_at,
|
|
57
58
|
@model_analyze, @model_requirements, @model_plan, @model_implement,
|
|
@@ -61,7 +62,8 @@ let SQLiteSettingsRepository = class SQLiteSettingsRepository {
|
|
|
61
62
|
@agent_type, @agent_auth_method, @agent_token,
|
|
62
63
|
@notif_in_app_enabled, @notif_browser_enabled, @notif_desktop_enabled,
|
|
63
64
|
@notif_evt_agent_started, @notif_evt_phase_completed, @notif_evt_waiting_approval,
|
|
64
|
-
@notif_evt_agent_completed, @notif_evt_agent_failed
|
|
65
|
+
@notif_evt_agent_completed, @notif_evt_agent_failed,
|
|
66
|
+
@workflow_open_pr_on_impl_complete, @workflow_auto_merge_on_impl_complete
|
|
65
67
|
)
|
|
66
68
|
`);
|
|
67
69
|
// Execute with named parameters (safe from SQL injection)
|
|
@@ -124,7 +126,9 @@ let SQLiteSettingsRepository = class SQLiteSettingsRepository {
|
|
|
124
126
|
notif_evt_phase_completed = @notif_evt_phase_completed,
|
|
125
127
|
notif_evt_waiting_approval = @notif_evt_waiting_approval,
|
|
126
128
|
notif_evt_agent_completed = @notif_evt_agent_completed,
|
|
127
|
-
notif_evt_agent_failed = @notif_evt_agent_failed
|
|
129
|
+
notif_evt_agent_failed = @notif_evt_agent_failed,
|
|
130
|
+
workflow_open_pr_on_impl_complete = @workflow_open_pr_on_impl_complete,
|
|
131
|
+
workflow_auto_merge_on_impl_complete = @workflow_auto_merge_on_impl_complete
|
|
128
132
|
WHERE id = @id
|
|
129
133
|
`);
|
|
130
134
|
// Execute with named parameters (safe from SQL injection)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code-executor.service.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,4EAA4E,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAUjD;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,cAAc;IAMlD,OAAO,CAAC,QAAQ,CAAC,KAAK;IALlC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAA8B;IAE3D,4EAA4E;IAC5E,OAAO,CAAC,MAAM,CAAS;gBAEM,KAAK,EAAE,aAAa;IAEjD,4EAA4E;IAC5E,OAAO,CAAC,GAAG;IAML,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmHtF,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAAC,yBAAyB,CAAC;IA+F3C;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmCtB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAI/C,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"claude-code-executor.service.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,4EAA4E,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAUjD;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,cAAc;IAMlD,OAAO,CAAC,QAAQ,CAAC,KAAK;IALlC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAA8B;IAE3D,4EAA4E;IAC5E,OAAO,CAAC,MAAM,CAAS;gBAEM,KAAK,EAAE,aAAa;IAEjD,4EAA4E;IAC5E,OAAO,CAAC,GAAG;IAML,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmHtF,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAAC,yBAAyB,CAAC;IA+F3C;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmCtB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAI/C,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,eAAe;CAkExB"}
|
|
@@ -289,6 +289,11 @@ export class ClaudeCodeExecutorService {
|
|
|
289
289
|
const spawnOpts = {};
|
|
290
290
|
if (options?.cwd)
|
|
291
291
|
spawnOpts.cwd = options.cwd;
|
|
292
|
+
// Strip CLAUDECODE env var to prevent "nested session" error when shep
|
|
293
|
+
// is invoked from within a Claude Code session. The claude CLI checks for
|
|
294
|
+
// this variable and refuses to start if it's set.
|
|
295
|
+
const { CLAUDECODE: _, ...cleanEnv } = process.env;
|
|
296
|
+
spawnOpts.env = cleanEnv;
|
|
292
297
|
return spawnOpts;
|
|
293
298
|
}
|
|
294
299
|
parseJsonResult(stdout) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-executor.service.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,4EAA4E,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKjD;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,cAAc;IAM9C,OAAO,CAAC,QAAQ,CAAC,KAAK;IALlC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAyB;IAEtD,4EAA4E;IAC5E,OAAO,CAAC,MAAM,CAAS;gBAEM,KAAK,EAAE,aAAa;IAEjD,4EAA4E;IAC5E,OAAO,CAAC,GAAG;IAMX,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAIzC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkGtF,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAAC,yBAAyB,CAAC;IA8E3C;;OAEG;IACH,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"cursor-executor.service.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,4EAA4E,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKjD;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,cAAc;IAM9C,OAAO,CAAC,QAAQ,CAAC,KAAK;IALlC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAyB;IAEtD,4EAA4E;IAC5E,OAAO,CAAC,MAAM,CAAS;gBAEM,KAAK,EAAE,aAAa;IAEjD,4EAA4E;IAC5E,OAAO,CAAC,GAAG;IAMX,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO;IAIzC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkGtF,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAAC,yBAAyB,CAAC;IA8E3C;;OAEG;IACH,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,eAAe;CAgDxB"}
|
|
@@ -249,6 +249,10 @@ export class CursorExecutorService {
|
|
|
249
249
|
const spawnOpts = {};
|
|
250
250
|
if (options?.cwd)
|
|
251
251
|
spawnOpts.cwd = options.cwd;
|
|
252
|
+
// Strip CLAUDECODE env var to prevent "nested session" error when shep
|
|
253
|
+
// is invoked from within a Claude Code session.
|
|
254
|
+
const { CLAUDECODE: _, ...cleanEnv } = process.env;
|
|
255
|
+
spawnOpts.env = cleanEnv;
|
|
252
256
|
return spawnOpts;
|
|
253
257
|
}
|
|
254
258
|
parseStreamLine(line) {
|
package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts
CHANGED
|
@@ -1,20 +1,29 @@
|
|
|
1
1
|
import { type BaseCheckpointSaver } from '@langchain/langgraph';
|
|
2
2
|
import type { IAgentExecutor } from '../../../../application/ports/output/agents/agent-executor.interface.js';
|
|
3
|
+
import { type MergeNodeDeps } from './nodes/merge.node.js';
|
|
3
4
|
export { FeatureAgentAnnotation, type FeatureAgentState } from './state.js';
|
|
5
|
+
/**
|
|
6
|
+
* Dependencies needed to build the feature agent graph.
|
|
7
|
+
* Injected by the worker so the graph factory stays testable.
|
|
8
|
+
*/
|
|
9
|
+
export interface FeatureAgentGraphDeps {
|
|
10
|
+
executor: IAgentExecutor;
|
|
11
|
+
mergeNodeDeps: MergeNodeDeps;
|
|
12
|
+
}
|
|
4
13
|
/**
|
|
5
14
|
* Factory function that creates and compiles the feature-agent LangGraph.
|
|
6
15
|
*
|
|
7
16
|
* The graph defines a linear SDLC workflow with validation gates:
|
|
8
|
-
* analyze → validate → requirements → validate → research → validate → plan → validate → implement
|
|
17
|
+
* analyze → validate → requirements → validate → research → validate → plan → validate → implement → merge
|
|
9
18
|
*
|
|
10
19
|
* Each YAML-producing node is followed by a validate/repair loop that ensures
|
|
11
20
|
* the output YAML conforms to its schema before proceeding.
|
|
12
21
|
*
|
|
13
|
-
* @param
|
|
22
|
+
* @param depsOrExecutor - Graph dependencies or a legacy executor
|
|
14
23
|
* @param checkpointer - Optional checkpoint saver for state persistence
|
|
15
24
|
* @returns A compiled LangGraph ready to be invoked
|
|
16
25
|
*/
|
|
17
|
-
export declare function createFeatureAgentGraph(
|
|
26
|
+
export declare function createFeatureAgentGraph(depsOrExecutor: FeatureAgentGraphDeps | IAgentExecutor, checkpointer?: BaseCheckpointSaver): import("@langchain/langgraph").CompiledStateGraph<{
|
|
18
27
|
featureId: string;
|
|
19
28
|
repositoryPath: string;
|
|
20
29
|
specDir: string;
|
|
@@ -26,6 +35,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
26
35
|
validationRetries: number;
|
|
27
36
|
lastValidationTarget: string;
|
|
28
37
|
lastValidationErrors: string[];
|
|
38
|
+
prUrl: string | null;
|
|
39
|
+
prNumber: number | null;
|
|
40
|
+
commitHash: string | null;
|
|
41
|
+
ciStatus: string | null;
|
|
42
|
+
push: boolean;
|
|
43
|
+
openPr: boolean;
|
|
44
|
+
autoMerge: boolean;
|
|
45
|
+
allowMerge: boolean;
|
|
29
46
|
}, {
|
|
30
47
|
featureId?: string | undefined;
|
|
31
48
|
repositoryPath?: string | undefined;
|
|
@@ -38,6 +55,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
38
55
|
validationRetries?: number | undefined;
|
|
39
56
|
lastValidationTarget?: string | undefined;
|
|
40
57
|
lastValidationErrors?: string[] | undefined;
|
|
58
|
+
prUrl?: string | null | undefined;
|
|
59
|
+
prNumber?: number | null | undefined;
|
|
60
|
+
commitHash?: string | null | undefined;
|
|
61
|
+
ciStatus?: string | null | undefined;
|
|
62
|
+
push?: boolean | undefined;
|
|
63
|
+
openPr?: boolean | undefined;
|
|
64
|
+
autoMerge?: boolean | undefined;
|
|
65
|
+
allowMerge?: boolean | undefined;
|
|
41
66
|
}, "__start__" | "analyze" | "requirements" | "plan" | "implement" | "research" | "validate_spec_analyze" | "validate_spec_requirements" | "validate_research" | "validate_plan_tasks" | "repair_spec_analyze" | "repair_spec_requirements" | "repair_research" | "repair_plan_tasks", {
|
|
42
67
|
featureId: {
|
|
43
68
|
(): import("@langchain/langgraph").LastValue<string>;
|
|
@@ -70,6 +95,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
70
95
|
validationRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
71
96
|
lastValidationTarget: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
72
97
|
lastValidationErrors: import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
|
|
98
|
+
prUrl: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
99
|
+
prNumber: import("@langchain/langgraph").BinaryOperatorAggregate<number | null, number | null>;
|
|
100
|
+
commitHash: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
101
|
+
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
102
|
+
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
103
|
+
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
104
|
+
autoMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
105
|
+
allowMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
73
106
|
}, {
|
|
74
107
|
featureId: {
|
|
75
108
|
(): import("@langchain/langgraph").LastValue<string>;
|
|
@@ -102,6 +135,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
102
135
|
validationRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
103
136
|
lastValidationTarget: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
104
137
|
lastValidationErrors: import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
|
|
138
|
+
prUrl: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
139
|
+
prNumber: import("@langchain/langgraph").BinaryOperatorAggregate<number | null, number | null>;
|
|
140
|
+
commitHash: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
141
|
+
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
142
|
+
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
143
|
+
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
144
|
+
autoMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
145
|
+
allowMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
105
146
|
}, import("@langchain/langgraph").StateDefinition, {
|
|
106
147
|
analyze: Partial<import("@langchain/langgraph").StateType<{
|
|
107
148
|
featureId: {
|
|
@@ -135,6 +176,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
135
176
|
validationRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
136
177
|
lastValidationTarget: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
137
178
|
lastValidationErrors: import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
|
|
179
|
+
prUrl: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
180
|
+
prNumber: import("@langchain/langgraph").BinaryOperatorAggregate<number | null, number | null>;
|
|
181
|
+
commitHash: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
182
|
+
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
183
|
+
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
184
|
+
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
185
|
+
autoMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
186
|
+
allowMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
138
187
|
}>>;
|
|
139
188
|
requirements: Partial<import("@langchain/langgraph").StateType<{
|
|
140
189
|
featureId: {
|
|
@@ -168,6 +217,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
168
217
|
validationRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
169
218
|
lastValidationTarget: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
170
219
|
lastValidationErrors: import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
|
|
220
|
+
prUrl: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
221
|
+
prNumber: import("@langchain/langgraph").BinaryOperatorAggregate<number | null, number | null>;
|
|
222
|
+
commitHash: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
223
|
+
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
224
|
+
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
225
|
+
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
226
|
+
autoMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
227
|
+
allowMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
171
228
|
}>>;
|
|
172
229
|
research: Partial<import("@langchain/langgraph").StateType<{
|
|
173
230
|
featureId: {
|
|
@@ -201,6 +258,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
201
258
|
validationRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
202
259
|
lastValidationTarget: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
203
260
|
lastValidationErrors: import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
|
|
261
|
+
prUrl: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
262
|
+
prNumber: import("@langchain/langgraph").BinaryOperatorAggregate<number | null, number | null>;
|
|
263
|
+
commitHash: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
264
|
+
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
265
|
+
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
266
|
+
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
267
|
+
autoMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
268
|
+
allowMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
204
269
|
}>>;
|
|
205
270
|
plan: Partial<import("@langchain/langgraph").StateType<{
|
|
206
271
|
featureId: {
|
|
@@ -234,6 +299,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
234
299
|
validationRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
235
300
|
lastValidationTarget: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
236
301
|
lastValidationErrors: import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
|
|
302
|
+
prUrl: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
303
|
+
prNumber: import("@langchain/langgraph").BinaryOperatorAggregate<number | null, number | null>;
|
|
304
|
+
commitHash: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
305
|
+
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
306
|
+
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
307
|
+
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
308
|
+
autoMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
309
|
+
allowMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
237
310
|
}>>;
|
|
238
311
|
implement: Partial<import("@langchain/langgraph").StateType<{
|
|
239
312
|
featureId: {
|
|
@@ -267,6 +340,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
267
340
|
validationRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
268
341
|
lastValidationTarget: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
269
342
|
lastValidationErrors: import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
|
|
343
|
+
prUrl: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
344
|
+
prNumber: import("@langchain/langgraph").BinaryOperatorAggregate<number | null, number | null>;
|
|
345
|
+
commitHash: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
346
|
+
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
347
|
+
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
348
|
+
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
349
|
+
autoMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
350
|
+
allowMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
270
351
|
}>>;
|
|
271
352
|
validate_spec_analyze: Partial<import("@langchain/langgraph").StateType<{
|
|
272
353
|
featureId: {
|
|
@@ -300,6 +381,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
300
381
|
validationRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
301
382
|
lastValidationTarget: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
302
383
|
lastValidationErrors: import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
|
|
384
|
+
prUrl: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
385
|
+
prNumber: import("@langchain/langgraph").BinaryOperatorAggregate<number | null, number | null>;
|
|
386
|
+
commitHash: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
387
|
+
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
388
|
+
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
389
|
+
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
390
|
+
autoMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
391
|
+
allowMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
303
392
|
}>>;
|
|
304
393
|
validate_spec_requirements: Partial<import("@langchain/langgraph").StateType<{
|
|
305
394
|
featureId: {
|
|
@@ -333,6 +422,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
333
422
|
validationRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
334
423
|
lastValidationTarget: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
335
424
|
lastValidationErrors: import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
|
|
425
|
+
prUrl: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
426
|
+
prNumber: import("@langchain/langgraph").BinaryOperatorAggregate<number | null, number | null>;
|
|
427
|
+
commitHash: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
428
|
+
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
429
|
+
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
430
|
+
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
431
|
+
autoMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
432
|
+
allowMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
336
433
|
}>>;
|
|
337
434
|
validate_research: Partial<import("@langchain/langgraph").StateType<{
|
|
338
435
|
featureId: {
|
|
@@ -366,6 +463,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
366
463
|
validationRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
367
464
|
lastValidationTarget: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
368
465
|
lastValidationErrors: import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
|
|
466
|
+
prUrl: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
467
|
+
prNumber: import("@langchain/langgraph").BinaryOperatorAggregate<number | null, number | null>;
|
|
468
|
+
commitHash: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
469
|
+
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
470
|
+
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
471
|
+
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
472
|
+
autoMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
473
|
+
allowMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
369
474
|
}>>;
|
|
370
475
|
validate_plan_tasks: Partial<import("@langchain/langgraph").StateType<{
|
|
371
476
|
featureId: {
|
|
@@ -399,6 +504,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
399
504
|
validationRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
400
505
|
lastValidationTarget: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
401
506
|
lastValidationErrors: import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
|
|
507
|
+
prUrl: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
508
|
+
prNumber: import("@langchain/langgraph").BinaryOperatorAggregate<number | null, number | null>;
|
|
509
|
+
commitHash: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
510
|
+
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
511
|
+
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
512
|
+
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
513
|
+
autoMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
514
|
+
allowMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
402
515
|
}>>;
|
|
403
516
|
repair_spec_analyze: Partial<import("@langchain/langgraph").StateType<{
|
|
404
517
|
featureId: {
|
|
@@ -432,6 +545,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
432
545
|
validationRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
433
546
|
lastValidationTarget: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
434
547
|
lastValidationErrors: import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
|
|
548
|
+
prUrl: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
549
|
+
prNumber: import("@langchain/langgraph").BinaryOperatorAggregate<number | null, number | null>;
|
|
550
|
+
commitHash: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
551
|
+
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
552
|
+
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
553
|
+
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
554
|
+
autoMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
555
|
+
allowMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
435
556
|
}>>;
|
|
436
557
|
repair_spec_requirements: Partial<import("@langchain/langgraph").StateType<{
|
|
437
558
|
featureId: {
|
|
@@ -465,6 +586,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
465
586
|
validationRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
466
587
|
lastValidationTarget: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
467
588
|
lastValidationErrors: import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
|
|
589
|
+
prUrl: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
590
|
+
prNumber: import("@langchain/langgraph").BinaryOperatorAggregate<number | null, number | null>;
|
|
591
|
+
commitHash: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
592
|
+
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
593
|
+
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
594
|
+
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
595
|
+
autoMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
596
|
+
allowMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
468
597
|
}>>;
|
|
469
598
|
repair_research: Partial<import("@langchain/langgraph").StateType<{
|
|
470
599
|
featureId: {
|
|
@@ -498,6 +627,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
498
627
|
validationRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
499
628
|
lastValidationTarget: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
500
629
|
lastValidationErrors: import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
|
|
630
|
+
prUrl: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
631
|
+
prNumber: import("@langchain/langgraph").BinaryOperatorAggregate<number | null, number | null>;
|
|
632
|
+
commitHash: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
633
|
+
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
634
|
+
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
635
|
+
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
636
|
+
autoMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
637
|
+
allowMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
501
638
|
}>>;
|
|
502
639
|
repair_plan_tasks: Partial<import("@langchain/langgraph").StateType<{
|
|
503
640
|
featureId: {
|
|
@@ -531,6 +668,14 @@ export declare function createFeatureAgentGraph(executor: IAgentExecutor, checkp
|
|
|
531
668
|
validationRetries: import("@langchain/langgraph").BinaryOperatorAggregate<number, number>;
|
|
532
669
|
lastValidationTarget: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
|
|
533
670
|
lastValidationErrors: import("@langchain/langgraph").BinaryOperatorAggregate<string[], string[]>;
|
|
671
|
+
prUrl: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
672
|
+
prNumber: import("@langchain/langgraph").BinaryOperatorAggregate<number | null, number | null>;
|
|
673
|
+
commitHash: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
674
|
+
ciStatus: import("@langchain/langgraph").BinaryOperatorAggregate<string | null, string | null>;
|
|
675
|
+
push: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
676
|
+
openPr: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
677
|
+
autoMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
678
|
+
allowMerge: import("@langchain/langgraph").BinaryOperatorAggregate<boolean, boolean>;
|
|
534
679
|
}>>;
|
|
535
680
|
}, unknown, unknown>;
|
|
536
681
|
//# sourceMappingURL=feature-agent-graph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-agent-graph.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;
|
|
1
|
+
{"version":3,"file":"feature-agent-graph.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAOpG,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAS5E,OAAO,EAAE,sBAAsB,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;CAC9B;AAuGD;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,qBAAqB,GAAG,cAAc,EACtD,YAAY,CAAC,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAmEnC"}
|
package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.js
CHANGED
|
@@ -5,6 +5,7 @@ import { createRequirementsNode } from './nodes/requirements.node.js';
|
|
|
5
5
|
import { createResearchNode } from './nodes/research.node.js';
|
|
6
6
|
import { createPlanNode } from './nodes/plan.node.js';
|
|
7
7
|
import { createImplementNode } from './nodes/implement.node.js';
|
|
8
|
+
import { createMergeNode } from './nodes/merge.node.js';
|
|
8
9
|
import { createValidateNode } from './nodes/validate.node.js';
|
|
9
10
|
import { createRepairNode } from './nodes/repair.node.js';
|
|
10
11
|
import { validateSpecAnalyze, validateSpecRequirements } from './nodes/schemas/spec.schema.js';
|
|
@@ -107,16 +108,21 @@ function createPlanTasksValidator() {
|
|
|
107
108
|
* Factory function that creates and compiles the feature-agent LangGraph.
|
|
108
109
|
*
|
|
109
110
|
* The graph defines a linear SDLC workflow with validation gates:
|
|
110
|
-
* analyze → validate → requirements → validate → research → validate → plan → validate → implement
|
|
111
|
+
* analyze → validate → requirements → validate → research → validate → plan → validate → implement → merge
|
|
111
112
|
*
|
|
112
113
|
* Each YAML-producing node is followed by a validate/repair loop that ensures
|
|
113
114
|
* the output YAML conforms to its schema before proceeding.
|
|
114
115
|
*
|
|
115
|
-
* @param
|
|
116
|
+
* @param depsOrExecutor - Graph dependencies or a legacy executor
|
|
116
117
|
* @param checkpointer - Optional checkpoint saver for state persistence
|
|
117
118
|
* @returns A compiled LangGraph ready to be invoked
|
|
118
119
|
*/
|
|
119
|
-
export function createFeatureAgentGraph(
|
|
120
|
+
export function createFeatureAgentGraph(depsOrExecutor, checkpointer) {
|
|
121
|
+
// Support legacy signature: createFeatureAgentGraph(executor, checkpointer)
|
|
122
|
+
const deps = 'execute' in depsOrExecutor
|
|
123
|
+
? { executor: depsOrExecutor, mergeNodeDeps: undefined }
|
|
124
|
+
: depsOrExecutor;
|
|
125
|
+
const { executor } = deps;
|
|
120
126
|
const graph = new StateGraph(FeatureAgentAnnotation)
|
|
121
127
|
// --- Producer nodes ---
|
|
122
128
|
.addNode('analyze', createAnalyzeNode(executor))
|
|
@@ -147,7 +153,16 @@ export function createFeatureAgentGraph(executor, checkpointer) {
|
|
|
147
153
|
.addEdge('repair_research', 'validate_research')
|
|
148
154
|
.addEdge('plan', 'validate_plan_tasks')
|
|
149
155
|
.addConditionalEdges('validate_plan_tasks', routeValidation('implement', 'repair_plan_tasks'))
|
|
150
|
-
.addEdge('repair_plan_tasks', 'validate_plan_tasks')
|
|
151
|
-
|
|
156
|
+
.addEdge('repair_plan_tasks', 'validate_plan_tasks');
|
|
157
|
+
// --- Merge node: wired when deps are provided ---
|
|
158
|
+
if (deps.mergeNodeDeps) {
|
|
159
|
+
graph
|
|
160
|
+
.addNode('merge', createMergeNode(deps.mergeNodeDeps))
|
|
161
|
+
.addEdge('implement', 'merge')
|
|
162
|
+
.addEdge('merge', END);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
graph.addEdge('implement', END);
|
|
166
|
+
}
|
|
152
167
|
return graph.compile({ checkpointer });
|
|
153
168
|
}
|
|
@@ -16,6 +16,10 @@ export declare class FeatureAgentProcessService implements IFeatureAgentProcessS
|
|
|
16
16
|
resume?: boolean;
|
|
17
17
|
threadId?: string;
|
|
18
18
|
resumeFromInterrupt?: boolean;
|
|
19
|
+
push?: boolean;
|
|
20
|
+
openPr?: boolean;
|
|
21
|
+
autoMerge?: boolean;
|
|
22
|
+
allowMerge?: boolean;
|
|
19
23
|
}): number;
|
|
20
24
|
isAlive(pid: number): boolean;
|
|
21
25
|
checkAndMarkCrashed(runId: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-agent-process.service.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sEAAsE,CAAC;AACxH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qEAAqE,CAAC;AAC/G,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAYlF,qBAAa,0BAA2B,YAAW,2BAA2B;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,mBAAmB;IAE/D,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"feature-agent-process.service.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sEAAsE,CAAC;AACxH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qEAAqE,CAAC;AAC/G,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAYlF,qBAAa,0BAA2B,YAAW,2BAA2B;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,mBAAmB;IAE/D,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,GACA,MAAM;IA8DT,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IASvB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAexD"}
|
|
@@ -53,6 +53,18 @@ export class FeatureAgentProcessService {
|
|
|
53
53
|
if (options?.resumeFromInterrupt) {
|
|
54
54
|
args.push('--resume-from-interrupt');
|
|
55
55
|
}
|
|
56
|
+
if (options?.push) {
|
|
57
|
+
args.push('--push');
|
|
58
|
+
}
|
|
59
|
+
if (options?.openPr) {
|
|
60
|
+
args.push('--open-pr');
|
|
61
|
+
}
|
|
62
|
+
if (options?.autoMerge) {
|
|
63
|
+
args.push('--auto-merge');
|
|
64
|
+
}
|
|
65
|
+
if (options?.allowMerge) {
|
|
66
|
+
args.push('--allow-merge');
|
|
67
|
+
}
|
|
56
68
|
// Create log file for worker output (for debugging)
|
|
57
69
|
const logsDir = join(homedir(), '.shep', 'logs');
|
|
58
70
|
mkdirSync(logsDir, { recursive: true });
|
|
@@ -20,6 +20,10 @@ export interface WorkerArgs {
|
|
|
20
20
|
resume?: boolean;
|
|
21
21
|
threadId?: string;
|
|
22
22
|
resumeFromInterrupt?: boolean;
|
|
23
|
+
push?: boolean;
|
|
24
|
+
openPr?: boolean;
|
|
25
|
+
autoMerge?: boolean;
|
|
26
|
+
allowMerge?: boolean;
|
|
23
27
|
}
|
|
24
28
|
/**
|
|
25
29
|
* Parse CLI arguments into a WorkerArgs object.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-agent-worker.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"feature-agent-worker.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,kBAAkB,CAAC;AAoB1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAkD1D;AAgCD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA2J/D"}
|