@sudocode-ai/local-server 0.1.12 → 0.1.13

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 (59) hide show
  1. package/dist/execution/adapters/claude-adapter.js +1 -1
  2. package/dist/execution/adapters/claude-adapter.js.map +1 -1
  3. package/dist/execution/executors/agent-executor-wrapper.d.ts.map +1 -1
  4. package/dist/execution/executors/agent-executor-wrapper.js +19 -3
  5. package/dist/execution/executors/agent-executor-wrapper.js.map +1 -1
  6. package/dist/execution/executors/executor-factory.d.ts.map +1 -1
  7. package/dist/execution/executors/executor-factory.js +11 -3
  8. package/dist/execution/executors/executor-factory.js.map +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +2 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/public/assets/{index-CLIkhhGD.js → index-3qSRtUlY.js} +222 -202
  13. package/dist/public/assets/{index-CLIkhhGD.js.map → index-3qSRtUlY.js.map} +1 -1
  14. package/dist/public/assets/{ui-vendor-BDDPoYki.js → ui-vendor-BuU3mq4G.js} +2 -2
  15. package/dist/public/assets/{ui-vendor-BDDPoYki.js.map → ui-vendor-BuU3mq4G.js.map} +1 -1
  16. package/dist/public/index.html +2 -2
  17. package/dist/routes/config.d.ts.map +1 -1
  18. package/dist/routes/config.js +100 -9
  19. package/dist/routes/config.js.map +1 -1
  20. package/dist/routes/issues.d.ts.map +1 -1
  21. package/dist/routes/issues.js +27 -5
  22. package/dist/routes/issues.js.map +1 -1
  23. package/dist/routes/plugins.d.ts +27 -0
  24. package/dist/routes/plugins.d.ts.map +1 -0
  25. package/dist/routes/plugins.js +508 -0
  26. package/dist/routes/plugins.js.map +1 -0
  27. package/dist/routes/specs.js +2 -2
  28. package/dist/routes/specs.js.map +1 -1
  29. package/dist/services/editor-service.d.ts +1 -1
  30. package/dist/services/editor-service.d.ts.map +1 -1
  31. package/dist/services/editor-service.js +2 -2
  32. package/dist/services/editor-service.js.map +1 -1
  33. package/dist/services/execution-service.d.ts.map +1 -1
  34. package/dist/services/execution-service.js +54 -2
  35. package/dist/services/execution-service.js.map +1 -1
  36. package/dist/services/export.d.ts +3 -1
  37. package/dist/services/export.d.ts.map +1 -1
  38. package/dist/services/export.js +4 -2
  39. package/dist/services/export.js.map +1 -1
  40. package/dist/services/integration-sync-service.d.ts +185 -0
  41. package/dist/services/integration-sync-service.d.ts.map +1 -0
  42. package/dist/services/integration-sync-service.js +428 -0
  43. package/dist/services/integration-sync-service.js.map +1 -0
  44. package/dist/services/project-context.d.ts +3 -0
  45. package/dist/services/project-context.d.ts.map +1 -1
  46. package/dist/services/project-context.js +7 -0
  47. package/dist/services/project-context.js.map +1 -1
  48. package/dist/services/project-manager.d.ts.map +1 -1
  49. package/dist/services/project-manager.js +20 -1
  50. package/dist/services/project-manager.js.map +1 -1
  51. package/dist/services/websocket.d.ts +8 -0
  52. package/dist/services/websocket.d.ts.map +1 -1
  53. package/dist/services/websocket.js +7 -0
  54. package/dist/services/websocket.js.map +1 -1
  55. package/dist/types/editor.d.ts +1 -1
  56. package/dist/workflow/base-workflow-engine.d.ts.map +1 -1
  57. package/dist/workflow/base-workflow-engine.js +9 -1
  58. package/dist/workflow/base-workflow-engine.js.map +1 -1
  59. package/package.json +3 -3
@@ -5,9 +5,9 @@
5
5
  <link rel="icon" type="image/x-icon" href="/favicon.ico" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Sudocode</title>
8
- <script type="module" crossorigin src="/assets/index-CLIkhhGD.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-3qSRtUlY.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/react-vendor-5f1Wq1qs.js">
10
- <link rel="modulepreload" crossorigin href="/assets/ui-vendor-BDDPoYki.js">
10
+ <link rel="modulepreload" crossorigin href="/assets/ui-vendor-BuU3mq4G.js">
11
11
  <link rel="stylesheet" crossorigin href="/assets/index-p0337DGd.css">
12
12
  </head>
13
13
  <body>
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/routes/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAIpD,wBAAgB,kBAAkB,IAAI,MAAM,CAqB3C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/routes/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAgCpD,wBAAgB,kBAAkB,IAAI,MAAM,CA4G3C"}
@@ -1,18 +1,30 @@
1
1
  import { Router } from "express";
2
- import { existsSync, readFileSync } from "fs";
2
+ import { existsSync, readFileSync, writeFileSync } from "fs";
3
3
  import * as path from "path";
4
+ import { validateIntegrationsConfig, testProviderConnection as pluginTestConnection, } from "@sudocode-ai/cli/dist/integrations/index.js";
5
+ /**
6
+ * Helper to read config.json
7
+ */
8
+ function readConfig(sudocodeDir) {
9
+ const configPath = path.join(sudocodeDir, "config.json");
10
+ if (!existsSync(configPath)) {
11
+ return {};
12
+ }
13
+ return JSON.parse(readFileSync(configPath, "utf-8"));
14
+ }
15
+ /**
16
+ * Helper to write config.json
17
+ */
18
+ function writeConfig(sudocodeDir, config) {
19
+ const configPath = path.join(sudocodeDir, "config.json");
20
+ writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
21
+ }
4
22
  export function createConfigRouter() {
5
23
  const router = Router();
6
- // Config endpoint - returns sudocode configuration for a specific project
24
+ // GET /api/config - returns full sudocode configuration
7
25
  router.get("/", (req, res) => {
8
26
  try {
9
- const configPath = path.join(req.project.sudocodeDir, "config.json");
10
- if (!existsSync(configPath)) {
11
- // Return empty config if file doesn't exist
12
- res.status(200).json({});
13
- return;
14
- }
15
- const config = JSON.parse(readFileSync(configPath, "utf-8"));
27
+ const config = readConfig(req.project.sudocodeDir);
16
28
  res.status(200).json(config);
17
29
  }
18
30
  catch (error) {
@@ -20,6 +32,85 @@ export function createConfigRouter() {
20
32
  res.status(500).json({ error: "Failed to read config" });
21
33
  }
22
34
  });
35
+ // GET /api/config/integrations - returns integrations section only
36
+ router.get("/integrations", (req, res) => {
37
+ try {
38
+ const config = readConfig(req.project.sudocodeDir);
39
+ const integrations = (config.integrations || {});
40
+ res.status(200).json(integrations);
41
+ }
42
+ catch (error) {
43
+ console.error("Failed to read integrations config:", error);
44
+ res.status(500).json({ error: "Failed to read integrations config" });
45
+ }
46
+ });
47
+ // PUT /api/config/integrations - update integrations config
48
+ // Validates config and returns warnings, but still saves (non-blocking validation)
49
+ router.put("/integrations", (req, res) => {
50
+ try {
51
+ const integrations = req.body;
52
+ // Validate the integrations config (base validation only)
53
+ const validation = validateIntegrationsConfig(integrations);
54
+ // If there are errors (not warnings), reject the request
55
+ if (!validation.valid) {
56
+ res.status(400).json({
57
+ error: "Invalid integrations configuration",
58
+ errors: validation.errors,
59
+ warnings: validation.warnings,
60
+ });
61
+ return;
62
+ }
63
+ // Read existing config and update integrations section
64
+ const config = readConfig(req.project.sudocodeDir);
65
+ config.integrations = integrations;
66
+ // Write updated config
67
+ writeConfig(req.project.sudocodeDir, config);
68
+ res.status(200).json({
69
+ success: true,
70
+ integrations,
71
+ warnings: validation.warnings,
72
+ });
73
+ }
74
+ catch (error) {
75
+ console.error("Failed to update integrations config:", error);
76
+ res.status(500).json({ error: "Failed to update integrations config" });
77
+ }
78
+ });
79
+ // POST /api/config/integrations/:provider/test - test provider connection
80
+ // Returns validation status and whether the provider can connect
81
+ router.post("/integrations/:provider/test", async (req, res) => {
82
+ try {
83
+ const { provider } = req.params;
84
+ const config = readConfig(req.project.sudocodeDir);
85
+ const integrations = (config.integrations || {});
86
+ // Check if provider is configured
87
+ const providerConfig = integrations[provider];
88
+ if (!providerConfig) {
89
+ res.status(404).json({
90
+ success: false,
91
+ error: `Provider '${provider}' is not configured`,
92
+ });
93
+ return;
94
+ }
95
+ // Check if provider is enabled
96
+ if (!providerConfig.enabled) {
97
+ res.status(200).json({
98
+ success: false,
99
+ error: `Provider '${provider}' is disabled`,
100
+ configured: true,
101
+ enabled: false,
102
+ });
103
+ return;
104
+ }
105
+ // Delegate to plugin for testing
106
+ const testResult = await pluginTestConnection(provider, providerConfig, req.project.path);
107
+ res.status(200).json(testResult);
108
+ }
109
+ catch (error) {
110
+ console.error("Failed to test provider:", error);
111
+ res.status(500).json({ error: "Failed to test provider" });
112
+ }
113
+ });
23
114
  return router;
24
115
  }
25
116
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/routes/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,UAAU,kBAAkB;IAChC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,0EAA0E;IAC1E,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;QAC9C,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YACtE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5B,4CAA4C;gBAC5C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzB,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/routes/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/routes/issues.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAcpD,wBAAgB,kBAAkB,IAAI,MAAM,CAiU3C"}
1
+ {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/routes/issues.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAepD,wBAAgB,kBAAkB,IAAI,MAAM,CAwV3C"}
@@ -6,8 +6,9 @@
6
6
  import { Router } from "express";
7
7
  import { getAllIssues, getIssueById, createNewIssue, updateExistingIssue, deleteExistingIssue, } from "../services/issues.js";
8
8
  import { generateIssueId } from "@sudocode-ai/cli/dist/id-generator.js";
9
+ import { getIssueFromJsonl } from "@sudocode-ai/cli/dist/operations/external-links.js";
9
10
  import { broadcastIssueUpdate } from "../services/websocket.js";
10
- import { triggerExport, syncEntityToMarkdown } from "../services/export.js";
11
+ import { triggerExport, executeExportNow, syncEntityToMarkdown } from "../services/export.js";
11
12
  import * as path from "path";
12
13
  import * as fs from "fs";
13
14
  export function createIssuesRouter() {
@@ -148,7 +149,7 @@ export function createIssuesRouter() {
148
149
  /**
149
150
  * PUT /api/issues/:id - Update an existing issue
150
151
  */
151
- router.put("/:id", (req, res) => {
152
+ router.put("/:id", async (req, res) => {
152
153
  try {
153
154
  const { id } = req.params;
154
155
  const { title, content, status, priority, assignee, parent_id, archived, } = req.body;
@@ -198,8 +199,20 @@ export function createIssuesRouter() {
198
199
  }
199
200
  // Update issue using CLI operation
200
201
  const issue = updateExistingIssue(req.project.db, id, updateInput);
201
- // Trigger export to JSONL files
202
- triggerExport(req.project.db, req.project.sudocodeDir);
202
+ // If integration sync is enabled, export immediately so JSONL is updated before sync
203
+ // Otherwise use debounced export
204
+ if (req.project.integrationSyncService) {
205
+ // Execute export now to ensure JSONL is updated before integration sync
206
+ await executeExportNow(req.project.db, req.project.sudocodeDir);
207
+ // Sync to external integrations
208
+ req.project.integrationSyncService.syncEntity(issue.id).catch((error) => {
209
+ console.error(`Failed to sync issue ${issue.id} to external integrations:`, error);
210
+ });
211
+ }
212
+ else {
213
+ // Trigger debounced export when no integration sync is needed
214
+ triggerExport(req.project.db, req.project.sudocodeDir);
215
+ }
203
216
  // Sync this specific issue to its markdown file (don't wait for it)
204
217
  syncEntityToMarkdown(req.project.db, issue.id, "issue", req.project.sudocodeDir).catch((error) => {
205
218
  console.error(`Failed to sync issue ${issue.id} to markdown:`, error);
@@ -233,7 +246,7 @@ export function createIssuesRouter() {
233
246
  /**
234
247
  * DELETE /api/issues/:id - Delete an issue
235
248
  */
236
- router.delete("/:id", (req, res) => {
249
+ router.delete("/:id", async (req, res) => {
237
250
  try {
238
251
  const { id } = req.params;
239
252
  // Check if issue exists first
@@ -246,6 +259,9 @@ export function createIssuesRouter() {
246
259
  });
247
260
  return;
248
261
  }
262
+ // Read external_links from JSONL BEFORE deleting (for outbound propagation)
263
+ const jsonlIssue = getIssueFromJsonl(req.project.sudocodeDir, id);
264
+ const externalLinks = jsonlIssue?.external_links || [];
249
265
  // Save file_path before deletion (issues use standard path format)
250
266
  const markdownPath = path.join(req.project.sudocodeDir, "issues", `${id}.md`);
251
267
  // Delete issue using CLI operation
@@ -262,6 +278,12 @@ export function createIssuesRouter() {
262
278
  }
263
279
  // Trigger export to JSONL files
264
280
  triggerExport(req.project.db, req.project.sudocodeDir);
281
+ // Propagate deletion to external systems (if any links exist)
282
+ if (externalLinks.length > 0 && req.project.integrationSyncService) {
283
+ req.project.integrationSyncService.handleEntityDeleted(id, externalLinks).catch((error) => {
284
+ console.error(`[issues] Failed to propagate deletion to external systems:`, error);
285
+ });
286
+ }
265
287
  // Broadcast issue deletion to WebSocket clients
266
288
  broadcastIssueUpdate(req.project.id, id, "deleted", { id });
267
289
  res.json({
@@ -1 +1 @@
1
- {"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/routes/issues.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/routes/issues.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Server routes for plugin management
3
+ *
4
+ * Provides API endpoints for listing, activating, and configuring integration plugins.
5
+ */
6
+ import { Router } from "express";
7
+ export interface PluginInfo {
8
+ name: string;
9
+ displayName?: string;
10
+ package: string;
11
+ version?: string;
12
+ description?: string;
13
+ installed: boolean;
14
+ activated: boolean;
15
+ enabled: boolean;
16
+ configSchema?: unknown;
17
+ options?: Record<string, unknown>;
18
+ integrationConfig?: {
19
+ auto_sync?: boolean;
20
+ auto_import?: boolean;
21
+ delete_behavior?: "close" | "delete" | "ignore";
22
+ conflict_resolution?: "newest-wins" | "sudocode-wins" | "external-wins" | "manual";
23
+ default_sync_direction?: "inbound" | "outbound" | "bidirectional";
24
+ };
25
+ }
26
+ export declare function createPluginsRouter(): Router;
27
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/routes/plugins.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AA6CpD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC,iBAAiB,CAAC,EAAE;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,eAAe,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAChD,mBAAmB,CAAC,EAAE,aAAa,GAAG,eAAe,GAAG,eAAe,GAAG,QAAQ,CAAC;QACnF,sBAAsB,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,eAAe,CAAC;KACnE,CAAC;CACH;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CA6hB5C"}