@applica-software-guru/sdd 1.3.4 → 1.4.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.
Files changed (43) hide show
  1. package/dist/commands/apply.js +1 -1
  2. package/dist/commands/apply.js.map +1 -1
  3. package/dist/commands/bug.d.ts.map +1 -1
  4. package/dist/commands/bug.js +3 -1
  5. package/dist/commands/bug.js.map +1 -1
  6. package/dist/commands/cr.d.ts.map +1 -1
  7. package/dist/commands/cr.js +5 -3
  8. package/dist/commands/cr.js.map +1 -1
  9. package/dist/commands/mark-drafts-enriched.d.ts +3 -0
  10. package/dist/commands/mark-drafts-enriched.d.ts.map +1 -0
  11. package/dist/commands/mark-drafts-enriched.js +28 -0
  12. package/dist/commands/mark-drafts-enriched.js.map +1 -0
  13. package/dist/commands/pull.d.ts +3 -0
  14. package/dist/commands/pull.d.ts.map +1 -0
  15. package/dist/commands/pull.js +75 -0
  16. package/dist/commands/pull.js.map +1 -0
  17. package/dist/commands/push.d.ts +3 -0
  18. package/dist/commands/push.d.ts.map +1 -0
  19. package/dist/commands/push.js +33 -0
  20. package/dist/commands/push.js.map +1 -0
  21. package/dist/commands/remote.d.ts +3 -0
  22. package/dist/commands/remote.d.ts.map +1 -0
  23. package/dist/commands/remote.js +81 -0
  24. package/dist/commands/remote.js.map +1 -0
  25. package/dist/commands/status.d.ts.map +1 -1
  26. package/dist/commands/status.js +3 -0
  27. package/dist/commands/status.js.map +1 -1
  28. package/dist/index.js +8 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/ui/format.d.ts.map +1 -1
  31. package/dist/ui/format.js +4 -0
  32. package/dist/ui/format.js.map +1 -1
  33. package/package.json +2 -2
  34. package/src/commands/apply.ts +1 -1
  35. package/src/commands/bug.ts +3 -1
  36. package/src/commands/cr.ts +5 -3
  37. package/src/commands/mark-drafts-enriched.ts +26 -0
  38. package/src/commands/pull.ts +73 -0
  39. package/src/commands/push.ts +33 -0
  40. package/src/commands/remote.ts +91 -0
  41. package/src/commands/status.ts +2 -0
  42. package/src/index.ts +8 -0
  43. package/src/ui/format.ts +4 -0
@@ -18,7 +18,7 @@ function registerApply(program) {
18
18
  console.log((0, format_js_1.heading)('SDD Apply'));
19
19
  const prompt = await sdd.applyPrompt();
20
20
  if (!prompt) {
21
- console.log((0, format_js_1.info)('Nothing to apply — no open bugs, pending CRs, or pending files.'));
21
+ console.log((0, format_js_1.info)('Nothing to apply — no drafts, open bugs, pending CRs, or pending files.'));
22
22
  return;
23
23
  }
24
24
  // Show the prompt being sent
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/commands/apply.ts"],"names":[],"mappings":";;;;;AAMA,sCA0CC;AA/CD,kDAA0B;AAC1B,8DAAgE;AAChE,+CAAgD;AAChD,mDAAmD;AAEnD,SAAgB,aAAa,CAAC,OAAgB;IAC5C,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,oEAAoE,CAAC;SACjF,MAAM,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;SAC3E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,IAAI,cAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,WAAW,CAAC,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,iEAAiE,CAAC,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QAED,6BAA6B;QAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,cAAc,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,IAAA,4BAAc,EAAC,MAAM,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC;QAExD,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,gBAAgB,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,qBAAqB,CAAC,CAAC,CAAC;QAEzC,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAQ,EAAC;YAC9B,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;YACnB,MAAM;YACN,KAAK;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/commands/apply.ts"],"names":[],"mappings":";;;;;AAMA,sCA0CC;AA/CD,kDAA0B;AAC1B,8DAAgE;AAChE,+CAAgD;AAChD,mDAAmD;AAEnD,SAAgB,aAAa,CAAC,OAAgB;IAC5C,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,oEAAoE,CAAC;SACjF,MAAM,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;SAC3E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,GAAG,GAAG,IAAI,cAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,WAAW,CAAC,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,yEAAyE,CAAC,CAAC,CAAC;YAC7F,OAAO;QACT,CAAC;QAED,6BAA6B;QAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,cAAc,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,IAAA,4BAAc,EAAC,MAAM,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC;QAExD,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,gBAAgB,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,qBAAqB,CAAC,CAAC,CAAC;QAEzC,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAQ,EAAC;YAC9B,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;YACnB,MAAM;YACN,KAAK;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bug.d.ts","sourceRoot":"","sources":["../../src/commands/bug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmElD"}
1
+ {"version":3,"file":"bug.d.ts","sourceRoot":"","sources":["../../src/commands/bug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmElD"}
@@ -9,6 +9,8 @@ const sdd_core_1 = require("@applica-software-guru/sdd-core");
9
9
  const format_js_1 = require("../ui/format.js");
10
10
  function statusLabel(status) {
11
11
  switch (status) {
12
+ case 'draft':
13
+ return chalk_1.default.magenta('draft');
12
14
  case 'open':
13
15
  return chalk_1.default.yellow('open');
14
16
  case 'resolved':
@@ -32,7 +34,7 @@ function registerBug(program) {
32
34
  return;
33
35
  }
34
36
  for (const b of bugs) {
35
- const icon = b.frontmatter.status === 'resolved' ? chalk_1.default.green(' ✓') : chalk_1.default.yellow(' ●');
37
+ const icon = b.frontmatter.status === 'resolved' ? chalk_1.default.green(' ✓') : b.frontmatter.status === 'draft' ? chalk_1.default.magenta(' ◇') : chalk_1.default.yellow(' ●');
36
38
  console.log(`${icon} ${chalk_1.default.white(b.relativePath)} ${chalk_1.default.dim(`[${statusLabel(b.frontmatter.status)}]`)} ${chalk_1.default.cyan(b.frontmatter.title)}`);
37
39
  }
38
40
  console.log('');
@@ -1 +1 @@
1
- {"version":3,"file":"bug.js","sourceRoot":"","sources":["../../src/commands/bug.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bug.js","sourceRoot":"","sources":["../../src/commands/bug.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cr.d.ts","sourceRoot":"","sources":["../../src/commands/cr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmEjD"}
1
+ {"version":3,"file":"cr.d.ts","sourceRoot":"","sources":["../../src/commands/cr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmEjD"}
@@ -10,7 +10,9 @@ const format_js_1 = require("../ui/format.js");
10
10
  function statusLabel(status) {
11
11
  switch (status) {
12
12
  case 'draft':
13
- return chalk_1.default.yellow('draft');
13
+ return chalk_1.default.magenta('draft');
14
+ case 'pending':
15
+ return chalk_1.default.yellow('pending');
14
16
  case 'applied':
15
17
  return chalk_1.default.green('applied');
16
18
  default:
@@ -32,7 +34,7 @@ function registerCR(program) {
32
34
  return;
33
35
  }
34
36
  for (const cr of crs) {
35
- const icon = cr.frontmatter.status === 'applied' ? chalk_1.default.green(' ✓') : chalk_1.default.yellow(' ●');
37
+ const icon = cr.frontmatter.status === 'applied' ? chalk_1.default.green(' ✓') : cr.frontmatter.status === 'draft' ? chalk_1.default.magenta(' ◇') : chalk_1.default.yellow(' ●');
36
38
  console.log(`${icon} ${chalk_1.default.white(cr.relativePath)} ${chalk_1.default.dim(`[${statusLabel(cr.frontmatter.status)}]`)} ${chalk_1.default.cyan(cr.frontmatter.title)}`);
37
39
  }
38
40
  console.log('');
@@ -64,7 +66,7 @@ function registerCR(program) {
64
66
  const marked = await sdd.markCRApplied(files.length > 0 ? files : undefined);
65
67
  console.log((0, format_js_1.heading)('Mark CR Applied'));
66
68
  if (marked.length === 0) {
67
- console.log((0, format_js_1.info)('No draft change requests to mark.\n'));
69
+ console.log((0, format_js_1.info)('No pending change requests to mark.\n'));
68
70
  return;
69
71
  }
70
72
  for (const f of marked) {
@@ -1 +1 @@
1
- {"version":3,"file":"cr.js","sourceRoot":"","sources":["../../src/commands/cr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cr.js","sourceRoot":"","sources":["../../src/commands/cr.ts"],"names":[],"mappings":";;;;;AAkBA,gCAmEC;AApFD,kDAA0B;AAC1B,8DAAsD;AACtD,+CAAgD;AAEhD,SAAS,WAAW,CAAC,MAAc;IACjC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO;YACV,OAAO,eAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,SAAS;YACZ,OAAO,eAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,KAAK,SAAS;YACZ,OAAO,eAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChC;YACE,OAAO,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CAAC,OAAgB;IACzC,MAAM,EAAE,GAAG,OAAO;SACf,OAAO,CAAC,IAAI,CAAC;SACb,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAEzC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,cAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;QAEvC,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,iBAAiB,CAAC,CAAC,CAAC;QAExC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,6BAA6B,CAAC,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,eAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvJ,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,eAAK,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,eAAK,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,eAAK,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrJ,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEL,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,qDAAqD,CAAC;SAClE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,cAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,qBAAqB,EAAE,CAAC;QAElD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,iBAAiB,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,+BAA+B,CAAC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,4BAA4B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEpE,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACtF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,4BAA4B,CAAC;SACrC,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,KAAK,EAAE,KAAe,EAAE,EAAE;QAChC,MAAM,GAAG,GAAG,IAAI,cAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAE7E,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,iBAAiB,CAAC,CAAC,CAAC;QAExC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,uCAAuC,CAAC,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,MAAM,yCAAyC,CAAC,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerMarkDraftsEnriched(program: Command): void;
3
+ //# sourceMappingURL=mark-drafts-enriched.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mark-drafts-enriched.d.ts","sourceRoot":"","sources":["../../src/commands/mark-drafts-enriched.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoBjE"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerMarkDraftsEnriched = registerMarkDraftsEnriched;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const sdd_core_1 = require("@applica-software-guru/sdd-core");
9
+ const format_js_1 = require("../ui/format.js");
10
+ function registerMarkDraftsEnriched(program) {
11
+ program
12
+ .command('mark-drafts-enriched [files...]')
13
+ .description('Mark draft elements as enriched (docs → new, CRs → pending, bugs → open)')
14
+ .action(async (files) => {
15
+ const sdd = new sdd_core_1.SDD({ root: process.cwd() });
16
+ const marked = await sdd.markDraftsEnriched(files.length > 0 ? files : undefined);
17
+ console.log((0, format_js_1.heading)('Mark Drafts Enriched'));
18
+ if (marked.length === 0) {
19
+ console.log((0, format_js_1.info)('No draft elements to mark.\n'));
20
+ return;
21
+ }
22
+ for (const f of marked) {
23
+ console.log((0, format_js_1.success)(f));
24
+ }
25
+ console.log(chalk_1.default.dim(`\n ${marked.length} element(s) marked as enriched.\n`));
26
+ });
27
+ }
28
+ //# sourceMappingURL=mark-drafts-enriched.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mark-drafts-enriched.js","sourceRoot":"","sources":["../../src/commands/mark-drafts-enriched.ts"],"names":[],"mappings":";;;;;AAKA,gEAoBC;AAxBD,kDAA0B;AAC1B,8DAAsD;AACtD,+CAAyD;AAEzD,SAAgB,0BAA0B,CAAC,OAAgB;IACzD,OAAO;SACJ,OAAO,CAAC,iCAAiC,CAAC;SAC1C,WAAW,CAAC,0EAA0E,CAAC;SACvF,MAAM,CAAC,KAAK,EAAE,KAAe,EAAE,EAAE;QAChC,MAAM,GAAG,GAAG,IAAI,cAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAElF,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,sBAAsB,CAAC,CAAC,CAAC;QAE7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,8BAA8B,CAAC,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,MAAM,mCAAmC,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerPull(program: Command): void;
3
+ //# sourceMappingURL=pull.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmEnD"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerPull = registerPull;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const sdd_core_1 = require("@applica-software-guru/sdd-core");
9
+ const format_js_1 = require("../ui/format.js");
10
+ function registerPull(program) {
11
+ program
12
+ .command('pull')
13
+ .description('Pull documents, CRs, and bugs from remote')
14
+ .option('--docs-only', 'Only pull documents')
15
+ .option('--crs-only', 'Only pull change requests')
16
+ .option('--bugs-only', 'Only pull bugs')
17
+ .action(async (options) => {
18
+ const sdd = new sdd_core_1.SDD({ root: process.cwd() });
19
+ const pullAll = !options.docsOnly && !options.crsOnly && !options.bugsOnly;
20
+ console.log((0, format_js_1.heading)('Pull from Remote'));
21
+ // Pull documents
22
+ if (pullAll || options.docsOnly) {
23
+ console.log(chalk_1.default.dim(' Pulling documents...'));
24
+ const result = await sdd.pull();
25
+ if (result.created.length > 0) {
26
+ for (const p of result.created) {
27
+ console.log(chalk_1.default.cyan(` + ${p}`));
28
+ }
29
+ }
30
+ if (result.updated.length > 0) {
31
+ for (const p of result.updated) {
32
+ console.log(chalk_1.default.yellow(` ~ ${p}`));
33
+ }
34
+ }
35
+ if (result.conflicts.length > 0) {
36
+ for (const c of result.conflicts) {
37
+ console.log((0, format_js_1.warning)(`${c.path} — ${c.reason} (local: v${c.localVersion}, remote: v${c.remoteVersion})`));
38
+ }
39
+ }
40
+ const total = result.created.length + result.updated.length;
41
+ if (total > 0) {
42
+ console.log((0, format_js_1.success)(`${result.created.length} created, ${result.updated.length} updated`));
43
+ }
44
+ else if (result.conflicts.length === 0) {
45
+ console.log((0, format_js_1.info)('Documents up to date.'));
46
+ }
47
+ console.log('');
48
+ }
49
+ // Pull CRs
50
+ if (pullAll || options.crsOnly) {
51
+ console.log(chalk_1.default.dim(' Pulling change requests...'));
52
+ const crResult = await sdd.pullCRs();
53
+ if (crResult.created > 0 || crResult.updated > 0) {
54
+ console.log((0, format_js_1.success)(`${crResult.created} created, ${crResult.updated} updated`));
55
+ }
56
+ else {
57
+ console.log((0, format_js_1.info)('No pending change requests on remote.'));
58
+ }
59
+ console.log('');
60
+ }
61
+ // Pull bugs
62
+ if (pullAll || options.bugsOnly) {
63
+ console.log(chalk_1.default.dim(' Pulling bugs...'));
64
+ const bugResult = await sdd.pullBugs();
65
+ if (bugResult.created > 0 || bugResult.updated > 0) {
66
+ console.log((0, format_js_1.success)(`${bugResult.created} created, ${bugResult.updated} updated`));
67
+ }
68
+ else {
69
+ console.log((0, format_js_1.info)('No open bugs on remote.'));
70
+ }
71
+ console.log('');
72
+ }
73
+ });
74
+ }
75
+ //# sourceMappingURL=pull.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerPush(program: Command): void;
3
+ //# sourceMappingURL=push.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2BnD"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerPush = registerPush;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const sdd_core_1 = require("@applica-software-guru/sdd-core");
9
+ const format_js_1 = require("../ui/format.js");
10
+ function registerPush(program) {
11
+ program
12
+ .command('push [files...]')
13
+ .description('Push pending documents to remote')
14
+ .option('--all', 'Push all files including synced')
15
+ .action(async (files, options) => {
16
+ const sdd = new sdd_core_1.SDD({ root: process.cwd() });
17
+ console.log((0, format_js_1.heading)('Push to Remote'));
18
+ console.log(chalk_1.default.dim(' Pushing documents...'));
19
+ const paths = files.length > 0 ? files : undefined;
20
+ const result = await sdd.push(paths, { all: options.all });
21
+ if (result.pushed.length === 0) {
22
+ console.log((0, format_js_1.info)('No pending files to push.\n'));
23
+ return;
24
+ }
25
+ for (const p of result.pushed) {
26
+ console.log(chalk_1.default.green(` ✓ ${p}`));
27
+ }
28
+ console.log('');
29
+ console.log((0, format_js_1.success)(`${result.created} created, ${result.updated} updated on remote`));
30
+ console.log(chalk_1.default.dim(` ${result.pushed.length} file(s) pushed and marked as synced.\n`));
31
+ });
32
+ }
33
+ //# sourceMappingURL=push.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":";;;;;AAKA,oCA2BC;AA/BD,kDAA0B;AAC1B,8DAAsD;AACtD,+CAAyD;AAEzD,SAAgB,YAAY,CAAC,OAAgB;IAC3C,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,OAAO,EAAE,iCAAiC,CAAC;SAClD,MAAM,CAAC,KAAK,EAAE,KAAe,EAAE,OAA0B,EAAE,EAAE;QAC5D,MAAM,GAAG,GAAG,IAAI,cAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,gBAAgB,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAEjD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,6BAA6B,CAAC,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,GAAG,MAAM,CAAC,OAAO,aAAa,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,yCAAyC,CAAC,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerRemote(program: Command): void;
3
+ //# sourceMappingURL=remote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/commands/remote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoFrD"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.registerRemote = registerRemote;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const prompts_1 = require("@inquirer/prompts");
9
+ const sdd_core_1 = require("@applica-software-guru/sdd-core");
10
+ const format_js_1 = require("../ui/format.js");
11
+ function registerRemote(program) {
12
+ const remote = program
13
+ .command('remote')
14
+ .description('Manage remote sync with SDD Flow');
15
+ remote
16
+ .command('init')
17
+ .description('Configure remote API connection')
18
+ .option('--url <url>', 'SDD Flow API base URL')
19
+ .option('--api-key <key>', 'API key (prefer SDD_API_KEY env var)')
20
+ .action(async (options) => {
21
+ const root = process.cwd();
22
+ const config = await (0, sdd_core_1.readConfig)(root);
23
+ const url = options.url ??
24
+ (await (0, prompts_1.input)({
25
+ message: 'SDD Flow API URL',
26
+ default: config.remote?.url ?? 'https://sdd.applica.guru/api/v1',
27
+ }));
28
+ const apiKey = options.apiKey ??
29
+ (await (0, prompts_1.password)({
30
+ message: 'API key (leave empty to use SDD_API_KEY env var)',
31
+ }));
32
+ config.remote = {
33
+ url: url.replace(/\/+$/, ''),
34
+ };
35
+ if (apiKey) {
36
+ config.remote['api-key'] = apiKey;
37
+ }
38
+ await (0, sdd_core_1.writeConfig)(root, config);
39
+ console.log((0, format_js_1.success)('Remote configuration saved to .sdd/config.yaml'));
40
+ if (!apiKey && !process.env.SDD_API_KEY) {
41
+ console.log((0, format_js_1.warning)('No API key found. Set SDD_API_KEY environment variable or re-run with --api-key.'));
42
+ return;
43
+ }
44
+ // Test connection
45
+ console.log((0, format_js_1.info)('Testing connection...'));
46
+ try {
47
+ const sdd = new sdd_core_1.SDD({ root });
48
+ const status = await sdd.remoteStatus();
49
+ if (status.connected) {
50
+ console.log((0, format_js_1.success)(`Connected! Remote has ${status.remoteDocs} document(s).`));
51
+ }
52
+ else {
53
+ console.log((0, format_js_1.error)('Could not connect to remote. Check URL and API key.'));
54
+ }
55
+ }
56
+ catch (err) {
57
+ console.log((0, format_js_1.error)(`Connection failed: ${err.message}`));
58
+ }
59
+ console.log('');
60
+ });
61
+ remote
62
+ .command('status')
63
+ .description('Show remote sync status')
64
+ .action(async () => {
65
+ const sdd = new sdd_core_1.SDD({ root: process.cwd() });
66
+ const status = await sdd.remoteStatus();
67
+ console.log((0, format_js_1.heading)('Remote Status'));
68
+ if (!status.configured) {
69
+ console.log((0, format_js_1.info)('Remote not configured. Run "sdd remote init" to set up.\n'));
70
+ return;
71
+ }
72
+ console.log(` ${chalk_1.default.dim('URL:')} ${chalk_1.default.white(status.url)}`);
73
+ console.log(` ${chalk_1.default.dim('Connection:')} ${status.connected ? chalk_1.default.green.bold('connected') : chalk_1.default.red.bold('disconnected')}`);
74
+ console.log(` ${chalk_1.default.dim('Local pending:')} ${chalk_1.default.yellow.bold(String(status.localPending))} file(s)`);
75
+ if (status.connected) {
76
+ console.log(` ${chalk_1.default.dim('Remote docs:')} ${chalk_1.default.cyan.bold(String(status.remoteDocs))} document(s)`);
77
+ }
78
+ console.log('');
79
+ });
80
+ }
81
+ //# sourceMappingURL=remote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/commands/remote.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgCrD"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkCrD"}
@@ -20,6 +20,7 @@ function registerStatus(program) {
20
20
  return;
21
21
  }
22
22
  const counts = {
23
+ draft: result.files.filter((f) => f.status === 'draft').length,
23
24
  new: result.files.filter((f) => f.status === 'new').length,
24
25
  changed: result.files.filter((f) => f.status === 'changed').length,
25
26
  deleted: result.files.filter((f) => f.status === 'deleted').length,
@@ -29,6 +30,8 @@ function registerStatus(program) {
29
30
  console.log((0, format_js_1.createStatusTable)(result.files));
30
31
  console.log('');
31
32
  const parts = [];
33
+ if (counts.draft)
34
+ parts.push(chalk_1.default.magenta.bold(`${counts.draft} draft`));
32
35
  if (counts.new)
33
36
  parts.push(chalk_1.default.cyan.bold(`${counts.new} new`));
34
37
  if (counts.changed)
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";;;;;AAKA,wCAgCC;AApCD,kDAA0B;AAC1B,8DAAsD;AACtD,+CAAmE;AAEnE,SAAgB,cAAc,CAAC,OAAgB;IAC7C,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,cAAG,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QAElC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,QAAQ,CAAC,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,yBAAyB,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG;YACb,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,MAAM;YAC1D,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM;YAClE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM;YAClE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM;SACjE,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,aAAa,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAiB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QACjE,IAAI,MAAM,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;QAC/E,IAAI,MAAM,CAAC,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;QAC5E,IAAI,MAAM,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -15,6 +15,10 @@ const apply_js_1 = require("./commands/apply.js");
15
15
  const adapters_js_1 = require("./commands/adapters.js");
16
16
  const ui_js_1 = require("./commands/ui.js");
17
17
  const upgrade_js_1 = require("./commands/upgrade.js");
18
+ const remote_js_1 = require("./commands/remote.js");
19
+ const pull_js_1 = require("./commands/pull.js");
20
+ const push_js_1 = require("./commands/push.js");
21
+ const mark_drafts_enriched_js_1 = require("./commands/mark-drafts-enriched.js");
18
22
  const packageRequire = (0, node_module_1.createRequire)(__filename);
19
23
  const packageJson = packageRequire("../package.json");
20
24
  const program = new commander_1.Command();
@@ -34,6 +38,10 @@ program
34
38
  (0, adapters_js_1.registerAdapters)(program);
35
39
  (0, ui_js_1.registerUI)(program);
36
40
  (0, upgrade_js_1.registerUpgrade)(program);
41
+ (0, remote_js_1.registerRemote)(program);
42
+ (0, pull_js_1.registerPull)(program);
43
+ (0, push_js_1.registerPush)(program);
44
+ (0, mark_drafts_enriched_js_1.registerMarkDraftsEnriched)(program);
37
45
  program.parseAsync().catch((err) => {
38
46
  console.error(err.message);
39
47
  process.exit(1);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AACpC,6CAA4C;AAC5C,gDAAkD;AAClD,oDAAsD;AACtD,gDAAkD;AAClD,gDAAkD;AAClD,wDAA0D;AAC1D,8DAA+D;AAC/D,4CAA8C;AAC9C,8CAAgD;AAChD,kDAAoD;AACpD,wDAA0D;AAC1D,4CAA8C;AAC9C,sDAAwD;AAExD,MAAM,cAAc,GAAG,IAAA,2BAAa,EAAC,UAAU,CAAC,CAAC;AACjD,MAAM,WAAW,GAAG,cAAc,CAAC,iBAAiB,CAAwB,CAAC;AAE7E,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,yEAAyE,CAAC;KACtF,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,IAAA,sBAAY,EAAC,OAAO,CAAC,CAAC;AACtB,IAAA,0BAAc,EAAC,OAAO,CAAC,CAAC;AACxB,IAAA,sBAAY,EAAC,OAAO,CAAC,CAAC;AACtB,IAAA,sBAAY,EAAC,OAAO,CAAC,CAAC;AACtB,IAAA,8BAAgB,EAAC,OAAO,CAAC,CAAC;AAC1B,IAAA,mCAAkB,EAAC,OAAO,CAAC,CAAC;AAC5B,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC;AACpB,IAAA,oBAAW,EAAC,OAAO,CAAC,CAAC;AACrB,IAAA,wBAAa,EAAC,OAAO,CAAC,CAAC;AACvB,IAAA,8BAAgB,EAAC,OAAO,CAAC,CAAC;AAC1B,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC;AACpB,IAAA,4BAAe,EAAC,OAAO,CAAC,CAAC;AAEzB,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AACpC,6CAA4C;AAC5C,gDAAkD;AAClD,oDAAsD;AACtD,gDAAkD;AAClD,gDAAkD;AAClD,wDAA0D;AAC1D,8DAA+D;AAC/D,4CAA8C;AAC9C,8CAAgD;AAChD,kDAAoD;AACpD,wDAA0D;AAC1D,4CAA8C;AAC9C,sDAAwD;AACxD,oDAAsD;AACtD,gDAAkD;AAClD,gDAAkD;AAClD,gFAAgF;AAEhF,MAAM,cAAc,GAAG,IAAA,2BAAa,EAAC,UAAU,CAAC,CAAC;AACjD,MAAM,WAAW,GAAG,cAAc,CAAC,iBAAiB,CAAwB,CAAC;AAE7E,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,yEAAyE,CAAC;KACtF,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,IAAA,sBAAY,EAAC,OAAO,CAAC,CAAC;AACtB,IAAA,0BAAc,EAAC,OAAO,CAAC,CAAC;AACxB,IAAA,sBAAY,EAAC,OAAO,CAAC,CAAC;AACtB,IAAA,sBAAY,EAAC,OAAO,CAAC,CAAC;AACtB,IAAA,8BAAgB,EAAC,OAAO,CAAC,CAAC;AAC1B,IAAA,mCAAkB,EAAC,OAAO,CAAC,CAAC;AAC5B,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC;AACpB,IAAA,oBAAW,EAAC,OAAO,CAAC,CAAC;AACrB,IAAA,wBAAa,EAAC,OAAO,CAAC,CAAC;AACvB,IAAA,8BAAgB,EAAC,OAAO,CAAC,CAAC;AAC1B,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC;AACpB,IAAA,4BAAe,EAAC,OAAO,CAAC,CAAC;AACzB,IAAA,0BAAc,EAAC,OAAO,CAAC,CAAC;AACxB,IAAA,sBAAY,EAAC,OAAO,CAAC,CAAC;AACtB,IAAA,sBAAY,EAAC,OAAO,CAAC,CAAC;AACtB,IAAA,oDAA0B,EAAC,OAAO,CAAC,CAAC;AAEpC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/ui/format.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAajD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAalD;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7F,MAAM,CAgCR;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzC"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/ui/format.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAejD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAelD;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,KAAK,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7F,MAAM,CAgCR;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzC"}
package/dist/ui/format.js CHANGED
@@ -15,6 +15,8 @@ const chalk_1 = __importDefault(require("chalk"));
15
15
  const cli_table3_1 = __importDefault(require("cli-table3"));
16
16
  function statusIcon(status) {
17
17
  switch (status) {
18
+ case 'draft':
19
+ return chalk_1.default.magenta('◇');
18
20
  case 'synced':
19
21
  return chalk_1.default.green('✓');
20
22
  case 'new':
@@ -29,6 +31,8 @@ function statusIcon(status) {
29
31
  }
30
32
  function statusLabel(status) {
31
33
  switch (status) {
34
+ case 'draft':
35
+ return chalk_1.default.magenta('draft');
32
36
  case 'synced':
33
37
  return chalk_1.default.green.bold('synced');
34
38
  case 'new':
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/ui/format.ts"],"names":[],"mappings":";;;;;AAGA,gCAaC;AAED,kCAaC;AAED,8CAkCC;AAED,0BAEC;AAED,0BAEC;AAED,0BAEC;AAED,sBAEC;AAED,oBAEC;AAvFD,kDAA0B;AAC1B,4DAA+B;AAE/B,SAAgB,UAAU,CAAC,MAAc;IACvC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,KAAK,KAAK;YACR,OAAO,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,KAAK,SAAS;YACZ,OAAO,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,KAAK,SAAS;YACZ,OAAO,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB;YACE,OAAO,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,MAAc;IACxC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,KAAK,KAAK;YACR,OAAO,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,KAAK,SAAS;YACZ,OAAO,eAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,KAAK,SAAS;YACZ,OAAO,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9B;YACE,OAAO,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAC/B,KAA8F;IAE9F,MAAM,KAAK,GAAG,IAAI,oBAAK,CAAC;QACtB,IAAI,EAAE;YACJ,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YACvB,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YAC1B,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC1B;QACD,KAAK,EAAE;YACL,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,CAAC,MAAM,CAAC;SACjB;QACD,KAAK,EAAE;YACL,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG;YAC3D,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG;YACvE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG;YAC1B,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG;YACxB,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG;YAC5B,MAAM,EAAE,GAAG;SACZ;KACF,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC;YACT,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;YACpB,eAAK,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;YAC3B,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1B,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED,SAAgB,OAAO,CAAC,IAAY;IAClC,OAAO,IAAI,GAAG,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;AACpD,CAAC;AAED,SAAgB,OAAO,CAAC,IAAY;IAClC,OAAO,eAAK,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,OAAO,CAAC,IAAY;IAClC,OAAO,eAAK,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,SAAgB,KAAK,CAAC,IAAY;IAChC,OAAO,eAAK,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,SAAgB,IAAI,CAAC,IAAY;IAC/B,OAAO,eAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/ui/format.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applica-software-guru/sdd",
3
- "version": "1.3.4",
3
+ "version": "1.4.1",
4
4
  "description": "CLI for Story Driven Development",
5
5
  "author": "Bruno Fortunato <bruno.fortunato@applica.guru>",
6
6
  "main": "dist/index.js",
@@ -12,7 +12,7 @@
12
12
  "build": "tsc"
13
13
  },
14
14
  "dependencies": {
15
- "@applica-software-guru/sdd-core": "^1.3.4",
15
+ "@applica-software-guru/sdd-core": "^1.4.0",
16
16
  "@inquirer/prompts": "^7.0.0",
17
17
  "chalk": "^4.1.2",
18
18
  "cli-table3": "^0.6.5",
@@ -16,7 +16,7 @@ export function registerApply(program: Command): void {
16
16
 
17
17
  const prompt = await sdd.applyPrompt();
18
18
  if (!prompt) {
19
- console.log(info('Nothing to apply — no open bugs, pending CRs, or pending files.'));
19
+ console.log(info('Nothing to apply — no drafts, open bugs, pending CRs, or pending files.'));
20
20
  return;
21
21
  }
22
22
 
@@ -5,6 +5,8 @@ import { heading, info } from '../ui/format.js';
5
5
 
6
6
  function statusLabel(status: string): string {
7
7
  switch (status) {
8
+ case 'draft':
9
+ return chalk.magenta('draft');
8
10
  case 'open':
9
11
  return chalk.yellow('open');
10
12
  case 'resolved':
@@ -33,7 +35,7 @@ export function registerBug(program: Command): void {
33
35
  }
34
36
 
35
37
  for (const b of bugs) {
36
- const icon = b.frontmatter.status === 'resolved' ? chalk.green(' ✓') : chalk.yellow(' ●');
38
+ const icon = b.frontmatter.status === 'resolved' ? chalk.green(' ✓') : b.frontmatter.status === 'draft' ? chalk.magenta(' ◇') : chalk.yellow(' ●');
37
39
  console.log(`${icon} ${chalk.white(b.relativePath)} ${chalk.dim(`[${statusLabel(b.frontmatter.status)}]`)} ${chalk.cyan(b.frontmatter.title)}`);
38
40
  }
39
41
  console.log('');
@@ -6,7 +6,9 @@ import { heading, info } from '../ui/format.js';
6
6
  function statusLabel(status: string): string {
7
7
  switch (status) {
8
8
  case 'draft':
9
- return chalk.yellow('draft');
9
+ return chalk.magenta('draft');
10
+ case 'pending':
11
+ return chalk.yellow('pending');
10
12
  case 'applied':
11
13
  return chalk.green('applied');
12
14
  default:
@@ -33,7 +35,7 @@ export function registerCR(program: Command): void {
33
35
  }
34
36
 
35
37
  for (const cr of crs) {
36
- const icon = cr.frontmatter.status === 'applied' ? chalk.green(' ✓') : chalk.yellow(' ●');
38
+ const icon = cr.frontmatter.status === 'applied' ? chalk.green(' ✓') : cr.frontmatter.status === 'draft' ? chalk.magenta(' ◇') : chalk.yellow(' ●');
37
39
  console.log(`${icon} ${chalk.white(cr.relativePath)} ${chalk.dim(`[${statusLabel(cr.frontmatter.status)}]`)} ${chalk.cyan(cr.frontmatter.title)}`);
38
40
  }
39
41
  console.log('');
@@ -72,7 +74,7 @@ export function registerCR(program: Command): void {
72
74
  console.log(heading('Mark CR Applied'));
73
75
 
74
76
  if (marked.length === 0) {
75
- console.log(info('No draft change requests to mark.\n'));
77
+ console.log(info('No pending change requests to mark.\n'));
76
78
  return;
77
79
  }
78
80
 
@@ -0,0 +1,26 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { SDD } from '@applica-software-guru/sdd-core';
4
+ import { heading, success, info } from '../ui/format.js';
5
+
6
+ export function registerMarkDraftsEnriched(program: Command): void {
7
+ program
8
+ .command('mark-drafts-enriched [files...]')
9
+ .description('Mark draft elements as enriched (docs → new, CRs → pending, bugs → open)')
10
+ .action(async (files: string[]) => {
11
+ const sdd = new SDD({ root: process.cwd() });
12
+ const marked = await sdd.markDraftsEnriched(files.length > 0 ? files : undefined);
13
+
14
+ console.log(heading('Mark Drafts Enriched'));
15
+
16
+ if (marked.length === 0) {
17
+ console.log(info('No draft elements to mark.\n'));
18
+ return;
19
+ }
20
+
21
+ for (const f of marked) {
22
+ console.log(success(f));
23
+ }
24
+ console.log(chalk.dim(`\n ${marked.length} element(s) marked as enriched.\n`));
25
+ });
26
+ }
@@ -0,0 +1,73 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { SDD } from '@applica-software-guru/sdd-core';
4
+ import { heading, success, warning, info } from '../ui/format.js';
5
+
6
+ export function registerPull(program: Command): void {
7
+ program
8
+ .command('pull')
9
+ .description('Pull documents, CRs, and bugs from remote')
10
+ .option('--docs-only', 'Only pull documents')
11
+ .option('--crs-only', 'Only pull change requests')
12
+ .option('--bugs-only', 'Only pull bugs')
13
+ .action(async (options: { docsOnly?: boolean; crsOnly?: boolean; bugsOnly?: boolean }) => {
14
+ const sdd = new SDD({ root: process.cwd() });
15
+ const pullAll = !options.docsOnly && !options.crsOnly && !options.bugsOnly;
16
+
17
+ console.log(heading('Pull from Remote'));
18
+
19
+ // Pull documents
20
+ if (pullAll || options.docsOnly) {
21
+ console.log(chalk.dim(' Pulling documents...'));
22
+ const result = await sdd.pull();
23
+
24
+ if (result.created.length > 0) {
25
+ for (const p of result.created) {
26
+ console.log(chalk.cyan(` + ${p}`));
27
+ }
28
+ }
29
+ if (result.updated.length > 0) {
30
+ for (const p of result.updated) {
31
+ console.log(chalk.yellow(` ~ ${p}`));
32
+ }
33
+ }
34
+ if (result.conflicts.length > 0) {
35
+ for (const c of result.conflicts) {
36
+ console.log(warning(`${c.path} — ${c.reason} (local: v${c.localVersion}, remote: v${c.remoteVersion})`));
37
+ }
38
+ }
39
+
40
+ const total = result.created.length + result.updated.length;
41
+ if (total > 0) {
42
+ console.log(success(`${result.created.length} created, ${result.updated.length} updated`));
43
+ } else if (result.conflicts.length === 0) {
44
+ console.log(info('Documents up to date.'));
45
+ }
46
+ console.log('');
47
+ }
48
+
49
+ // Pull CRs
50
+ if (pullAll || options.crsOnly) {
51
+ console.log(chalk.dim(' Pulling change requests...'));
52
+ const crResult = await sdd.pullCRs();
53
+ if (crResult.created > 0 || crResult.updated > 0) {
54
+ console.log(success(`${crResult.created} created, ${crResult.updated} updated`));
55
+ } else {
56
+ console.log(info('No pending change requests on remote.'));
57
+ }
58
+ console.log('');
59
+ }
60
+
61
+ // Pull bugs
62
+ if (pullAll || options.bugsOnly) {
63
+ console.log(chalk.dim(' Pulling bugs...'));
64
+ const bugResult = await sdd.pullBugs();
65
+ if (bugResult.created > 0 || bugResult.updated > 0) {
66
+ console.log(success(`${bugResult.created} created, ${bugResult.updated} updated`));
67
+ } else {
68
+ console.log(info('No open bugs on remote.'));
69
+ }
70
+ console.log('');
71
+ }
72
+ });
73
+ }
@@ -0,0 +1,33 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { SDD } from '@applica-software-guru/sdd-core';
4
+ import { heading, success, info } from '../ui/format.js';
5
+
6
+ export function registerPush(program: Command): void {
7
+ program
8
+ .command('push [files...]')
9
+ .description('Push pending documents to remote')
10
+ .option('--all', 'Push all files including synced')
11
+ .action(async (files: string[], options: { all?: boolean }) => {
12
+ const sdd = new SDD({ root: process.cwd() });
13
+
14
+ console.log(heading('Push to Remote'));
15
+ console.log(chalk.dim(' Pushing documents...'));
16
+
17
+ const paths = files.length > 0 ? files : undefined;
18
+ const result = await sdd.push(paths, { all: options.all });
19
+
20
+ if (result.pushed.length === 0) {
21
+ console.log(info('No pending files to push.\n'));
22
+ return;
23
+ }
24
+
25
+ for (const p of result.pushed) {
26
+ console.log(chalk.green(` ✓ ${p}`));
27
+ }
28
+
29
+ console.log('');
30
+ console.log(success(`${result.created} created, ${result.updated} updated on remote`));
31
+ console.log(chalk.dim(` ${result.pushed.length} file(s) pushed and marked as synced.\n`));
32
+ });
33
+ }
@@ -0,0 +1,91 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { input, password } from '@inquirer/prompts';
4
+ import { SDD, readConfig, writeConfig } from '@applica-software-guru/sdd-core';
5
+ import { heading, success, info, warning, error as errorFmt } from '../ui/format.js';
6
+
7
+ export function registerRemote(program: Command): void {
8
+ const remote = program
9
+ .command('remote')
10
+ .description('Manage remote sync with SDD Flow');
11
+
12
+ remote
13
+ .command('init')
14
+ .description('Configure remote API connection')
15
+ .option('--url <url>', 'SDD Flow API base URL')
16
+ .option('--api-key <key>', 'API key (prefer SDD_API_KEY env var)')
17
+ .action(async (options: { url?: string; apiKey?: string }) => {
18
+ const root = process.cwd();
19
+ const config = await readConfig(root);
20
+
21
+ const url =
22
+ options.url ??
23
+ (await input({
24
+ message: 'SDD Flow API URL',
25
+ default: config.remote?.url ?? 'https://sdd.applica.guru/api/v1',
26
+ }));
27
+
28
+ const apiKey =
29
+ options.apiKey ??
30
+ (await password({
31
+ message: 'API key (leave empty to use SDD_API_KEY env var)',
32
+ }));
33
+
34
+ config.remote = {
35
+ url: url.replace(/\/+$/, ''),
36
+ };
37
+ if (apiKey) {
38
+ config.remote['api-key'] = apiKey;
39
+ }
40
+
41
+ await writeConfig(root, config);
42
+ console.log(success('Remote configuration saved to .sdd/config.yaml'));
43
+
44
+ if (!apiKey && !process.env.SDD_API_KEY) {
45
+ console.log(warning('No API key found. Set SDD_API_KEY environment variable or re-run with --api-key.'));
46
+ return;
47
+ }
48
+
49
+ // Test connection
50
+ console.log(info('Testing connection...'));
51
+ try {
52
+ const sdd = new SDD({ root });
53
+ const status = await sdd.remoteStatus();
54
+ if (status.connected) {
55
+ console.log(success(`Connected! Remote has ${status.remoteDocs} document(s).`));
56
+ } else {
57
+ console.log(errorFmt('Could not connect to remote. Check URL and API key.'));
58
+ }
59
+ } catch (err) {
60
+ console.log(errorFmt(`Connection failed: ${(err as Error).message}`));
61
+ }
62
+ console.log('');
63
+ });
64
+
65
+ remote
66
+ .command('status')
67
+ .description('Show remote sync status')
68
+ .action(async () => {
69
+ const sdd = new SDD({ root: process.cwd() });
70
+ const status = await sdd.remoteStatus();
71
+
72
+ console.log(heading('Remote Status'));
73
+
74
+ if (!status.configured) {
75
+ console.log(info('Remote not configured. Run "sdd remote init" to set up.\n'));
76
+ return;
77
+ }
78
+
79
+ console.log(` ${chalk.dim('URL:')} ${chalk.white(status.url)}`);
80
+ console.log(
81
+ ` ${chalk.dim('Connection:')} ${
82
+ status.connected ? chalk.green.bold('connected') : chalk.red.bold('disconnected')
83
+ }`,
84
+ );
85
+ console.log(` ${chalk.dim('Local pending:')} ${chalk.yellow.bold(String(status.localPending))} file(s)`);
86
+ if (status.connected) {
87
+ console.log(` ${chalk.dim('Remote docs:')} ${chalk.cyan.bold(String(status.remoteDocs))} document(s)`);
88
+ }
89
+ console.log('');
90
+ });
91
+ }
@@ -18,6 +18,7 @@ export function registerStatus(program: Command): void {
18
18
  }
19
19
 
20
20
  const counts = {
21
+ draft: result.files.filter((f) => f.status === 'draft').length,
21
22
  new: result.files.filter((f) => f.status === 'new').length,
22
23
  changed: result.files.filter((f) => f.status === 'changed').length,
23
24
  deleted: result.files.filter((f) => f.status === 'deleted').length,
@@ -29,6 +30,7 @@ export function registerStatus(program: Command): void {
29
30
  console.log('');
30
31
 
31
32
  const parts: string[] = [];
33
+ if (counts.draft) parts.push(chalk.magenta.bold(`${counts.draft} draft`));
32
34
  if (counts.new) parts.push(chalk.cyan.bold(`${counts.new} new`));
33
35
  if (counts.changed) parts.push(chalk.yellow.bold(`${counts.changed} changed`));
34
36
  if (counts.deleted) parts.push(chalk.red.bold(`${counts.deleted} deleted`));
package/src/index.ts CHANGED
@@ -13,6 +13,10 @@ import { registerApply } from "./commands/apply.js";
13
13
  import { registerAdapters } from "./commands/adapters.js";
14
14
  import { registerUI } from "./commands/ui.js";
15
15
  import { registerUpgrade } from "./commands/upgrade.js";
16
+ import { registerRemote } from "./commands/remote.js";
17
+ import { registerPull } from "./commands/pull.js";
18
+ import { registerPush } from "./commands/push.js";
19
+ import { registerMarkDraftsEnriched } from "./commands/mark-drafts-enriched.js";
16
20
 
17
21
  const packageRequire = createRequire(__filename);
18
22
  const packageJson = packageRequire("../package.json") as { version: string };
@@ -36,6 +40,10 @@ registerApply(program);
36
40
  registerAdapters(program);
37
41
  registerUI(program);
38
42
  registerUpgrade(program);
43
+ registerRemote(program);
44
+ registerPull(program);
45
+ registerPush(program);
46
+ registerMarkDraftsEnriched(program);
39
47
 
40
48
  program.parseAsync().catch((err) => {
41
49
  console.error(err.message);
package/src/ui/format.ts CHANGED
@@ -3,6 +3,8 @@ import Table from 'cli-table3';
3
3
 
4
4
  export function statusIcon(status: string): string {
5
5
  switch (status) {
6
+ case 'draft':
7
+ return chalk.magenta('◇');
6
8
  case 'synced':
7
9
  return chalk.green('✓');
8
10
  case 'new':
@@ -18,6 +20,8 @@ export function statusIcon(status: string): string {
18
20
 
19
21
  export function statusLabel(status: string): string {
20
22
  switch (status) {
23
+ case 'draft':
24
+ return chalk.magenta('draft');
21
25
  case 'synced':
22
26
  return chalk.green.bold('synced');
23
27
  case 'new':