@applica-software-guru/sdd-core 1.4.2 → 1.5.1

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/errors.d.ts CHANGED
@@ -14,6 +14,9 @@ export declare class RemoteError extends SDDError {
14
14
  statusCode: number;
15
15
  constructor(statusCode: number, message: string);
16
16
  }
17
+ export declare class RemoteTimeoutError extends SDDError {
18
+ constructor(timeoutSeconds: number);
19
+ }
17
20
  export declare class RemoteNotConfiguredError extends SDDError {
18
21
  constructor();
19
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAS,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,qBAAsB,SAAQ,QAAQ;gBACrC,IAAI,EAAE,MAAM;CAIzB;AAED,qBAAa,UAAW,SAAQ,QAAQ;gBAC1B,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI7C;AAED,qBAAa,0BAA2B,SAAQ,QAAQ;gBAC1C,IAAI,EAAE,MAAM;CAIzB;AAED,qBAAa,WAAY,SAAQ,QAAQ;IAChC,UAAU,EAAE,MAAM,CAAC;gBACd,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAKhD;AAED,qBAAa,wBAAyB,SAAQ,QAAQ;;CAKrD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAS,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,qBAAsB,SAAQ,QAAQ;gBACrC,IAAI,EAAE,MAAM;CAIzB;AAED,qBAAa,UAAW,SAAQ,QAAQ;gBAC1B,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI7C;AAED,qBAAa,0BAA2B,SAAQ,QAAQ;gBAC1C,IAAI,EAAE,MAAM;CAIzB;AAED,qBAAa,WAAY,SAAQ,QAAQ;IAChC,UAAU,EAAE,MAAM,CAAC;gBACd,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAKhD;AAED,qBAAa,kBAAmB,SAAQ,QAAQ;gBAClC,cAAc,EAAE,MAAM;CAInC;AAED,qBAAa,wBAAyB,SAAQ,QAAQ;;CAKrD"}
package/dist/errors.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RemoteNotConfiguredError = exports.RemoteError = exports.ProjectNotInitializedError = exports.ParseError = exports.LockFileNotFoundError = exports.SDDError = void 0;
3
+ exports.RemoteNotConfiguredError = exports.RemoteTimeoutError = exports.RemoteError = exports.ProjectNotInitializedError = exports.ParseError = exports.LockFileNotFoundError = exports.SDDError = void 0;
4
4
  class SDDError extends Error {
5
5
  constructor(message) {
6
6
  super(message);
@@ -38,6 +38,13 @@ class RemoteError extends SDDError {
38
38
  }
39
39
  }
40
40
  exports.RemoteError = RemoteError;
41
+ class RemoteTimeoutError extends SDDError {
42
+ constructor(timeoutSeconds) {
43
+ super(`Remote server did not respond within ${timeoutSeconds}s. You can increase the timeout with --timeout or remote.timeout in .sdd/config.yaml`);
44
+ this.name = 'RemoteTimeoutError';
45
+ }
46
+ }
47
+ exports.RemoteTimeoutError = RemoteTimeoutError;
41
48
  class RemoteNotConfiguredError extends SDDError {
42
49
  constructor() {
43
50
  super('Remote not configured. Run "sdd remote init" first.');
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,QAAS,SAAQ,KAAK;IACjC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AALD,4BAKC;AAED,MAAa,qBAAsB,SAAQ,QAAQ;IACjD,YAAY,IAAY;QACtB,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AALD,sDAKC;AAED,MAAa,UAAW,SAAQ,QAAQ;IACtC,YAAY,QAAgB,EAAE,MAAc;QAC1C,KAAK,CAAC,mBAAmB,QAAQ,KAAK,MAAM,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AALD,gCAKC;AAED,MAAa,0BAA2B,SAAQ,QAAQ;IACtD,YAAY,IAAY;QACtB,KAAK,CAAC,2BAA2B,IAAI,yBAAyB,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AALD,gEAKC;AAED,MAAa,WAAY,SAAQ,QAAQ;IAChC,UAAU,CAAS;IAC1B,YAAY,UAAkB,EAAE,OAAe;QAC7C,KAAK,CAAC,iBAAiB,UAAU,MAAM,OAAO,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAPD,kCAOC;AAED,MAAa,wBAAyB,SAAQ,QAAQ;IACpD;QACE,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AALD,4DAKC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,QAAS,SAAQ,KAAK;IACjC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AALD,4BAKC;AAED,MAAa,qBAAsB,SAAQ,QAAQ;IACjD,YAAY,IAAY;QACtB,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AALD,sDAKC;AAED,MAAa,UAAW,SAAQ,QAAQ;IACtC,YAAY,QAAgB,EAAE,MAAc;QAC1C,KAAK,CAAC,mBAAmB,QAAQ,KAAK,MAAM,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AALD,gCAKC;AAED,MAAa,0BAA2B,SAAQ,QAAQ;IACtD,YAAY,IAAY;QACtB,KAAK,CAAC,2BAA2B,IAAI,yBAAyB,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AALD,gEAKC;AAED,MAAa,WAAY,SAAQ,QAAQ;IAChC,UAAU,CAAS;IAC1B,YAAY,UAAkB,EAAE,OAAe;QAC7C,KAAK,CAAC,iBAAiB,UAAU,MAAM,OAAO,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAPD,kCAOC;AAED,MAAa,kBAAmB,SAAQ,QAAQ;IAC9C,YAAY,cAAsB;QAChC,KAAK,CAAC,wCAAwC,cAAc,sFAAsF,CAAC,CAAC;QACpJ,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC;AAED,MAAa,wBAAyB,SAAQ,QAAQ;IACpD;QACE,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AALD,4DAKC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { SDD } from "./sdd.js";
2
2
  export type { StoryFrontmatter, StoryFile, PendingItem, Delta, DeltaFile, ValidationResult, ValidationIssue, StoryStatus, StoryFileStatus, SDDConfig, ChangeRequest, ChangeRequestFrontmatter, ChangeRequestStatus, Bug, BugFrontmatter, BugStatus, RemoteConfig, } from "./types.js";
3
- export { SDDError, LockFileNotFoundError, ParseError, ProjectNotInitializedError, RemoteError, RemoteNotConfiguredError } from "./errors.js";
3
+ export { SDDError, LockFileNotFoundError, ParseError, ProjectNotInitializedError, RemoteError, RemoteNotConfiguredError, RemoteTimeoutError } from "./errors.js";
4
4
  export type { ProjectInfo } from "./scaffold/templates.js";
5
5
  export { isSDDProject, readConfig, writeConfig } from "./config/config-manager.js";
6
6
  export { runAgent } from "./agent/agent-runner.js";
@@ -10,7 +10,7 @@ export { listSupportedAdapters, SKILL_ADAPTERS, syncSkillAdapters } from "./scaf
10
10
  export type { AdapterMode, SkillAdapterDefinition, SyncAdaptersOptions, AdapterFileAction, AdapterFileChange, SyncAdaptersResult, } from "./scaffold/skill-adapters.js";
11
11
  export { generateDraftEnrichmentPrompt } from "./prompt/draft-prompt-generator.js";
12
12
  export type { DraftElements } from "./prompt/draft-prompt-generator.js";
13
- export { resolveApiKey, buildApiConfig, pullDocs, pushDocs, fetchPendingCRs, fetchOpenBugs, markCRAppliedRemote, markBugResolvedRemote, markDocEnriched, markCREnriched, markBugEnriched } from "./remote/api-client.js";
13
+ export { resolveApiKey, buildApiConfig, pullDocs, pushDocs, fetchPendingCRs, fetchOpenBugs, markCRAppliedRemote, markBugResolvedRemote, markDocEnriched, markCREnriched, markBugEnriched, DEFAULT_REMOTE_TIMEOUT } from "./remote/api-client.js";
14
14
  export type { ApiClientConfig } from "./remote/api-client.js";
15
15
  export { readRemoteState, writeRemoteState } from "./remote/state.js";
16
16
  export { pushToRemote, pullFromRemote, pullCRsFromRemote, pullBugsFromRemote, getRemoteStatus } from "./remote/sync-engine.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,eAAe,EACf,SAAS,EACT,aAAa,EACb,wBAAwB,EACxB,mBAAmB,EACnB,GAAG,EACH,cAAc,EACd,SAAS,EACT,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,UAAU,EAAE,0BAA0B,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC7I,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACxG,YAAY,EACV,WAAW,EACX,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,YAAY,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzN,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/H,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,YAAY,EACV,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,eAAe,EACf,SAAS,EACT,aAAa,EACb,wBAAwB,EACxB,mBAAmB,EACnB,GAAG,EACH,cAAc,EACd,SAAS,EACT,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,UAAU,EAAE,0BAA0B,EAAE,WAAW,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjK,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACxG,YAAY,EACV,WAAW,EACX,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,YAAY,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACjP,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/H,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRemoteStatus = exports.pullBugsFromRemote = exports.pullCRsFromRemote = exports.pullFromRemote = exports.pushToRemote = exports.writeRemoteState = exports.readRemoteState = exports.markBugEnriched = exports.markCREnriched = exports.markDocEnriched = exports.markBugResolvedRemote = exports.markCRAppliedRemote = exports.fetchOpenBugs = exports.fetchPendingCRs = exports.pushDocs = exports.pullDocs = exports.buildApiConfig = exports.resolveApiKey = exports.generateDraftEnrichmentPrompt = exports.syncSkillAdapters = exports.SKILL_ADAPTERS = exports.listSupportedAdapters = exports.resolveAgentCommand = exports.DEFAULT_AGENTS = exports.runAgent = exports.writeConfig = exports.readConfig = exports.isSDDProject = exports.RemoteNotConfiguredError = exports.RemoteError = exports.ProjectNotInitializedError = exports.ParseError = exports.LockFileNotFoundError = exports.SDDError = exports.SDD = void 0;
3
+ exports.getRemoteStatus = exports.pullBugsFromRemote = exports.pullCRsFromRemote = exports.pullFromRemote = exports.pushToRemote = exports.writeRemoteState = exports.readRemoteState = exports.DEFAULT_REMOTE_TIMEOUT = exports.markBugEnriched = exports.markCREnriched = exports.markDocEnriched = exports.markBugResolvedRemote = exports.markCRAppliedRemote = exports.fetchOpenBugs = exports.fetchPendingCRs = exports.pushDocs = exports.pullDocs = exports.buildApiConfig = exports.resolveApiKey = exports.generateDraftEnrichmentPrompt = exports.syncSkillAdapters = exports.SKILL_ADAPTERS = exports.listSupportedAdapters = exports.resolveAgentCommand = exports.DEFAULT_AGENTS = exports.runAgent = exports.writeConfig = exports.readConfig = exports.isSDDProject = exports.RemoteTimeoutError = exports.RemoteNotConfiguredError = exports.RemoteError = exports.ProjectNotInitializedError = exports.ParseError = exports.LockFileNotFoundError = exports.SDDError = exports.SDD = void 0;
4
4
  var sdd_js_1 = require("./sdd.js");
5
5
  Object.defineProperty(exports, "SDD", { enumerable: true, get: function () { return sdd_js_1.SDD; } });
6
6
  var errors_js_1 = require("./errors.js");
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "ParseError", { enumerable: true, get: function (
10
10
  Object.defineProperty(exports, "ProjectNotInitializedError", { enumerable: true, get: function () { return errors_js_1.ProjectNotInitializedError; } });
11
11
  Object.defineProperty(exports, "RemoteError", { enumerable: true, get: function () { return errors_js_1.RemoteError; } });
12
12
  Object.defineProperty(exports, "RemoteNotConfiguredError", { enumerable: true, get: function () { return errors_js_1.RemoteNotConfiguredError; } });
13
+ Object.defineProperty(exports, "RemoteTimeoutError", { enumerable: true, get: function () { return errors_js_1.RemoteTimeoutError; } });
13
14
  var config_manager_js_1 = require("./config/config-manager.js");
14
15
  Object.defineProperty(exports, "isSDDProject", { enumerable: true, get: function () { return config_manager_js_1.isSDDProject; } });
15
16
  Object.defineProperty(exports, "readConfig", { enumerable: true, get: function () { return config_manager_js_1.readConfig; } });
@@ -38,6 +39,7 @@ Object.defineProperty(exports, "markBugResolvedRemote", { enumerable: true, get:
38
39
  Object.defineProperty(exports, "markDocEnriched", { enumerable: true, get: function () { return api_client_js_1.markDocEnriched; } });
39
40
  Object.defineProperty(exports, "markCREnriched", { enumerable: true, get: function () { return api_client_js_1.markCREnriched; } });
40
41
  Object.defineProperty(exports, "markBugEnriched", { enumerable: true, get: function () { return api_client_js_1.markBugEnriched; } });
42
+ Object.defineProperty(exports, "DEFAULT_REMOTE_TIMEOUT", { enumerable: true, get: function () { return api_client_js_1.DEFAULT_REMOTE_TIMEOUT; } });
41
43
  var state_js_1 = require("./remote/state.js");
42
44
  Object.defineProperty(exports, "readRemoteState", { enumerable: true, get: function () { return state_js_1.readRemoteState; } });
43
45
  Object.defineProperty(exports, "writeRemoteState", { enumerable: true, get: function () { return state_js_1.writeRemoteState; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAAtB,6FAAA,GAAG,OAAA;AAoBZ,yCAA6I;AAApI,qGAAA,QAAQ,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AAAE,uGAAA,UAAU,OAAA;AAAE,uHAAA,0BAA0B,OAAA;AAAE,wGAAA,WAAW,OAAA;AAAE,qHAAA,wBAAwB,OAAA;AAEvH,gEAAmF;AAA1E,iHAAA,YAAY,OAAA;AAAE,+GAAA,UAAU,OAAA;AAAE,gHAAA,WAAW,OAAA;AAC9C,2DAAmD;AAA1C,2GAAA,QAAQ,OAAA;AAEjB,+DAAgF;AAAvE,mHAAA,cAAc,OAAA;AAAE,wHAAA,mBAAmB,OAAA;AAC5C,kEAAwG;AAA/F,0HAAA,qBAAqB,OAAA;AAAE,mHAAA,cAAc,OAAA;AAAE,sHAAA,iBAAiB,OAAA;AAUjE,cAAc;AACd,gFAAmF;AAA1E,0IAAA,6BAA6B,OAAA;AAEtC,wDAAyN;AAAhN,8GAAA,aAAa,OAAA;AAAE,+GAAA,cAAc,OAAA;AAAE,yGAAA,QAAQ,OAAA;AAAE,yGAAA,QAAQ,OAAA;AAAE,gHAAA,eAAe,OAAA;AAAE,8GAAA,aAAa,OAAA;AAAE,oHAAA,mBAAmB,OAAA;AAAE,sHAAA,qBAAqB,OAAA;AAAE,gHAAA,eAAe,OAAA;AAAE,+GAAA,cAAc,OAAA;AAAE,gHAAA,eAAe,OAAA;AAExL,8CAAsE;AAA7D,2GAAA,eAAe,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AAC1C,0DAA+H;AAAtH,8GAAA,YAAY,OAAA;AAAE,gHAAA,cAAc,OAAA;AAAE,mHAAA,iBAAiB,OAAA;AAAE,oHAAA,kBAAkB,OAAA;AAAE,iHAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAAtB,6FAAA,GAAG,OAAA;AAoBZ,yCAAiK;AAAxJ,qGAAA,QAAQ,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AAAE,uGAAA,UAAU,OAAA;AAAE,uHAAA,0BAA0B,OAAA;AAAE,wGAAA,WAAW,OAAA;AAAE,qHAAA,wBAAwB,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AAE3I,gEAAmF;AAA1E,iHAAA,YAAY,OAAA;AAAE,+GAAA,UAAU,OAAA;AAAE,gHAAA,WAAW,OAAA;AAC9C,2DAAmD;AAA1C,2GAAA,QAAQ,OAAA;AAEjB,+DAAgF;AAAvE,mHAAA,cAAc,OAAA;AAAE,wHAAA,mBAAmB,OAAA;AAC5C,kEAAwG;AAA/F,0HAAA,qBAAqB,OAAA;AAAE,mHAAA,cAAc,OAAA;AAAE,sHAAA,iBAAiB,OAAA;AAUjE,cAAc;AACd,gFAAmF;AAA1E,0IAAA,6BAA6B,OAAA;AAEtC,wDAAiP;AAAxO,8GAAA,aAAa,OAAA;AAAE,+GAAA,cAAc,OAAA;AAAE,yGAAA,QAAQ,OAAA;AAAE,yGAAA,QAAQ,OAAA;AAAE,gHAAA,eAAe,OAAA;AAAE,8GAAA,aAAa,OAAA;AAAE,oHAAA,mBAAmB,OAAA;AAAE,sHAAA,qBAAqB,OAAA;AAAE,gHAAA,eAAe,OAAA;AAAE,+GAAA,cAAc,OAAA;AAAE,gHAAA,eAAe,OAAA;AAAE,uHAAA,sBAAsB,OAAA;AAEhN,8CAAsE;AAA7D,2GAAA,eAAe,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AAC1C,0DAA+H;AAAtH,8GAAA,YAAY,OAAA;AAAE,gHAAA,cAAc,OAAA;AAAE,mHAAA,iBAAiB,OAAA;AAAE,oHAAA,kBAAkB,OAAA;AAAE,iHAAA,eAAe,OAAA"}
@@ -1,8 +1,11 @@
1
1
  import type { SDDConfig } from '../types.js';
2
2
  import type { RemoteDocResponse, RemoteDocBulkResponse, RemoteCRResponse, RemoteCRBulkResponse, RemoteBugResponse, RemoteBugBulkResponse } from './types.js';
3
+ /** Default timeout for remote operations (seconds) */
4
+ export declare const DEFAULT_REMOTE_TIMEOUT = 300;
3
5
  export interface ApiClientConfig {
4
6
  baseUrl: string;
5
7
  apiKey: string;
8
+ timeout: number;
6
9
  }
7
10
  /**
8
11
  * Resolve API key: SDD_API_KEY env var > config.remote.api-key > null
@@ -12,7 +15,12 @@ export declare function resolveApiKey(config: SDDConfig): string | null;
12
15
  * Build an ApiClientConfig from the SDD project config.
13
16
  * Throws RemoteNotConfiguredError if URL or API key is missing.
14
17
  */
15
- export declare function buildApiConfig(config: SDDConfig): ApiClientConfig;
18
+ /**
19
+ * Build an ApiClientConfig from the SDD project config.
20
+ * Throws RemoteNotConfiguredError if URL or API key is missing.
21
+ * An optional timeoutOverride (from --timeout flag) takes precedence over config.
22
+ */
23
+ export declare function buildApiConfig(config: SDDConfig, timeoutOverride?: number): ApiClientConfig;
16
24
  /** GET /cli/pull-docs */
17
25
  export declare function pullDocs(config: ApiClientConfig): Promise<RemoteDocResponse[]>;
18
26
  /** POST /cli/push-docs */
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/remote/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAI9D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe,CAYjE;AAkCD,yBAAyB;AACzB,wBAAsB,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAEpF;AAED,0BAA0B;AAC1B,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GACjE,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAED,2BAA2B;AAC3B,wBAAsB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAE1F;AAED,yBAAyB;AACzB,wBAAsB,OAAO,CAC3B,MAAM,EAAE,eAAe,EACvB,cAAc,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAChF,OAAO,CAAC,oBAAoB,CAAC,CAE/B;AAED,yBAAyB;AACzB,wBAAsB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAEzF;AAED,0BAA0B;AAC1B,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACzF,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAED,kCAAkC;AAClC,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAE3B;AAED,qCAAqC;AACrC,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,iBAAiB,CAAC,CAE5B;AAED,wFAAwF;AACxF,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,CAE5B;AAED,qFAAqF;AACrF,wBAAsB,cAAc,CAClC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAE3B;AAED,wFAAwF;AACxF,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iBAAiB,CAAC,CAE5B"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/remote/api-client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_REMOTE_TIMEOUT = void 0;
3
4
  exports.resolveApiKey = resolveApiKey;
4
5
  exports.buildApiConfig = buildApiConfig;
5
6
  exports.pullDocs = pullDocs;
@@ -14,6 +15,14 @@ exports.markDocEnriched = markDocEnriched;
14
15
  exports.markCREnriched = markCREnriched;
15
16
  exports.markBugEnriched = markBugEnriched;
16
17
  const errors_js_1 = require("../errors.js");
18
+ /** Default timeout for remote operations (seconds) */
19
+ exports.DEFAULT_REMOTE_TIMEOUT = 300;
20
+ /** Status codes that trigger a retry (server not ready / cold start) */
21
+ const RETRYABLE_STATUS_CODES = new Set([502, 503, 504]);
22
+ /** Initial backoff delay in ms */
23
+ const INITIAL_BACKOFF_MS = 3_000;
24
+ /** Maximum backoff delay in ms */
25
+ const MAX_BACKOFF_MS = 30_000;
17
26
  /**
18
27
  * Resolve API key: SDD_API_KEY env var > config.remote.api-key > null
19
28
  */
@@ -27,7 +36,12 @@ function resolveApiKey(config) {
27
36
  * Build an ApiClientConfig from the SDD project config.
28
37
  * Throws RemoteNotConfiguredError if URL or API key is missing.
29
38
  */
30
- function buildApiConfig(config) {
39
+ /**
40
+ * Build an ApiClientConfig from the SDD project config.
41
+ * Throws RemoteNotConfiguredError if URL or API key is missing.
42
+ * An optional timeoutOverride (from --timeout flag) takes precedence over config.
43
+ */
44
+ function buildApiConfig(config, timeoutOverride) {
31
45
  if (!config.remote?.url) {
32
46
  throw new errors_js_1.RemoteNotConfiguredError();
33
47
  }
@@ -38,31 +52,94 @@ function buildApiConfig(config) {
38
52
  return {
39
53
  baseUrl: config.remote.url.replace(/\/+$/, ''),
40
54
  apiKey,
55
+ timeout: timeoutOverride ?? config.remote.timeout ?? exports.DEFAULT_REMOTE_TIMEOUT,
41
56
  };
42
57
  }
58
+ function sleep(ms) {
59
+ return new Promise((resolve) => setTimeout(resolve, ms));
60
+ }
61
+ function isRetryable(error) {
62
+ if (error instanceof errors_js_1.RemoteError) {
63
+ return RETRYABLE_STATUS_CODES.has(error.statusCode);
64
+ }
65
+ // Network errors (ECONNREFUSED, ENOTFOUND, fetch abort due to connection failure)
66
+ if (error instanceof TypeError)
67
+ return true;
68
+ const code = error.code;
69
+ return code === 'ECONNREFUSED' || code === 'ECONNRESET' || code === 'ENOTFOUND' || code === 'UND_ERR_CONNECT_TIMEOUT';
70
+ }
43
71
  async function request(config, method, path, body) {
44
72
  const url = `${config.baseUrl}${path}`;
45
73
  const headers = {
46
74
  Authorization: `Bearer ${config.apiKey}`,
47
75
  'Content-Type': 'application/json',
48
76
  };
49
- const res = await fetch(url, {
50
- method,
51
- headers,
52
- body: body != null ? JSON.stringify(body) : undefined,
53
- });
54
- if (!res.ok) {
55
- let message;
77
+ const deadline = Date.now() + config.timeout * 1_000;
78
+ let backoff = INITIAL_BACKOFF_MS;
79
+ let attempt = 0;
80
+ while (true) {
81
+ attempt++;
82
+ const remaining = deadline - Date.now();
83
+ if (remaining <= 0) {
84
+ throw new errors_js_1.RemoteTimeoutError(config.timeout);
85
+ }
86
+ // Per-request timeout: min of remaining budget and 60s
87
+ const perRequestTimeout = Math.min(remaining, 60_000);
88
+ const controller = new AbortController();
89
+ const timer = setTimeout(() => controller.abort(), perRequestTimeout);
56
90
  try {
57
- const err = (await res.json());
58
- message = err.detail ?? res.statusText;
91
+ const res = await fetch(url, {
92
+ method,
93
+ headers,
94
+ body: body != null ? JSON.stringify(body) : undefined,
95
+ signal: controller.signal,
96
+ });
97
+ clearTimeout(timer);
98
+ if (!res.ok) {
99
+ let message;
100
+ try {
101
+ const err = (await res.json());
102
+ message = err.detail ?? res.statusText;
103
+ }
104
+ catch {
105
+ message = res.statusText;
106
+ }
107
+ const remoteErr = new errors_js_1.RemoteError(res.status, message);
108
+ if (RETRYABLE_STATUS_CODES.has(res.status) && Date.now() + backoff < deadline) {
109
+ process.stderr.write(` ⏳ Server not ready (${res.status}), retrying in ${Math.round(backoff / 1000)}s... (attempt ${attempt})\n`);
110
+ await sleep(backoff);
111
+ backoff = Math.min(backoff * 2, MAX_BACKOFF_MS);
112
+ continue;
113
+ }
114
+ throw remoteErr;
115
+ }
116
+ return (await res.json());
59
117
  }
60
- catch {
61
- message = res.statusText;
118
+ catch (error) {
119
+ clearTimeout(timer);
120
+ if (error instanceof errors_js_1.RemoteError || error instanceof errors_js_1.RemoteTimeoutError) {
121
+ throw error;
122
+ }
123
+ // Retryable network/connection error
124
+ if (isRetryable(error) && Date.now() + backoff < deadline) {
125
+ process.stderr.write(` ⏳ Cannot reach server, retrying in ${Math.round(backoff / 1000)}s... (attempt ${attempt})\n`);
126
+ await sleep(backoff);
127
+ backoff = Math.min(backoff * 2, MAX_BACKOFF_MS);
128
+ continue;
129
+ }
130
+ // AbortError from our own timeout
131
+ if (error.name === 'AbortError') {
132
+ if (Date.now() + backoff < deadline) {
133
+ process.stderr.write(` ⏳ Request timed out, retrying in ${Math.round(backoff / 1000)}s... (attempt ${attempt})\n`);
134
+ await sleep(backoff);
135
+ backoff = Math.min(backoff * 2, MAX_BACKOFF_MS);
136
+ continue;
137
+ }
138
+ throw new errors_js_1.RemoteTimeoutError(config.timeout);
139
+ }
140
+ throw error;
62
141
  }
63
- throw new errors_js_1.RemoteError(res.status, message);
64
142
  }
65
- return (await res.json());
66
143
  }
67
144
  /** GET /cli/pull-docs */
68
145
  async function pullDocs(config) {
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/remote/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/remote/api-client.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,11 @@ import type { PushResult, PullResult, PullEntitiesResult, RemoteStatusResult } f
2
2
  export interface PushOptions {
3
3
  paths?: string[];
4
4
  all?: boolean;
5
+ timeout?: number;
5
6
  }
6
7
  export declare function pushToRemote(root: string, options?: PushOptions): Promise<PushResult>;
7
- export declare function pullFromRemote(root: string): Promise<PullResult>;
8
- export declare function pullCRsFromRemote(root: string): Promise<PullEntitiesResult>;
9
- export declare function pullBugsFromRemote(root: string): Promise<PullEntitiesResult>;
10
- export declare function getRemoteStatus(root: string): Promise<RemoteStatusResult>;
8
+ export declare function pullFromRemote(root: string, timeout?: number): Promise<PullResult>;
9
+ export declare function pullCRsFromRemote(root: string, timeout?: number): Promise<PullEntitiesResult>;
10
+ export declare function pullBugsFromRemote(root: string, timeout?: number): Promise<PullEntitiesResult>;
11
+ export declare function getRemoteStatus(root: string, timeout?: number): Promise<RemoteStatusResult>;
11
12
  //# sourceMappingURL=sync-engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-engine.d.ts","sourceRoot":"","sources":["../../src/remote/sync-engine.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EAEV,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAqDpB,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAmJ3F;AAID,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAwDtE;AAkBD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA4BjF;AAID,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA4BlF;AAID,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA6B/E"}
1
+ {"version":3,"file":"sync-engine.d.ts","sourceRoot":"","sources":["../../src/remote/sync-engine.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EAEV,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAqDpB,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAmJ3F;AAID,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAwDxF;AAkBD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAmDnG;AAID,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAmDpG;AAID,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA6BjG"}
@@ -65,7 +65,7 @@ function buildBugMarkdown(title, body, createdAt, status = 'open') {
65
65
  }
66
66
  async function pushToRemote(root, options) {
67
67
  const config = await (0, config_manager_js_1.readConfig)(root);
68
- const api = (0, api_client_js_1.buildApiConfig)(config);
68
+ const api = (0, api_client_js_1.buildApiConfig)(config, options?.timeout);
69
69
  const state = await (0, state_js_1.readRemoteState)(root);
70
70
  if (!state.changeRequests)
71
71
  state.changeRequests = {};
@@ -198,9 +198,9 @@ async function pushToRemote(root, options) {
198
198
  };
199
199
  }
200
200
  // ─── Pull Documents ──────────────────────────────────────────────────────
201
- async function pullFromRemote(root) {
201
+ async function pullFromRemote(root, timeout) {
202
202
  const config = await (0, config_manager_js_1.readConfig)(root);
203
- const api = (0, api_client_js_1.buildApiConfig)(config);
203
+ const api = (0, api_client_js_1.buildApiConfig)(config, timeout);
204
204
  const remoteDocs = await (0, api_client_js_1.pullDocs)(api);
205
205
  const state = await (0, state_js_1.readRemoteState)(root);
206
206
  const created = [];
@@ -259,10 +259,18 @@ function updateDocState(state, doc, localPath, markdownContent) {
259
259
  };
260
260
  }
261
261
  // ─── Pull CRs ────────────────────────────────────────────────────────────
262
- async function pullCRsFromRemote(root) {
262
+ async function pullCRsFromRemote(root, timeout) {
263
263
  const config = await (0, config_manager_js_1.readConfig)(root);
264
- const api = (0, api_client_js_1.buildApiConfig)(config);
264
+ const api = (0, api_client_js_1.buildApiConfig)(config, timeout);
265
265
  const remoteCRs = await (0, api_client_js_1.fetchPendingCRs)(api);
266
+ const state = await (0, state_js_1.readRemoteState)(root);
267
+ if (!state.changeRequests)
268
+ state.changeRequests = {};
269
+ // Build reverse map: remoteId → localPath
270
+ const idToPath = new Map();
271
+ for (const [localPath, entry] of Object.entries(state.changeRequests)) {
272
+ idToPath.set(entry.remoteId, localPath);
273
+ }
266
274
  const crDir = (0, node_path_1.resolve)(root, 'change-requests');
267
275
  if (!(0, node_fs_1.existsSync)(crDir)) {
268
276
  await (0, promises_1.mkdir)(crDir, { recursive: true });
@@ -270,8 +278,13 @@ async function pullCRsFromRemote(root) {
270
278
  let created = 0;
271
279
  let updated = 0;
272
280
  for (const cr of remoteCRs) {
273
- const filename = `CR-${cr.id.substring(0, 8)}.md`;
274
- const absPath = (0, node_path_1.resolve)(crDir, filename);
281
+ // Use the original local path if we pushed this CR before, otherwise generate a fallback
282
+ const localPath = idToPath.get(cr.id) ?? `change-requests/CR-${cr.id.substring(0, 8)}.md`;
283
+ const absPath = (0, node_path_1.resolve)(root, localPath);
284
+ const dir = (0, node_path_1.dirname)(absPath);
285
+ if (!(0, node_fs_1.existsSync)(dir)) {
286
+ await (0, promises_1.mkdir)(dir, { recursive: true });
287
+ }
275
288
  const crStatus = cr.status === 'draft' ? 'draft' : 'pending';
276
289
  const markdown = buildCRMarkdown(cr.title, cr.body, cr.created_at, crStatus);
277
290
  if ((0, node_fs_1.existsSync)(absPath)) {
@@ -281,14 +294,29 @@ async function pullCRsFromRemote(root) {
281
294
  created++;
282
295
  }
283
296
  await (0, promises_1.writeFile)(absPath, markdown, 'utf-8');
297
+ // Update state so future pulls keep using the same path
298
+ state.changeRequests[normalizePath(localPath)] = {
299
+ remoteId: cr.id,
300
+ localHash: sha256(markdown),
301
+ lastSynced: new Date().toISOString(),
302
+ };
284
303
  }
304
+ await (0, state_js_1.writeRemoteState)(root, state);
285
305
  return { created, updated };
286
306
  }
287
307
  // ─── Pull Bugs ───────────────────────────────────────────────────────────
288
- async function pullBugsFromRemote(root) {
308
+ async function pullBugsFromRemote(root, timeout) {
289
309
  const config = await (0, config_manager_js_1.readConfig)(root);
290
- const api = (0, api_client_js_1.buildApiConfig)(config);
310
+ const api = (0, api_client_js_1.buildApiConfig)(config, timeout);
291
311
  const remoteBugs = await (0, api_client_js_1.fetchOpenBugs)(api);
312
+ const state = await (0, state_js_1.readRemoteState)(root);
313
+ if (!state.bugs)
314
+ state.bugs = {};
315
+ // Build reverse map: remoteId → localPath
316
+ const idToPath = new Map();
317
+ for (const [localPath, entry] of Object.entries(state.bugs)) {
318
+ idToPath.set(entry.remoteId, localPath);
319
+ }
292
320
  const bugsDir = (0, node_path_1.resolve)(root, 'bugs');
293
321
  if (!(0, node_fs_1.existsSync)(bugsDir)) {
294
322
  await (0, promises_1.mkdir)(bugsDir, { recursive: true });
@@ -296,8 +324,13 @@ async function pullBugsFromRemote(root) {
296
324
  let created = 0;
297
325
  let updated = 0;
298
326
  for (const bug of remoteBugs) {
299
- const filename = `BUG-${bug.id.substring(0, 8)}.md`;
300
- const absPath = (0, node_path_1.resolve)(bugsDir, filename);
327
+ // Use the original local path if we pushed this bug before, otherwise generate a fallback
328
+ const localPath = idToPath.get(bug.id) ?? `bugs/BUG-${bug.id.substring(0, 8)}.md`;
329
+ const absPath = (0, node_path_1.resolve)(root, localPath);
330
+ const dir = (0, node_path_1.dirname)(absPath);
331
+ if (!(0, node_fs_1.existsSync)(dir)) {
332
+ await (0, promises_1.mkdir)(dir, { recursive: true });
333
+ }
301
334
  const bugStatus = bug.status === 'draft' ? 'draft' : 'open';
302
335
  const markdown = buildBugMarkdown(bug.title, bug.body, bug.created_at, bugStatus);
303
336
  if ((0, node_fs_1.existsSync)(absPath)) {
@@ -307,11 +340,18 @@ async function pullBugsFromRemote(root) {
307
340
  created++;
308
341
  }
309
342
  await (0, promises_1.writeFile)(absPath, markdown, 'utf-8');
343
+ // Update state so future pulls keep using the same path
344
+ state.bugs[normalizePath(localPath)] = {
345
+ remoteId: bug.id,
346
+ localHash: sha256(markdown),
347
+ lastSynced: new Date().toISOString(),
348
+ };
310
349
  }
350
+ await (0, state_js_1.writeRemoteState)(root, state);
311
351
  return { created, updated };
312
352
  }
313
353
  // ─── Remote Status ───────────────────────────────────────────────────────
314
- async function getRemoteStatus(root) {
354
+ async function getRemoteStatus(root, timeout) {
315
355
  const config = await (0, config_manager_js_1.readConfig)(root);
316
356
  if (!config.remote?.url) {
317
357
  return { configured: false, url: null, connected: false, localPending: 0, remoteDocs: 0 };
@@ -319,7 +359,7 @@ async function getRemoteStatus(root) {
319
359
  const files = await (0, story_parser_js_1.parseAllStoryFiles)(root);
320
360
  const localPending = files.filter((f) => f.frontmatter.status !== 'synced').length;
321
361
  try {
322
- const api = (0, api_client_js_1.buildApiConfig)(config);
362
+ const api = (0, api_client_js_1.buildApiConfig)(config, timeout);
323
363
  const docs = await (0, api_client_js_1.pullDocs)(api);
324
364
  return {
325
365
  configured: true,
@@ -1 +1 @@
1
- {"version":3,"file":"sync-engine.js","sourceRoot":"","sources":["../../src/remote/sync-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-engine.js","sourceRoot":"","sources":["../../src/remote/sync-engine.ts"],"names":[],"mappings":"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"}
package/dist/sdd.d.ts CHANGED
@@ -30,13 +30,14 @@ export declare class SDD {
30
30
  }>;
31
31
  draftEnrichmentPrompt(): Promise<string | null>;
32
32
  markDraftsEnriched(paths?: string[]): Promise<string[]>;
33
- remoteStatus(): Promise<RemoteStatusResult>;
33
+ remoteStatus(timeout?: number): Promise<RemoteStatusResult>;
34
34
  push(paths?: string[], options?: {
35
35
  all?: boolean;
36
+ timeout?: number;
36
37
  }): Promise<PushResult>;
37
- pull(): Promise<PullResult>;
38
- pullCRs(): Promise<PullEntitiesResult>;
39
- pullBugs(): Promise<PullEntitiesResult>;
38
+ pull(timeout?: number): Promise<PullResult>;
39
+ pullCRs(timeout?: number): Promise<PullEntitiesResult>;
40
+ pullBugs(timeout?: number): Promise<PullEntitiesResult>;
40
41
  private ensureInitialized;
41
42
  }
42
43
  //# sourceMappingURL=sdd.d.ts.map
package/dist/sdd.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sdd.d.ts","sourceRoot":"","sources":["../src/sdd.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAW/F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,8BAA8B,CAAC;AAQtC,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAExG,qBAAa,GAAG;IACd,OAAO,CAAC,IAAI,CAAS;gBAET,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAI/B,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAI3C,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK9E,iBAAiB,IAAI,MAAM,EAAE;IAIvB,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IAK5B,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC;IAc9B,OAAO,IAAI,OAAO,CAAC,OAAO,YAAY,EAAE,SAAS,EAAE,CAAC;IAMpD,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAKvB,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAcrC,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAMrC,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA6B/C,cAAc,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAK1C,qBAAqB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAKjD,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmBlD,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAKtB,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAK1B,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAqBpD,MAAM,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,YAAY,EAAE,SAAS,EAAE,CAAC;QAAC,GAAG,EAAE,aAAa,EAAE,CAAC;QAAC,IAAI,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;IAchG,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAS/C,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA6CvD,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAK3C,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAKxE,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAK3B,OAAO,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAKtC,QAAQ,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAK7C,OAAO,CAAC,iBAAiB;CAK1B"}
1
+ {"version":3,"file":"sdd.d.ts","sourceRoot":"","sources":["../src/sdd.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAW/F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,8BAA8B,CAAC;AAQtC,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAExG,qBAAa,GAAG;IACd,OAAO,CAAC,IAAI,CAAS;gBAET,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAI/B,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAI3C,YAAY,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK9E,iBAAiB,IAAI,MAAM,EAAE;IAIvB,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IAK5B,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC;IAc9B,OAAO,IAAI,OAAO,CAAC,OAAO,YAAY,EAAE,SAAS,EAAE,CAAC;IAMpD,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAKvB,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAcrC,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAMrC,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA6B/C,cAAc,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAK1C,qBAAqB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAKjD,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmBlD,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAKtB,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAK1B,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAqBpD,MAAM,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,YAAY,EAAE,SAAS,EAAE,CAAC;QAAC,GAAG,EAAE,aAAa,EAAE,CAAC;QAAC,IAAI,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;IAchG,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAS/C,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA6CvD,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK3D,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAK1F,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAK3C,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAKtD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK7D,OAAO,CAAC,iBAAiB;CAK1B"}
package/dist/sdd.js CHANGED
@@ -217,25 +217,25 @@ class SDD {
217
217
  return marked;
218
218
  }
219
219
  // ── Remote sync ──────────────────────────────────────────────────────
220
- async remoteStatus() {
220
+ async remoteStatus(timeout) {
221
221
  this.ensureInitialized();
222
- return (0, sync_engine_js_1.getRemoteStatus)(this.root);
222
+ return (0, sync_engine_js_1.getRemoteStatus)(this.root, timeout);
223
223
  }
224
224
  async push(paths, options) {
225
225
  this.ensureInitialized();
226
- return (0, sync_engine_js_1.pushToRemote)(this.root, { paths, all: options?.all });
226
+ return (0, sync_engine_js_1.pushToRemote)(this.root, { paths, all: options?.all, timeout: options?.timeout });
227
227
  }
228
- async pull() {
228
+ async pull(timeout) {
229
229
  this.ensureInitialized();
230
- return (0, sync_engine_js_1.pullFromRemote)(this.root);
230
+ return (0, sync_engine_js_1.pullFromRemote)(this.root, timeout);
231
231
  }
232
- async pullCRs() {
232
+ async pullCRs(timeout) {
233
233
  this.ensureInitialized();
234
- return (0, sync_engine_js_1.pullCRsFromRemote)(this.root);
234
+ return (0, sync_engine_js_1.pullCRsFromRemote)(this.root, timeout);
235
235
  }
236
- async pullBugs() {
236
+ async pullBugs(timeout) {
237
237
  this.ensureInitialized();
238
- return (0, sync_engine_js_1.pullBugsFromRemote)(this.root);
238
+ return (0, sync_engine_js_1.pullBugsFromRemote)(this.root, timeout);
239
239
  }
240
240
  ensureInitialized() {
241
241
  if (!(0, config_manager_js_1.isSDDProject)(this.root)) {
package/dist/sdd.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sdd.js","sourceRoot":"","sources":["../src/sdd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdd.js","sourceRoot":"","sources":["../src/sdd.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -49,6 +49,7 @@ export interface StoryStatus {
49
49
  export interface RemoteConfig {
50
50
  url: string;
51
51
  'api-key'?: string;
52
+ timeout?: number;
52
53
  }
53
54
  export interface SDDConfig {
54
55
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applica-software-guru/sdd-core",
3
- "version": "1.4.2",
3
+ "version": "1.5.1",
4
4
  "description": "Core library for Story Driven Development",
5
5
  "author": "Bruno Fortunato <bruno.fortunato@applica.guru>",
6
6
  "main": "dist/index.js",
package/src/errors.ts CHANGED
@@ -35,6 +35,13 @@ export class RemoteError extends SDDError {
35
35
  }
36
36
  }
37
37
 
38
+ export class RemoteTimeoutError extends SDDError {
39
+ constructor(timeoutSeconds: number) {
40
+ super(`Remote server did not respond within ${timeoutSeconds}s. You can increase the timeout with --timeout or remote.timeout in .sdd/config.yaml`);
41
+ this.name = 'RemoteTimeoutError';
42
+ }
43
+ }
44
+
38
45
  export class RemoteNotConfiguredError extends SDDError {
39
46
  constructor() {
40
47
  super('Remote not configured. Run "sdd remote init" first.');
package/src/index.ts CHANGED
@@ -18,7 +18,7 @@ export type {
18
18
  BugStatus,
19
19
  RemoteConfig,
20
20
  } from "./types.js";
21
- export { SDDError, LockFileNotFoundError, ParseError, ProjectNotInitializedError, RemoteError, RemoteNotConfiguredError } from "./errors.js";
21
+ export { SDDError, LockFileNotFoundError, ParseError, ProjectNotInitializedError, RemoteError, RemoteNotConfiguredError, RemoteTimeoutError } from "./errors.js";
22
22
  export type { ProjectInfo } from "./scaffold/templates.js";
23
23
  export { isSDDProject, readConfig, writeConfig } from "./config/config-manager.js";
24
24
  export { runAgent } from "./agent/agent-runner.js";
@@ -37,7 +37,7 @@ export type {
37
37
  // Remote sync
38
38
  export { generateDraftEnrichmentPrompt } from "./prompt/draft-prompt-generator.js";
39
39
  export type { DraftElements } from "./prompt/draft-prompt-generator.js";
40
- export { resolveApiKey, buildApiConfig, pullDocs, pushDocs, fetchPendingCRs, fetchOpenBugs, markCRAppliedRemote, markBugResolvedRemote, markDocEnriched, markCREnriched, markBugEnriched } from "./remote/api-client.js";
40
+ export { resolveApiKey, buildApiConfig, pullDocs, pushDocs, fetchPendingCRs, fetchOpenBugs, markCRAppliedRemote, markBugResolvedRemote, markDocEnriched, markCREnriched, markBugEnriched, DEFAULT_REMOTE_TIMEOUT } from "./remote/api-client.js";
41
41
  export type { ApiClientConfig } from "./remote/api-client.js";
42
42
  export { readRemoteState, writeRemoteState } from "./remote/state.js";
43
43
  export { pushToRemote, pullFromRemote, pullCRsFromRemote, pullBugsFromRemote, getRemoteStatus } from "./remote/sync-engine.js";
@@ -1,5 +1,5 @@
1
1
  import type { SDDConfig } from '../types.js';
2
- import { RemoteError, RemoteNotConfiguredError } from '../errors.js';
2
+ import { RemoteError, RemoteNotConfiguredError, RemoteTimeoutError } from '../errors.js';
3
3
  import type {
4
4
  RemoteDocResponse,
5
5
  RemoteDocBulkResponse,
@@ -9,9 +9,22 @@ import type {
9
9
  RemoteBugBulkResponse,
10
10
  } from './types.js';
11
11
 
12
+ /** Default timeout for remote operations (seconds) */
13
+ export const DEFAULT_REMOTE_TIMEOUT = 300;
14
+
15
+ /** Status codes that trigger a retry (server not ready / cold start) */
16
+ const RETRYABLE_STATUS_CODES = new Set([502, 503, 504]);
17
+
18
+ /** Initial backoff delay in ms */
19
+ const INITIAL_BACKOFF_MS = 3_000;
20
+
21
+ /** Maximum backoff delay in ms */
22
+ const MAX_BACKOFF_MS = 30_000;
23
+
12
24
  export interface ApiClientConfig {
13
25
  baseUrl: string;
14
26
  apiKey: string;
27
+ timeout: number;
15
28
  }
16
29
 
17
30
  /**
@@ -27,7 +40,12 @@ export function resolveApiKey(config: SDDConfig): string | null {
27
40
  * Build an ApiClientConfig from the SDD project config.
28
41
  * Throws RemoteNotConfiguredError if URL or API key is missing.
29
42
  */
30
- export function buildApiConfig(config: SDDConfig): ApiClientConfig {
43
+ /**
44
+ * Build an ApiClientConfig from the SDD project config.
45
+ * Throws RemoteNotConfiguredError if URL or API key is missing.
46
+ * An optional timeoutOverride (from --timeout flag) takes precedence over config.
47
+ */
48
+ export function buildApiConfig(config: SDDConfig, timeoutOverride?: number): ApiClientConfig {
31
49
  if (!config.remote?.url) {
32
50
  throw new RemoteNotConfiguredError();
33
51
  }
@@ -38,9 +56,24 @@ export function buildApiConfig(config: SDDConfig): ApiClientConfig {
38
56
  return {
39
57
  baseUrl: config.remote.url.replace(/\/+$/, ''),
40
58
  apiKey,
59
+ timeout: timeoutOverride ?? config.remote.timeout ?? DEFAULT_REMOTE_TIMEOUT,
41
60
  };
42
61
  }
43
62
 
63
+ function sleep(ms: number): Promise<void> {
64
+ return new Promise((resolve) => setTimeout(resolve, ms));
65
+ }
66
+
67
+ function isRetryable(error: unknown): boolean {
68
+ if (error instanceof RemoteError) {
69
+ return RETRYABLE_STATUS_CODES.has(error.statusCode);
70
+ }
71
+ // Network errors (ECONNREFUSED, ENOTFOUND, fetch abort due to connection failure)
72
+ if (error instanceof TypeError) return true;
73
+ const code = (error as NodeJS.ErrnoException).code;
74
+ return code === 'ECONNREFUSED' || code === 'ECONNRESET' || code === 'ENOTFOUND' || code === 'UND_ERR_CONNECT_TIMEOUT';
75
+ }
76
+
44
77
  async function request<T>(
45
78
  config: ApiClientConfig,
46
79
  method: string,
@@ -53,24 +86,82 @@ async function request<T>(
53
86
  'Content-Type': 'application/json',
54
87
  };
55
88
 
56
- const res = await fetch(url, {
57
- method,
58
- headers,
59
- body: body != null ? JSON.stringify(body) : undefined,
60
- });
89
+ const deadline = Date.now() + config.timeout * 1_000;
90
+ let backoff = INITIAL_BACKOFF_MS;
91
+ let attempt = 0;
92
+
93
+ while (true) {
94
+ attempt++;
95
+ const remaining = deadline - Date.now();
96
+ if (remaining <= 0) {
97
+ throw new RemoteTimeoutError(config.timeout);
98
+ }
99
+
100
+ // Per-request timeout: min of remaining budget and 60s
101
+ const perRequestTimeout = Math.min(remaining, 60_000);
102
+ const controller = new AbortController();
103
+ const timer = setTimeout(() => controller.abort(), perRequestTimeout);
61
104
 
62
- if (!res.ok) {
63
- let message: string;
64
105
  try {
65
- const err = (await res.json()) as { detail?: string };
66
- message = err.detail ?? res.statusText;
67
- } catch {
68
- message = res.statusText;
106
+ const res = await fetch(url, {
107
+ method,
108
+ headers,
109
+ body: body != null ? JSON.stringify(body) : undefined,
110
+ signal: controller.signal,
111
+ });
112
+
113
+ clearTimeout(timer);
114
+
115
+ if (!res.ok) {
116
+ let message: string;
117
+ try {
118
+ const err = (await res.json()) as { detail?: string };
119
+ message = err.detail ?? res.statusText;
120
+ } catch {
121
+ message = res.statusText;
122
+ }
123
+ const remoteErr = new RemoteError(res.status, message);
124
+
125
+ if (RETRYABLE_STATUS_CODES.has(res.status) && Date.now() + backoff < deadline) {
126
+ process.stderr.write(` ⏳ Server not ready (${res.status}), retrying in ${Math.round(backoff / 1000)}s... (attempt ${attempt})\n`);
127
+ await sleep(backoff);
128
+ backoff = Math.min(backoff * 2, MAX_BACKOFF_MS);
129
+ continue;
130
+ }
131
+
132
+ throw remoteErr;
133
+ }
134
+
135
+ return (await res.json()) as T;
136
+ } catch (error) {
137
+ clearTimeout(timer);
138
+
139
+ if (error instanceof RemoteError || error instanceof RemoteTimeoutError) {
140
+ throw error;
141
+ }
142
+
143
+ // Retryable network/connection error
144
+ if (isRetryable(error) && Date.now() + backoff < deadline) {
145
+ process.stderr.write(` ⏳ Cannot reach server, retrying in ${Math.round(backoff / 1000)}s... (attempt ${attempt})\n`);
146
+ await sleep(backoff);
147
+ backoff = Math.min(backoff * 2, MAX_BACKOFF_MS);
148
+ continue;
149
+ }
150
+
151
+ // AbortError from our own timeout
152
+ if ((error as Error).name === 'AbortError') {
153
+ if (Date.now() + backoff < deadline) {
154
+ process.stderr.write(` ⏳ Request timed out, retrying in ${Math.round(backoff / 1000)}s... (attempt ${attempt})\n`);
155
+ await sleep(backoff);
156
+ backoff = Math.min(backoff * 2, MAX_BACKOFF_MS);
157
+ continue;
158
+ }
159
+ throw new RemoteTimeoutError(config.timeout);
160
+ }
161
+
162
+ throw error;
69
163
  }
70
- throw new RemoteError(res.status, message);
71
164
  }
72
-
73
- return (await res.json()) as T;
74
165
  }
75
166
 
76
167
  /** GET /cli/pull-docs */
@@ -73,11 +73,12 @@ function buildBugMarkdown(title: string, body: string, createdAt: string, status
73
73
  export interface PushOptions {
74
74
  paths?: string[];
75
75
  all?: boolean;
76
+ timeout?: number;
76
77
  }
77
78
 
78
79
  export async function pushToRemote(root: string, options?: PushOptions): Promise<PushResult> {
79
80
  const config = await readConfig(root);
80
- const api = buildApiConfig(config);
81
+ const api = buildApiConfig(config, options?.timeout);
81
82
  const state = await readRemoteState(root);
82
83
  if (!state.changeRequests) state.changeRequests = {};
83
84
  if (!state.bugs) state.bugs = {};
@@ -226,9 +227,9 @@ export async function pushToRemote(root: string, options?: PushOptions): Promise
226
227
 
227
228
  // ─── Pull Documents ──────────────────────────────────────────────────────
228
229
 
229
- export async function pullFromRemote(root: string): Promise<PullResult> {
230
+ export async function pullFromRemote(root: string, timeout?: number): Promise<PullResult> {
230
231
  const config = await readConfig(root);
231
- const api = buildApiConfig(config);
232
+ const api = buildApiConfig(config, timeout);
232
233
 
233
234
  const remoteDocs = await pullDocs(api);
234
235
  const state = await readRemoteState(root);
@@ -300,11 +301,20 @@ function updateDocState(
300
301
 
301
302
  // ─── Pull CRs ────────────────────────────────────────────────────────────
302
303
 
303
- export async function pullCRsFromRemote(root: string): Promise<PullEntitiesResult> {
304
+ export async function pullCRsFromRemote(root: string, timeout?: number): Promise<PullEntitiesResult> {
304
305
  const config = await readConfig(root);
305
- const api = buildApiConfig(config);
306
+ const api = buildApiConfig(config, timeout);
306
307
 
307
308
  const remoteCRs = await fetchPendingCRs(api);
309
+ const state = await readRemoteState(root);
310
+ if (!state.changeRequests) state.changeRequests = {};
311
+
312
+ // Build reverse map: remoteId → localPath
313
+ const idToPath = new Map<string, string>();
314
+ for (const [localPath, entry] of Object.entries(state.changeRequests)) {
315
+ idToPath.set(entry.remoteId, localPath);
316
+ }
317
+
308
318
  const crDir = resolve(root, 'change-requests');
309
319
  if (!existsSync(crDir)) {
310
320
  await mkdir(crDir, { recursive: true });
@@ -314,8 +324,14 @@ export async function pullCRsFromRemote(root: string): Promise<PullEntitiesResul
314
324
  let updated = 0;
315
325
 
316
326
  for (const cr of remoteCRs) {
317
- const filename = `CR-${cr.id.substring(0, 8)}.md`;
318
- const absPath = resolve(crDir, filename);
327
+ // Use the original local path if we pushed this CR before, otherwise generate a fallback
328
+ const localPath = idToPath.get(cr.id) ?? `change-requests/CR-${cr.id.substring(0, 8)}.md`;
329
+ const absPath = resolve(root, localPath);
330
+ const dir = dirname(absPath);
331
+ if (!existsSync(dir)) {
332
+ await mkdir(dir, { recursive: true });
333
+ }
334
+
319
335
  const crStatus = cr.status === 'draft' ? 'draft' : 'pending';
320
336
  const markdown = buildCRMarkdown(cr.title, cr.body, cr.created_at, crStatus);
321
337
 
@@ -325,18 +341,35 @@ export async function pullCRsFromRemote(root: string): Promise<PullEntitiesResul
325
341
  created++;
326
342
  }
327
343
  await writeFile(absPath, markdown, 'utf-8');
344
+
345
+ // Update state so future pulls keep using the same path
346
+ state.changeRequests![normalizePath(localPath)] = {
347
+ remoteId: cr.id,
348
+ localHash: sha256(markdown),
349
+ lastSynced: new Date().toISOString(),
350
+ };
328
351
  }
329
352
 
353
+ await writeRemoteState(root, state);
330
354
  return { created, updated };
331
355
  }
332
356
 
333
357
  // ─── Pull Bugs ───────────────────────────────────────────────────────────
334
358
 
335
- export async function pullBugsFromRemote(root: string): Promise<PullEntitiesResult> {
359
+ export async function pullBugsFromRemote(root: string, timeout?: number): Promise<PullEntitiesResult> {
336
360
  const config = await readConfig(root);
337
- const api = buildApiConfig(config);
361
+ const api = buildApiConfig(config, timeout);
338
362
 
339
363
  const remoteBugs = await fetchOpenBugs(api);
364
+ const state = await readRemoteState(root);
365
+ if (!state.bugs) state.bugs = {};
366
+
367
+ // Build reverse map: remoteId → localPath
368
+ const idToPath = new Map<string, string>();
369
+ for (const [localPath, entry] of Object.entries(state.bugs)) {
370
+ idToPath.set(entry.remoteId, localPath);
371
+ }
372
+
340
373
  const bugsDir = resolve(root, 'bugs');
341
374
  if (!existsSync(bugsDir)) {
342
375
  await mkdir(bugsDir, { recursive: true });
@@ -346,8 +379,14 @@ export async function pullBugsFromRemote(root: string): Promise<PullEntitiesResu
346
379
  let updated = 0;
347
380
 
348
381
  for (const bug of remoteBugs) {
349
- const filename = `BUG-${bug.id.substring(0, 8)}.md`;
350
- const absPath = resolve(bugsDir, filename);
382
+ // Use the original local path if we pushed this bug before, otherwise generate a fallback
383
+ const localPath = idToPath.get(bug.id) ?? `bugs/BUG-${bug.id.substring(0, 8)}.md`;
384
+ const absPath = resolve(root, localPath);
385
+ const dir = dirname(absPath);
386
+ if (!existsSync(dir)) {
387
+ await mkdir(dir, { recursive: true });
388
+ }
389
+
351
390
  const bugStatus = bug.status === 'draft' ? 'draft' : 'open';
352
391
  const markdown = buildBugMarkdown(bug.title, bug.body, bug.created_at, bugStatus);
353
392
 
@@ -357,14 +396,22 @@ export async function pullBugsFromRemote(root: string): Promise<PullEntitiesResu
357
396
  created++;
358
397
  }
359
398
  await writeFile(absPath, markdown, 'utf-8');
399
+
400
+ // Update state so future pulls keep using the same path
401
+ state.bugs![normalizePath(localPath)] = {
402
+ remoteId: bug.id,
403
+ localHash: sha256(markdown),
404
+ lastSynced: new Date().toISOString(),
405
+ };
360
406
  }
361
407
 
408
+ await writeRemoteState(root, state);
362
409
  return { created, updated };
363
410
  }
364
411
 
365
412
  // ─── Remote Status ───────────────────────────────────────────────────────
366
413
 
367
- export async function getRemoteStatus(root: string): Promise<RemoteStatusResult> {
414
+ export async function getRemoteStatus(root: string, timeout?: number): Promise<RemoteStatusResult> {
368
415
  const config = await readConfig(root);
369
416
 
370
417
  if (!config.remote?.url) {
@@ -375,7 +422,7 @@ export async function getRemoteStatus(root: string): Promise<RemoteStatusResult>
375
422
  const localPending = files.filter((f) => f.frontmatter.status !== 'synced').length;
376
423
 
377
424
  try {
378
- const api = buildApiConfig(config);
425
+ const api = buildApiConfig(config, timeout);
379
426
  const docs = await pullDocs(api);
380
427
  return {
381
428
  configured: true,
package/src/sdd.ts CHANGED
@@ -254,29 +254,29 @@ export class SDD {
254
254
 
255
255
  // ── Remote sync ──────────────────────────────────────────────────────
256
256
 
257
- async remoteStatus(): Promise<RemoteStatusResult> {
257
+ async remoteStatus(timeout?: number): Promise<RemoteStatusResult> {
258
258
  this.ensureInitialized();
259
- return getRemoteStatus(this.root);
259
+ return getRemoteStatus(this.root, timeout);
260
260
  }
261
261
 
262
- async push(paths?: string[], options?: { all?: boolean }): Promise<PushResult> {
262
+ async push(paths?: string[], options?: { all?: boolean; timeout?: number }): Promise<PushResult> {
263
263
  this.ensureInitialized();
264
- return pushToRemote(this.root, { paths, all: options?.all });
264
+ return pushToRemote(this.root, { paths, all: options?.all, timeout: options?.timeout });
265
265
  }
266
266
 
267
- async pull(): Promise<PullResult> {
267
+ async pull(timeout?: number): Promise<PullResult> {
268
268
  this.ensureInitialized();
269
- return pullFromRemote(this.root);
269
+ return pullFromRemote(this.root, timeout);
270
270
  }
271
271
 
272
- async pullCRs(): Promise<PullEntitiesResult> {
272
+ async pullCRs(timeout?: number): Promise<PullEntitiesResult> {
273
273
  this.ensureInitialized();
274
- return pullCRsFromRemote(this.root);
274
+ return pullCRsFromRemote(this.root, timeout);
275
275
  }
276
276
 
277
- async pullBugs(): Promise<PullEntitiesResult> {
277
+ async pullBugs(timeout?: number): Promise<PullEntitiesResult> {
278
278
  this.ensureInitialized();
279
- return pullBugsFromRemote(this.root);
279
+ return pullBugsFromRemote(this.root, timeout);
280
280
  }
281
281
 
282
282
  private ensureInitialized(): void {
package/src/types.ts CHANGED
@@ -58,6 +58,7 @@ export interface StoryStatus {
58
58
  export interface RemoteConfig {
59
59
  url: string;
60
60
  'api-key'?: string;
61
+ timeout?: number;
61
62
  }
62
63
 
63
64
  export interface SDDConfig {