skill-flow 1.0.8 → 1.3.3

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 (143) hide show
  1. package/README.md +209 -131
  2. package/README.zh.md +170 -131
  3. package/dist/bridge-command.d.ts +9 -0
  4. package/dist/bridge-command.js +422 -0
  5. package/dist/bridge-command.js.map +1 -0
  6. package/dist/cli.js +68 -8
  7. package/dist/cli.js.map +1 -1
  8. package/package.json +11 -2
  9. package/dist/adapters/channel-adapters.d.ts +0 -8
  10. package/dist/adapters/channel-adapters.js +0 -64
  11. package/dist/adapters/channel-adapters.js.map +0 -1
  12. package/dist/domain/types.d.ts +0 -234
  13. package/dist/domain/types.js +0 -2
  14. package/dist/domain/types.js.map +0 -1
  15. package/dist/services/config-coordinator.d.ts +0 -38
  16. package/dist/services/config-coordinator.js +0 -83
  17. package/dist/services/config-coordinator.js.map +0 -1
  18. package/dist/services/deployment-applier.d.ts +0 -10
  19. package/dist/services/deployment-applier.js +0 -84
  20. package/dist/services/deployment-applier.js.map +0 -1
  21. package/dist/services/deployment-planner.d.ts +0 -16
  22. package/dist/services/deployment-planner.js +0 -366
  23. package/dist/services/deployment-planner.js.map +0 -1
  24. package/dist/services/doctor-service.d.ts +0 -7
  25. package/dist/services/doctor-service.js +0 -204
  26. package/dist/services/doctor-service.js.map +0 -1
  27. package/dist/services/inventory-service.d.ts +0 -17
  28. package/dist/services/inventory-service.js +0 -216
  29. package/dist/services/inventory-service.js.map +0 -1
  30. package/dist/services/skill-flow.d.ts +0 -136
  31. package/dist/services/skill-flow.js +0 -1210
  32. package/dist/services/skill-flow.js.map +0 -1
  33. package/dist/services/source-service.d.ts +0 -57
  34. package/dist/services/source-service.js +0 -809
  35. package/dist/services/source-service.js.map +0 -1
  36. package/dist/services/workflow-service.d.ts +0 -5
  37. package/dist/services/workflow-service.js +0 -45
  38. package/dist/services/workflow-service.js.map +0 -1
  39. package/dist/services/workspace-bootstrap-service.d.ts +0 -25
  40. package/dist/services/workspace-bootstrap-service.js +0 -140
  41. package/dist/services/workspace-bootstrap-service.js.map +0 -1
  42. package/dist/state/store.d.ts +0 -35
  43. package/dist/state/store.js +0 -151
  44. package/dist/state/store.js.map +0 -1
  45. package/dist/tests/add-flow-model.test.d.ts +0 -1
  46. package/dist/tests/add-flow-model.test.js +0 -108
  47. package/dist/tests/add-flow-model.test.js.map +0 -1
  48. package/dist/tests/add-flow-ui.test.d.ts +0 -1
  49. package/dist/tests/add-flow-ui.test.js +0 -16
  50. package/dist/tests/add-flow-ui.test.js.map +0 -1
  51. package/dist/tests/add-prepare-flow.test.d.ts +0 -1
  52. package/dist/tests/add-prepare-flow.test.js +0 -166
  53. package/dist/tests/add-prepare-flow.test.js.map +0 -1
  54. package/dist/tests/add-selection-and-find-command.test.d.ts +0 -1
  55. package/dist/tests/add-selection-and-find-command.test.js +0 -89
  56. package/dist/tests/add-selection-and-find-command.test.js.map +0 -1
  57. package/dist/tests/clawhub.test.d.ts +0 -1
  58. package/dist/tests/clawhub.test.js +0 -63
  59. package/dist/tests/clawhub.test.js.map +0 -1
  60. package/dist/tests/cli-utils.test.d.ts +0 -1
  61. package/dist/tests/cli-utils.test.js +0 -24
  62. package/dist/tests/cli-utils.test.js.map +0 -1
  63. package/dist/tests/config-coordinator.test.d.ts +0 -1
  64. package/dist/tests/config-coordinator.test.js +0 -219
  65. package/dist/tests/config-coordinator.test.js.map +0 -1
  66. package/dist/tests/config-integration.test.d.ts +0 -1
  67. package/dist/tests/config-integration.test.js +0 -276
  68. package/dist/tests/config-integration.test.js.map +0 -1
  69. package/dist/tests/config-ui-utils.test.d.ts +0 -1
  70. package/dist/tests/config-ui-utils.test.js +0 -523
  71. package/dist/tests/config-ui-utils.test.js.map +0 -1
  72. package/dist/tests/find-and-naming-utils.test.d.ts +0 -1
  73. package/dist/tests/find-and-naming-utils.test.js +0 -127
  74. package/dist/tests/find-and-naming-utils.test.js.map +0 -1
  75. package/dist/tests/inventory-service-precedence.test.d.ts +0 -1
  76. package/dist/tests/inventory-service-precedence.test.js +0 -42
  77. package/dist/tests/inventory-service-precedence.test.js.map +0 -1
  78. package/dist/tests/skill-flow.test.d.ts +0 -1
  79. package/dist/tests/skill-flow.test.js +0 -991
  80. package/dist/tests/skill-flow.test.js.map +0 -1
  81. package/dist/tests/source-lifecycle.test.d.ts +0 -1
  82. package/dist/tests/source-lifecycle.test.js +0 -644
  83. package/dist/tests/source-lifecycle.test.js.map +0 -1
  84. package/dist/tests/source-parsing-compatibility.test.d.ts +0 -1
  85. package/dist/tests/source-parsing-compatibility.test.js +0 -72
  86. package/dist/tests/source-parsing-compatibility.test.js.map +0 -1
  87. package/dist/tests/target-definitions.test.d.ts +0 -1
  88. package/dist/tests/target-definitions.test.js +0 -51
  89. package/dist/tests/target-definitions.test.js.map +0 -1
  90. package/dist/tests/test-helpers.d.ts +0 -18
  91. package/dist/tests/test-helpers.js +0 -123
  92. package/dist/tests/test-helpers.js.map +0 -1
  93. package/dist/tui/add-flow-model.d.ts +0 -62
  94. package/dist/tui/add-flow-model.js +0 -206
  95. package/dist/tui/add-flow-model.js.map +0 -1
  96. package/dist/tui/add-flow.d.ts +0 -25
  97. package/dist/tui/add-flow.js +0 -534
  98. package/dist/tui/add-flow.js.map +0 -1
  99. package/dist/tui/config-app.d.ts +0 -178
  100. package/dist/tui/config-app.js +0 -1551
  101. package/dist/tui/config-app.js.map +0 -1
  102. package/dist/tui/find-app.d.ts +0 -9
  103. package/dist/tui/find-app.js +0 -150
  104. package/dist/tui/find-app.js.map +0 -1
  105. package/dist/tui/selection-state.d.ts +0 -8
  106. package/dist/tui/selection-state.js +0 -32
  107. package/dist/tui/selection-state.js.map +0 -1
  108. package/dist/utils/builtin-git-sources.d.ts +0 -5
  109. package/dist/utils/builtin-git-sources.js +0 -23
  110. package/dist/utils/builtin-git-sources.js.map +0 -1
  111. package/dist/utils/clawhub.d.ts +0 -41
  112. package/dist/utils/clawhub.js +0 -94
  113. package/dist/utils/clawhub.js.map +0 -1
  114. package/dist/utils/cli.d.ts +0 -2
  115. package/dist/utils/cli.js +0 -19
  116. package/dist/utils/cli.js.map +0 -1
  117. package/dist/utils/constants.d.ts +0 -23
  118. package/dist/utils/constants.js +0 -195
  119. package/dist/utils/constants.js.map +0 -1
  120. package/dist/utils/find-command.d.ts +0 -2
  121. package/dist/utils/find-command.js +0 -29
  122. package/dist/utils/find-command.js.map +0 -1
  123. package/dist/utils/format.d.ts +0 -7
  124. package/dist/utils/format.js +0 -68
  125. package/dist/utils/format.js.map +0 -1
  126. package/dist/utils/fs.d.ts +0 -16
  127. package/dist/utils/fs.js +0 -144
  128. package/dist/utils/fs.js.map +0 -1
  129. package/dist/utils/git.d.ts +0 -3
  130. package/dist/utils/git.js +0 -12
  131. package/dist/utils/git.js.map +0 -1
  132. package/dist/utils/github-catalog.d.ts +0 -1
  133. package/dist/utils/github-catalog.js +0 -25
  134. package/dist/utils/github-catalog.js.map +0 -1
  135. package/dist/utils/naming.d.ts +0 -29
  136. package/dist/utils/naming.js +0 -115
  137. package/dist/utils/naming.js.map +0 -1
  138. package/dist/utils/result.d.ts +0 -4
  139. package/dist/utils/result.js +0 -15
  140. package/dist/utils/result.js.map +0 -1
  141. package/dist/utils/source-id.d.ts +0 -2
  142. package/dist/utils/source-id.js +0 -49
  143. package/dist/utils/source-id.js.map +0 -1
@@ -1,115 +0,0 @@
1
- export function parseGitHubRepo(locator) {
2
- const trimmed = locator.trim().replace(/\/+$/, "");
3
- const httpsMatch = trimmed.match(/^https?:\/\/github\.com\/([^/\s]+)\/([^/\s]+?)(?:\.git)?$/i);
4
- if (httpsMatch) {
5
- const owner = httpsMatch[1];
6
- const repo = httpsMatch[2];
7
- if (!owner || !repo) {
8
- return null;
9
- }
10
- return { owner, repo };
11
- }
12
- const sshMatch = trimmed.match(/^git@github\.com:([^/\s]+)\/([^/\s]+?)(?:\.git)?$/i);
13
- if (sshMatch) {
14
- const owner = sshMatch[1];
15
- const repo = sshMatch[2];
16
- if (!owner || !repo) {
17
- return null;
18
- }
19
- return { owner, repo };
20
- }
21
- const shorthandMatch = trimmed.match(/^([^/\s:]+)\/([^/\s]+)$/);
22
- if (shorthandMatch) {
23
- const owner = shorthandMatch[1];
24
- const rawRepo = shorthandMatch[2];
25
- if (!owner || !rawRepo) {
26
- return null;
27
- }
28
- return {
29
- owner,
30
- repo: rawRepo.replace(/\.git$/i, ""),
31
- };
32
- }
33
- return null;
34
- }
35
- export function formatGroupLabel(source) {
36
- if (source.kind === "local") {
37
- return `${source.displayName}@local`;
38
- }
39
- if (source.kind === "clawhub") {
40
- return `${source.displayName}@clawhub`;
41
- }
42
- const githubRepo = parseGitHubRepo(source.locator);
43
- if (!githubRepo) {
44
- return source.displayName;
45
- }
46
- return `${source.displayName}@${githubRepo.owner}`;
47
- }
48
- export function formatGroupRef(source) {
49
- return `${formatGroupLabel(source)} [${source.id}]`;
50
- }
51
- export function buildProjectedSkillName(groupName, skillName, groupAuthor) {
52
- return `${getPreferredProjectedPrefix(groupName, skillName, groupAuthor)}-${skillName}`;
53
- }
54
- export function buildProjectedSkillNameCandidates({ preferredName, groupId, groupName, groupAuthor, skillName, }) {
55
- const candidates = [
56
- preferredName,
57
- buildProjectedSkillName(groupName, skillName, groupAuthor),
58
- buildRepoAuthorProjectedSkillName(groupName, skillName, groupAuthor),
59
- `${groupId}-${skillName}`,
60
- ];
61
- return [...new Set(candidates.filter((value) => Boolean(value)))];
62
- }
63
- export function resolveProjectedSkillNames(items) {
64
- const result = new Map();
65
- const bySkillName = new Map();
66
- for (const item of items) {
67
- const group = bySkillName.get(item.skillName) ?? [];
68
- group.push(item);
69
- bySkillName.set(item.skillName, group);
70
- }
71
- for (const group of bySkillName.values()) {
72
- if (group.length <= 1) {
73
- const item = group[0];
74
- if (item) {
75
- result.set(item.leafId, item.skillName);
76
- }
77
- continue;
78
- }
79
- const preferredNames = group.map((item) => ({
80
- item,
81
- projectedName: buildProjectedSkillName(item.groupName, item.skillName, item.groupAuthor),
82
- }));
83
- const projectedNameCounts = new Map();
84
- for (const preferred of preferredNames) {
85
- projectedNameCounts.set(preferred.projectedName, (projectedNameCounts.get(preferred.projectedName) ?? 0) + 1);
86
- }
87
- for (const preferred of preferredNames) {
88
- if ((projectedNameCounts.get(preferred.projectedName) ?? 0) === 1) {
89
- result.set(preferred.item.leafId, preferred.projectedName);
90
- continue;
91
- }
92
- const repoAuthorProjectedName = buildRepoAuthorProjectedSkillName(preferred.item.groupName, preferred.item.skillName, preferred.item.groupAuthor);
93
- if (repoAuthorProjectedName &&
94
- (projectedNameCounts.get(repoAuthorProjectedName) ?? 0) === 0) {
95
- result.set(preferred.item.leafId, repoAuthorProjectedName);
96
- continue;
97
- }
98
- result.set(preferred.item.leafId, `${preferred.item.groupId}-${preferred.item.skillName}`);
99
- }
100
- }
101
- return result;
102
- }
103
- function getPreferredProjectedPrefix(groupName, skillName, groupAuthor) {
104
- if (skillName.startsWith(`${groupName}-`) && groupAuthor) {
105
- return groupAuthor;
106
- }
107
- return groupName;
108
- }
109
- function buildRepoAuthorProjectedSkillName(groupName, skillName, groupAuthor) {
110
- if (!groupAuthor) {
111
- return undefined;
112
- }
113
- return `${groupName}(${groupAuthor})-${skillName}`;
114
- }
115
- //# sourceMappingURL=naming.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../src/utils/naming.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEnD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAC9B,4DAA4D,CAC7D,CAAC;IACF,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACrF,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAChE,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,KAAK;YACL,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACrC,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAkB;IACjD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,GAAG,MAAM,CAAC,WAAW,QAAQ,CAAC;IACvC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,GAAG,MAAM,CAAC,WAAW,UAAU,CAAC;IACzC,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,OAAO,GAAG,MAAM,CAAC,WAAW,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAkB;IAC/C,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,SAAiB,EACjB,SAAiB,EACjB,WAAoB;IAEpB,OAAO,GAAG,2BAA2B,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,IAAI,SAAS,EAAE,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,EAChD,aAAa,EACb,OAAO,EACP,SAAS,EACT,WAAW,EACX,SAAS,GAOV;IACC,MAAM,UAAU,GAAG;QACjB,aAAa;QACb,uBAAuB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC;QAC1D,iCAAiC,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC;QACpE,GAAG,OAAO,IAAI,SAAS,EAAE;KAC1B,CAAC;IAEF,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,KAA4B;IAE5B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAiC,CAAC;IAE7D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1C,IAAI;YACJ,aAAa,EAAE,uBAAuB,CACpC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,WAAW,CACjB;SACF,CAAC,CAAC,CAAC;QACJ,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtD,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;YACvC,mBAAmB,CAAC,GAAG,CACrB,SAAS,CAAC,aAAa,EACvB,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAC5D,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;YACvC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;gBAC3D,SAAS;YACX,CAAC;YAED,MAAM,uBAAuB,GAAG,iCAAiC,CAC/D,SAAS,CAAC,IAAI,CAAC,SAAS,EACxB,SAAS,CAAC,IAAI,CAAC,SAAS,EACxB,SAAS,CAAC,IAAI,CAAC,WAAW,CAC3B,CAAC;YACF,IACE,uBAAuB;gBACvB,CAAC,mBAAmB,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAC7D,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;gBAC3D,SAAS;YACX,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,2BAA2B,CAClC,SAAiB,EACjB,SAAiB,EACjB,WAAoB;IAEpB,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC;QACzD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iCAAiC,CACxC,SAAiB,EACjB,SAAiB,EACjB,WAAoB;IAEpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;AACrD,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { Failure, Result, Warning } from "../domain/types.js";
2
- export declare function ok<T>(data: T, warnings?: Warning[]): Result<T>;
3
- export declare function fail<T>(errors: Failure | Failure[], warnings?: Warning[], data?: T): Result<T>;
4
- export declare function mergeWarnings(...warningSets: Warning[][]): Warning[];
@@ -1,15 +0,0 @@
1
- export function ok(data, warnings = []) {
2
- return { ok: true, data, warnings, errors: [] };
3
- }
4
- export function fail(errors, warnings = [], data) {
5
- const base = {
6
- ok: false,
7
- warnings,
8
- errors: Array.isArray(errors) ? errors : [errors],
9
- };
10
- return data === undefined ? base : { ...base, data };
11
- }
12
- export function mergeWarnings(...warningSets) {
13
- return warningSets.flat();
14
- }
15
- //# sourceMappingURL=result.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/utils/result.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,EAAE,CAAI,IAAO,EAAE,WAAsB,EAAE;IACrD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,IAAI,CAClB,MAA2B,EAC3B,WAAsB,EAAE,EACxB,IAAQ;IAER,MAAM,IAAI,GAAG;QACX,EAAE,EAAE,KAAK;QACT,QAAQ;QACR,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;KACzC,CAAC;IAEX,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAG,WAAwB;IACvD,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC;AAC5B,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function deriveDisplayName(locator: string): string;
2
- export declare function deriveSourceId(locator: string): string;
@@ -1,49 +0,0 @@
1
- import path from "node:path";
2
- import { slugify } from "./fs.js";
3
- import { parseGitHubRepo } from "./naming.js";
4
- function parseClawHubLocator(locator) {
5
- const match = locator.trim().match(/^clawhub:([^@\s]+)(?:@(.+))?$/);
6
- if (!match) {
7
- return null;
8
- }
9
- const slug = match[1];
10
- const version = match[2];
11
- if (!slug) {
12
- return null;
13
- }
14
- return version ? { slug, version } : { slug };
15
- }
16
- export function deriveDisplayName(locator) {
17
- const clawHubLocator = parseClawHubLocator(locator);
18
- if (clawHubLocator) {
19
- return clawHubLocator.slug.split("/").pop() ?? clawHubLocator.slug;
20
- }
21
- const githubRepo = parseGitHubRepo(locator);
22
- if (githubRepo) {
23
- return githubRepo.repo;
24
- }
25
- const trimmed = locator.replace(/\/+$/, "");
26
- if (/^[^/\s]+\/[^/\s]+$/.test(trimmed)) {
27
- return trimmed.split("/")[1] ?? trimmed;
28
- }
29
- if (trimmed.endsWith(".git")) {
30
- return path.basename(trimmed, ".git");
31
- }
32
- return path.basename(trimmed) || slugify(locator);
33
- }
34
- export function deriveSourceId(locator) {
35
- const clawHubLocator = parseClawHubLocator(locator);
36
- if (clawHubLocator) {
37
- return slugify(`clawhub-${clawHubLocator.slug}`);
38
- }
39
- const githubRepo = parseGitHubRepo(locator);
40
- if (githubRepo) {
41
- return slugify(`${githubRepo.owner}-${githubRepo.repo}`);
42
- }
43
- const trimmed = locator.replace(/\/+$/, "");
44
- if (path.isAbsolute(trimmed)) {
45
- return slugify(path.basename(trimmed) || locator);
46
- }
47
- return slugify(deriveDisplayName(locator) || locator);
48
- }
49
- //# sourceMappingURL=source-id.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source-id.js","sourceRoot":"","sources":["../../src/utils/source-id.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,SAAS,mBAAmB,CAAC,OAAe;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC;IACrE,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC,WAAW,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,GAAG,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC;AACxD,CAAC"}