@procedures/lib 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/LICENSE +21 -0
  3. package/README.md +119 -2
  4. package/dist/.tsbuildinfo +1 -0
  5. package/dist/cli-flags.d.ts +27 -0
  6. package/dist/cli-flags.d.ts.map +1 -0
  7. package/dist/cli-flags.js +33 -0
  8. package/dist/cli-flags.js.map +1 -0
  9. package/dist/dag/builder.d.ts +18 -0
  10. package/dist/dag/builder.d.ts.map +1 -0
  11. package/dist/dag/builder.js +35 -0
  12. package/dist/dag/builder.js.map +1 -0
  13. package/dist/dag/index.d.ts +12 -0
  14. package/dist/dag/index.d.ts.map +1 -0
  15. package/dist/dag/index.js +12 -0
  16. package/dist/dag/index.js.map +1 -0
  17. package/dist/git/index.d.ts +5 -0
  18. package/dist/git/index.d.ts.map +1 -0
  19. package/dist/git/index.js +5 -0
  20. package/dist/git/index.js.map +1 -0
  21. package/dist/git/ref-parser.d.ts +34 -0
  22. package/dist/git/ref-parser.d.ts.map +1 -0
  23. package/dist/git/ref-parser.js +70 -0
  24. package/dist/git/ref-parser.js.map +1 -0
  25. package/dist/index.d.ts +14 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +19 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/module.d.ts +22 -0
  30. package/dist/module.d.ts.map +1 -0
  31. package/dist/module.js +180 -0
  32. package/dist/module.js.map +1 -0
  33. package/dist/procedures/core/catch.d.ts +33 -0
  34. package/dist/procedures/core/catch.d.ts.map +1 -0
  35. package/dist/procedures/core/catch.js +118 -0
  36. package/dist/procedures/core/catch.js.map +1 -0
  37. package/dist/procedures/core/index.d.ts +9 -0
  38. package/dist/procedures/core/index.d.ts.map +1 -0
  39. package/dist/procedures/core/index.js +8 -0
  40. package/dist/procedures/core/index.js.map +1 -0
  41. package/dist/procedures/dag/index.d.ts +5 -0
  42. package/dist/procedures/dag/index.d.ts.map +1 -0
  43. package/dist/procedures/dag/index.js +5 -0
  44. package/dist/procedures/dag/index.js.map +1 -0
  45. package/dist/procedures/dag/traverse.d.ts +54 -0
  46. package/dist/procedures/dag/traverse.d.ts.map +1 -0
  47. package/dist/procedures/dag/traverse.js +252 -0
  48. package/dist/procedures/dag/traverse.js.map +1 -0
  49. package/dist/procedures/ecosystem/index.d.ts +7 -0
  50. package/dist/procedures/ecosystem/index.d.ts.map +1 -0
  51. package/dist/procedures/ecosystem/index.js +6 -0
  52. package/dist/procedures/ecosystem/index.js.map +1 -0
  53. package/dist/procedures/ecosystem/procedures.d.ts +63 -0
  54. package/dist/procedures/ecosystem/procedures.d.ts.map +1 -0
  55. package/dist/procedures/ecosystem/procedures.js +215 -0
  56. package/dist/procedures/ecosystem/procedures.js.map +1 -0
  57. package/dist/procedures/lib/audit.d.ts +29 -0
  58. package/dist/procedures/lib/audit.d.ts.map +1 -0
  59. package/dist/procedures/lib/audit.js +236 -0
  60. package/dist/procedures/lib/audit.js.map +1 -0
  61. package/dist/procedures/lib/index.d.ts +8 -0
  62. package/dist/procedures/lib/index.d.ts.map +1 -0
  63. package/dist/procedures/lib/index.js +8 -0
  64. package/dist/procedures/lib/index.js.map +1 -0
  65. package/dist/procedures/lib/new.d.ts +20 -0
  66. package/dist/procedures/lib/new.d.ts.map +1 -0
  67. package/dist/procedures/lib/new.js +205 -0
  68. package/dist/procedures/lib/new.js.map +1 -0
  69. package/dist/procedures/lib/rename.d.ts +28 -0
  70. package/dist/procedures/lib/rename.d.ts.map +1 -0
  71. package/dist/procedures/lib/rename.js +267 -0
  72. package/dist/procedures/lib/rename.js.map +1 -0
  73. package/dist/procedures/lib/scan.d.ts +14 -0
  74. package/dist/procedures/lib/scan.d.ts.map +1 -0
  75. package/dist/procedures/lib/scan.js +102 -0
  76. package/dist/procedures/lib/scan.js.map +1 -0
  77. package/dist/register.d.ts +7 -0
  78. package/dist/register.d.ts.map +1 -0
  79. package/dist/register.js +9 -0
  80. package/dist/register.js.map +1 -0
  81. package/dist/scoped-input.d.ts +17 -0
  82. package/dist/scoped-input.d.ts.map +1 -0
  83. package/dist/scoped-input.js +23 -0
  84. package/dist/scoped-input.js.map +1 -0
  85. package/dist/types.d.ts +248 -0
  86. package/dist/types.d.ts.map +1 -0
  87. package/dist/types.js +231 -0
  88. package/dist/types.js.map +1 -0
  89. package/dist/workspace.d.ts +46 -0
  90. package/dist/workspace.d.ts.map +1 -0
  91. package/dist/workspace.js +98 -0
  92. package/dist/workspace.js.map +1 -0
  93. package/package.json +87 -3
  94. package/src/cli-flags.ts +49 -0
  95. package/src/dag/builder.ts +44 -0
  96. package/src/dag/index.ts +23 -0
  97. package/src/git/index.ts +11 -0
  98. package/src/git/ref-parser.ts +83 -0
  99. package/src/index.ts +56 -0
  100. package/src/module.ts +232 -0
  101. package/src/procedures/core/catch.ts +142 -0
  102. package/src/procedures/core/index.ts +9 -0
  103. package/src/procedures/dag/index.ts +5 -0
  104. package/src/procedures/dag/traverse.ts +281 -0
  105. package/src/procedures/ecosystem/index.ts +12 -0
  106. package/src/procedures/ecosystem/procedures.ts +317 -0
  107. package/src/procedures/lib/audit.ts +307 -0
  108. package/src/procedures/lib/index.ts +8 -0
  109. package/src/procedures/lib/new.ts +253 -0
  110. package/src/procedures/lib/rename.ts +355 -0
  111. package/src/procedures/lib/scan.ts +143 -0
  112. package/src/register.ts +11 -0
  113. package/src/types.ts +526 -0
  114. package/src/workspace.ts +110 -0
@@ -0,0 +1,33 @@
1
+ /**
2
+ * The global flags of the `mark` CLI.
3
+ *
4
+ * `mark` reads a global flag before the command path. After the path, a flag is global only when
5
+ * the procedure does not declare a flag of that name: `mark docker compose down -v` gives `-v` to
6
+ * the procedure. `lib.audit` reports each procedure flag that hides a global flag in this way.
7
+ *
8
+ * This module has no side effects: `mark` imports it before it loads the procedures.
9
+ */
10
+ export const CLI_GLOBAL_FLAGS = [
11
+ { long: "help", short: "h", takesValue: false, description: "Show the help" },
12
+ { long: "version", short: "v", takesValue: false, description: "Show the version" },
13
+ { long: "verbose", short: "V", takesValue: false, description: "Show more output" },
14
+ { long: "format", short: "f", takesValue: true, description: "The output format: text, json, table or streaming" },
15
+ { long: "local", takesValue: false, description: "Run the command in this process, not on the CLI server" },
16
+ { long: "json", takesValue: true, description: "Run a procedure reference that is given as JSON" },
17
+ { long: "no-input", takesValue: false, description: "Never ask for a missing argument (also when CI is set)" },
18
+ { long: "interactive", short: "i", takesValue: false, mode: true, description: "Start the REPL" },
19
+ { long: "server", takesValue: false, mode: true, description: "Start the CLI server" },
20
+ { long: "port", takesValue: true, serverOption: true, description: "The port of the CLI server (with --server)" },
21
+ { long: "host", takesValue: true, serverOption: true, description: "The host of the CLI server (with --server)" },
22
+ {
23
+ long: "transport",
24
+ takesValue: true,
25
+ serverOption: true,
26
+ description: "The transport of the CLI server: http, websocket or both (with --server)",
27
+ },
28
+ ];
29
+ /** The global flag with this long name or short letter */
30
+ export function findGlobalFlag(name, short) {
31
+ return CLI_GLOBAL_FLAGS.find((flag) => (short ? flag.short === name : flag.long === name));
32
+ }
33
+ //# sourceMappingURL=cli-flags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-flags.js","sourceRoot":"","sources":["../src/cli-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,MAAM,CAAC,MAAM,gBAAgB,GAA6B;IACxD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE;IAC7E,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE;IACnF,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE;IACnF,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,mDAAmD,EAAE;IAClH,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,wDAAwD,EAAE;IAC3G,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,iDAAiD,EAAE;IAClG,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,wDAAwD,EAAE;IAC9G,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE;IACjG,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;IACtF,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,4CAA4C,EAAE;IACjH,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,4CAA4C,EAAE;IACjH;QACE,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE,0EAA0E;KACxF;CACF,CAAC;AAEF,0DAA0D;AAC1D,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,KAAc;IACzD,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;AAC7F,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * DAG Builder
3
+ *
4
+ * Builds the ecosystem-specific dependency DAG from package scan results. This is the only
5
+ * domain-specific piece; the generic DAG algorithms (buildLeveledDAG, executeDAG, filterDAGFromRoot,
6
+ * getAncestors, getDescendants, ...) live in @procedures/dag. This package previously
7
+ * vendored a verbatim copy of those — see documentation/BUGS-2026-07.md (DAG de-dup).
8
+ */
9
+ import type { DAGNode, PackageInfo } from "../types.js";
10
+ /**
11
+ * Build DAG nodes from package info.
12
+ *
13
+ * Creates nodes only for packages that are mark1russell7 dependencies and exist in the scanned
14
+ * packages. `id` mirrors `name` so the nodes satisfy client-dag's DAGNode contract (which keys by
15
+ * id) while the ecosystem code keeps using the readable `name`.
16
+ */
17
+ export declare function buildDAGNodes(packages: Record<string, PackageInfo>): Map<string, DAGNode>;
18
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/dag/builder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GACpC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAuBtB"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * DAG Builder
3
+ *
4
+ * Builds the ecosystem-specific dependency DAG from package scan results. This is the only
5
+ * domain-specific piece; the generic DAG algorithms (buildLeveledDAG, executeDAG, filterDAGFromRoot,
6
+ * getAncestors, getDescendants, ...) live in @procedures/dag. This package previously
7
+ * vendored a verbatim copy of those — see documentation/BUGS-2026-07.md (DAG de-dup).
8
+ */
9
+ /**
10
+ * Build DAG nodes from package info.
11
+ *
12
+ * Creates nodes only for packages that are mark1russell7 dependencies and exist in the scanned
13
+ * packages. `id` mirrors `name` so the nodes satisfy client-dag's DAGNode contract (which keys by
14
+ * id) while the ecosystem code keeps using the readable `name`.
15
+ */
16
+ export function buildDAGNodes(packages) {
17
+ const nodes = new Map();
18
+ for (const [name, info] of Object.entries(packages)) {
19
+ // Only include packages that have mark1russell7 dependencies or are dependencies of others.
20
+ const deps = info.mark1russell7Deps.filter((dep) => packages[dep] !== undefined);
21
+ const gitRef = info.gitRemote ?? `github:mark1russell7/${info.name}#${info.currentBranch ?? "main"}`;
22
+ const requiredBranch = info.currentBranch ?? "main";
23
+ const node = {
24
+ id: name,
25
+ name,
26
+ repoPath: info.repoPath,
27
+ gitRef,
28
+ requiredBranch,
29
+ dependencies: deps,
30
+ };
31
+ nodes.set(name, node);
32
+ }
33
+ return nodes;
34
+ }
35
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/dag/builder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAqC;IAErC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEzC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,4FAA4F;QAC5F,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;QAEjF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,IAAI,wBAAwB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,MAAM,EAAE,CAAC;QACrG,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC;QAEpD,MAAM,IAAI,GAAY;YACpB,EAAE,EAAE,IAAI;YACR,IAAI;YACJ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM;YACN,cAAc;YACd,YAAY,EAAE,IAAI;SACnB,CAAC;QAEF,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * DAG utilities.
3
+ *
4
+ * The generic DAG algorithms are re-exported from @procedures/dag; only buildDAGNodes
5
+ * (which builds the ecosystem package graph) is domain-specific and stays local. This package
6
+ * previously vendored a verbatim copy of the generic algorithms — deduplicated here. The nodes
7
+ * carry an `id` (mirroring `name`) so they satisfy client-dag's generic `DAGNode` contract.
8
+ * See documentation/BUGS-2026-07.md (DAG de-dup / H27).
9
+ */
10
+ export { buildLeveledDAG, getTopologicalOrder, visualizeDAG, executeDAG, executeDAGSequential, createProcessor, filterDAGFromRoot, getAncestors, getDescendants, } from "@procedures/dag";
11
+ export { buildDAGNodes } from "./builder.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dag/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * DAG utilities.
3
+ *
4
+ * The generic DAG algorithms are re-exported from @procedures/dag; only buildDAGNodes
5
+ * (which builds the ecosystem package graph) is domain-specific and stays local. This package
6
+ * previously vendored a verbatim copy of the generic algorithms — deduplicated here. The nodes
7
+ * carry an `id` (mirroring `name`) so they satisfy client-dag's generic `DAGNode` contract.
8
+ * See documentation/BUGS-2026-07.md (DAG de-dup / H27).
9
+ */
10
+ export { buildLeveledDAG, getTopologicalOrder, visualizeDAG, executeDAG, executeDAGSequential, createProcessor, filterDAGFromRoot, getAncestors, getDescendants, } from "@procedures/dag";
11
+ export { buildDAGNodes } from "./builder.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dag/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Git utilities
3
+ */
4
+ export { parseGitRef, isGitRef, isMark1Russell7Ref, extractMark1Russell7Deps, getPackageNameFromRef, } from "./ref-parser.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Git utilities
3
+ */
4
+ export { parseGitRef, isGitRef, isMark1Russell7Ref, extractMark1Russell7Deps, getPackageNameFromRef, } from "./ref-parser.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Git reference parser
3
+ *
4
+ * Parses git references from package.json dependencies like:
5
+ * - github:mark1russell7/logger#main
6
+ * - github:mark1russell7/client#v1.0.0
7
+ */
8
+ import type { GitRef } from "../types.js";
9
+ /**
10
+ * Parse a git reference string into its components
11
+ *
12
+ * @example
13
+ * parseGitRef("github:mark1russell7/logger#main")
14
+ * // { raw: "...", host: "github", owner: "mark1russell7", repo: "logger", ref: "main" }
15
+ */
16
+ export declare function parseGitRef(refString: string): GitRef | null;
17
+ /**
18
+ * Check if a dependency string is a git reference
19
+ */
20
+ export declare function isGitRef(dep: string): boolean;
21
+ /**
22
+ * Check if a dependency is a mark1russell7 git reference
23
+ */
24
+ export declare function isMark1Russell7Ref(dep: string): boolean;
25
+ /**
26
+ * Extract mark1russell7 git refs from package.json dependencies
27
+ */
28
+ export declare function extractMark1Russell7Deps(dependencies: Record<string, string>): GitRef[];
29
+ /**
30
+ * Get the package name from a git ref
31
+ * Uses the repo name, optionally scoped with @mark1russell7/
32
+ */
33
+ export declare function getPackageNameFromRef(ref: GitRef): string;
34
+ //# sourceMappingURL=ref-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref-parser.d.ts","sourceRoot":"","sources":["../../src/git/ref-parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoB5D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,MAAM,EAAE,CAaV;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKzD"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Git reference parser
3
+ *
4
+ * Parses git references from package.json dependencies like:
5
+ * - github:mark1russell7/logger#main
6
+ * - github:mark1russell7/client#v1.0.0
7
+ */
8
+ /**
9
+ * Parse a git reference string into its components
10
+ *
11
+ * @example
12
+ * parseGitRef("github:mark1russell7/logger#main")
13
+ * // { raw: "...", host: "github", owner: "mark1russell7", repo: "logger", ref: "main" }
14
+ */
15
+ export function parseGitRef(refString) {
16
+ // Pattern: host:owner/repo#ref
17
+ // Examples:
18
+ // github:mark1russell7/logger#main
19
+ // gitlab:user/project#develop
20
+ const match = refString.match(/^(\w+):([^/]+)\/([^#]+)#(.+)$/);
21
+ if (!match) {
22
+ return null;
23
+ }
24
+ const [, host, owner, repo, ref] = match;
25
+ return {
26
+ raw: refString,
27
+ host: host,
28
+ owner: owner,
29
+ repo: repo,
30
+ ref: ref,
31
+ };
32
+ }
33
+ /**
34
+ * Check if a dependency string is a git reference
35
+ */
36
+ export function isGitRef(dep) {
37
+ return /^\w+:[^/]+\/[^#]+#.+$/.test(dep);
38
+ }
39
+ /**
40
+ * Check if a dependency is a mark1russell7 git reference
41
+ */
42
+ export function isMark1Russell7Ref(dep) {
43
+ return dep.includes("mark1russell7/");
44
+ }
45
+ /**
46
+ * Extract mark1russell7 git refs from package.json dependencies
47
+ */
48
+ export function extractMark1Russell7Deps(dependencies) {
49
+ const refs = [];
50
+ for (const [, version] of Object.entries(dependencies)) {
51
+ if (isMark1Russell7Ref(version)) {
52
+ const ref = parseGitRef(version);
53
+ if (ref) {
54
+ refs.push(ref);
55
+ }
56
+ }
57
+ }
58
+ return refs;
59
+ }
60
+ /**
61
+ * Get the package name from a git ref
62
+ * Uses the repo name, optionally scoped with @mark1russell7/
63
+ */
64
+ export function getPackageNameFromRef(ref) {
65
+ // For mark1russell7 repos, the package name is usually @mark1russell7/{repo}
66
+ // But some packages like "client" are unscoped
67
+ // We'll need to check the actual package.json to be sure
68
+ return ref.repo;
69
+ }
70
+ //# sourceMappingURL=ref-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref-parser.js","sourceRoot":"","sources":["../../src/git/ref-parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,+BAA+B;IAC/B,YAAY;IACZ,qCAAqC;IACrC,gCAAgC;IAChC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAE/D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;IAEzC,OAAO;QACL,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,IAAK;QACX,KAAK,EAAE,KAAM;QACb,IAAI,EAAE,IAAK;QACX,GAAG,EAAE,GAAI;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,OAAO,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,YAAoC;IAEpC,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACvD,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,6EAA6E;IAC7E,+CAA+C;IAC/C,yDAAyD;IACzD,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @procedures/lib
3
+ *
4
+ * Library management procedures for the workspace - scan, new, audit, rename.
5
+ */
6
+ export * from "./module.js";
7
+ export * from "./types.js";
8
+ export { libScan, libRename, libNew, libAudit, } from "./procedures/lib/index.js";
9
+ export { ecosystemProcedures, EcosystemProceduresInputSchema, } from "./procedures/ecosystem/index.js";
10
+ export type { EcosystemProceduresInput, EcosystemProceduresOutput, ProcedureInfo, PackageProcedures, } from "./procedures/ecosystem/index.js";
11
+ export { buildDAGNodes, filterDAGFromRoot, getAncestors, getDescendants, buildLeveledDAG, getTopologicalOrder, visualizeDAG, executeDAG, executeDAGSequential, createProcessor, } from "./dag/index.js";
12
+ export { parseGitRef, isGitRef, isMark1Russell7Ref, extractMark1Russell7Deps, getPackageNameFromRef, } from "./git/index.js";
13
+ export { CLI_GLOBAL_FLAGS, findGlobalFlag, type CliGlobalFlag } from "./cli-flags.js";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,OAAO,EACP,SAAS,EACT,MAAM,EACN,QAAQ,GACT,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,mBAAmB,EACnB,8BAA8B,GAC/B,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,wBAAwB,EACxB,yBAAyB,EACzB,aAAa,EACb,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @procedures/lib
3
+ *
4
+ * Library management procedures for the workspace - scan, new, audit, rename.
5
+ */
6
+ export * from "./module.js";
7
+ // Re-export types
8
+ export * from "./types.js";
9
+ // Re-export procedures
10
+ export { libScan, libRename, libNew, libAudit, } from "./procedures/lib/index.js";
11
+ // Re-export ecosystem procedures
12
+ export { ecosystemProcedures, EcosystemProceduresInputSchema, } from "./procedures/ecosystem/index.js";
13
+ // Re-export DAG utilities (ecosystem-specific)
14
+ export { buildDAGNodes, filterDAGFromRoot, getAncestors, getDescendants, buildLeveledDAG, getTopologicalOrder, visualizeDAG, executeDAG, executeDAGSequential, createProcessor, } from "./dag/index.js";
15
+ // Re-export git utilities
16
+ export { parseGitRef, isGitRef, isMark1Russell7Ref, extractMark1Russell7Deps, getPackageNameFromRef, } from "./git/index.js";
17
+ // The global flags of the mark CLI (also at "@procedures/lib/cli-flags", with no side effects)
18
+ export { CLI_GLOBAL_FLAGS, findGlobalFlag } from "./cli-flags.js";
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAE5B,kBAAkB;AAClB,cAAc,YAAY,CAAC;AAE3B,uBAAuB;AACvB,OAAO,EACL,OAAO,EACP,SAAS,EACT,MAAM,EACN,QAAQ,GACT,MAAM,2BAA2B,CAAC;AAEnC,iCAAiC;AACjC,OAAO,EACL,mBAAmB,EACnB,8BAA8B,GAC/B,MAAM,iCAAiC,CAAC;AAQzC,+CAA+C;AAC/C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,0BAA0B;AAC1B,OAAO,EACL,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,+FAA+F;AAC/F,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAsB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Module (no side effects): the procedures of this package as data, for `createRegistry()`.
3
+ *
4
+ * Procedure Registration for lib operations
5
+ *
6
+ * This is the canonical home for lib.* procedures.
7
+ * client-cli no longer registers these to avoid duplicates.
8
+ */
9
+ import { type ProcedureModule, type ProcedureRegistry } from "@procedures/client";
10
+ /**
11
+ * The module of this package, for `createRegistry()`: its procedures as data. Importing this
12
+ * file registers nothing. (`register.ts` registers the same procedures in the global registry.)
13
+ */
14
+ export declare const libModule: ProcedureModule;
15
+ export default libModule;
16
+ /**
17
+ * This function registers the procedures of @procedures/lib, and of the modules that it requires, in
18
+ * a registry. The default is the global registry. Importing this file registers nothing: the
19
+ * `./register` entry starts this function (ARCHITECTURE-PROPOSALS-2026-10, P9).
20
+ */
21
+ export declare function registerLibProcedures(registry?: ProcedureRegistry): void;
22
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAA4D,KAAK,eAAe,EAAuC,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAmMjL;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,eAYG,CAAC;eAEb,SAAS;AAExB;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,GAAE,iBAAsC,GAAG,IAAI,CAE5F"}
package/dist/module.js ADDED
@@ -0,0 +1,180 @@
1
+ /**
2
+ * Module (no side effects): the procedures of this package as data, for `createRegistry()`.
3
+ *
4
+ * Procedure Registration for lib operations
5
+ *
6
+ * This is the canonical home for lib.* procedures.
7
+ * client-cli no longer registers these to avoid duplicates.
8
+ */
9
+ import { createProcedure, zodAdapter, RUNS_REFS_TAG, defineModule, PROCEDURE_REGISTRY, registerModules } from "@procedures/client";
10
+ import gitModule from "@procedures/git/module";
11
+ import fsModule from "@procedures/fs/module";
12
+ import { libScan, libRename, libNew, libAudit, } from "./procedures/lib/index.js";
13
+ import { ecosystemProcedures, EcosystemProceduresInputSchema, EcosystemProceduresOutputSchema, } from "./procedures/ecosystem/index.js";
14
+ import { dagTraverse } from "./procedures/dag/index.js";
15
+ import { coreCatch } from "./procedures/core/index.js";
16
+ import { LibScanInputSchema, LibRenameInputSchema, LibNewInputSchema, LibAuditInputSchema, DagTraverseInputSchema, CoreCatchInputSchema, LibScanOutputSchema, LibRenameOutputSchema, LibNewOutputSchema, LibAuditOutputSchema, DagTraverseOutputSchema, CoreCatchOutputSchema, } from "./types.js";
17
+ // =============================================================================
18
+ // lib.* Procedures
19
+ // =============================================================================
20
+ const libScanProcedure = createProcedure()
21
+ .path(["lib", "scan"])
22
+ .input(zodAdapter(LibScanInputSchema))
23
+ .output(zodAdapter(LibScanOutputSchema))
24
+ .meta({
25
+ description: "Scan for packages in the git directory",
26
+ calls: ["fs.readdir", "fs.read.json", "git.status", "git.remote"],
27
+ effects: { reads: ["fs"], writes: [] },
28
+ args: [],
29
+ shorts: {},
30
+ output: "json",
31
+ })
32
+ .handler(async (input, ctx) => {
33
+ return libScan(input, ctx);
34
+ })
35
+ .build();
36
+ const libRenameProcedure = createProcedure()
37
+ .path(["lib", "rename"])
38
+ .input(zodAdapter(LibRenameInputSchema))
39
+ .output(zodAdapter(LibRenameOutputSchema))
40
+ .meta({
41
+ description: "Rename a package across the ecosystem",
42
+ calls: ["fs.glob", "fs.read.json", "fs.write", "fs.exists"],
43
+ // It rewrites package.json files and TypeScript imports of the whole workspace
44
+ effects: { reads: ["fs"], writes: ["fs"] },
45
+ args: ["oldName", "newName"],
46
+ shorts: { dryRun: "n" },
47
+ output: "json",
48
+ })
49
+ .handler(async (input, ctx) => {
50
+ return libRename(input, ctx);
51
+ })
52
+ .build();
53
+ const libNewProcedure = createProcedure()
54
+ .path(["lib", "new"])
55
+ .input(zodAdapter(LibNewInputSchema))
56
+ .output(zodAdapter(LibNewOutputSchema))
57
+ .meta({
58
+ description: "Create a new package in the ecosystem",
59
+ calls: ["shell.run", "fs.exists", "fs.mkdir", "fs.write", "fs.read.json"],
60
+ // It starts the cue-config CLI from the node_modules of the workspace: code of the project,
61
+ // so it writes process. That CLI writes only files of the new package folder. An existing
62
+ // folder is an error, so the procedure overwrites nothing.
63
+ effects: { reads: ["fs"], writes: ["fs", "process"], destructive: false },
64
+ args: ["name"],
65
+ shorts: { dryRun: "n" },
66
+ output: "json",
67
+ })
68
+ .handler(async (input, ctx) => {
69
+ return libNew(input, ctx);
70
+ })
71
+ .build();
72
+ const libAuditProcedure = createProcedure()
73
+ .path(["lib", "audit"])
74
+ .input(zodAdapter(LibAuditInputSchema))
75
+ .output(zodAdapter(LibAuditOutputSchema))
76
+ .meta({
77
+ description: "Audit ecosystem packages for issues",
78
+ calls: ["fs.readdir", "fs.read.json", "git.status", "git.remote", "fs.exists", "fs.mkdir", "fs.write"],
79
+ // It reads the registry for the flag notices. With `fix`, it makes only the missing folders
80
+ // and files, so a second call changes nothing more.
81
+ effects: { reads: ["fs", "registry"], writes: ["fs"], destructive: false, idempotent: true },
82
+ args: [],
83
+ shorts: { fix: "f" },
84
+ output: "json",
85
+ })
86
+ .handler(async (input, ctx) => {
87
+ return libAudit(input, ctx);
88
+ })
89
+ .build();
90
+ // =============================================================================
91
+ // ecosystem.* Procedures
92
+ // =============================================================================
93
+ const ecosystemProceduresProcedure = createProcedure()
94
+ .path(["ecosystem", "procedures"])
95
+ .input(zodAdapter(EcosystemProceduresInputSchema))
96
+ .output(zodAdapter(EcosystemProceduresOutputSchema))
97
+ .meta({
98
+ description: "List all procedures across the ecosystem",
99
+ // It imports the register file of each package: that code runs, and it registers procedures
100
+ effects: { reads: ["fs", "registry"], writes: ["process", "registry"] },
101
+ args: [],
102
+ shorts: { namespace: "n" },
103
+ output: "json",
104
+ })
105
+ .handler(async (input, ctx) => {
106
+ return ecosystemProcedures(input, ctx);
107
+ })
108
+ .build();
109
+ // =============================================================================
110
+ // dag.* Procedures
111
+ // =============================================================================
112
+ const dagTraverseProcedure = createProcedure()
113
+ .path(["dag", "traverse"])
114
+ .input(zodAdapter(DagTraverseInputSchema))
115
+ .output(zodAdapter(DagTraverseOutputSchema))
116
+ .meta({
117
+ description: "Traverse ecosystem packages in dependency order, executing visit procedure for each",
118
+ // It runs the procedure refs of its input: a server with an expose rule limits what they call
119
+ tags: [RUNS_REFS_TAG],
120
+ // Its own effect is the scan of the workspace. The admission examines each visit call.
121
+ effects: { reads: ["fs"], writes: [] },
122
+ args: [],
123
+ shorts: { root: "r", concurrency: "j", continueOnError: "c", dryRun: "d" },
124
+ output: "streaming",
125
+ })
126
+ .handler(async (input, ctx) => {
127
+ return dagTraverse(input, ctx);
128
+ })
129
+ .build();
130
+ // =============================================================================
131
+ // core.* Procedures
132
+ // =============================================================================
133
+ const coreCatchProcedure = createProcedure()
134
+ .path(["core", "catch"])
135
+ .input(zodAdapter(CoreCatchInputSchema))
136
+ .output(zodAdapter(CoreCatchOutputSchema))
137
+ .meta({
138
+ description: "Execute a procedure with error handling",
139
+ // It runs the procedure refs of its input: a server with an expose rule limits what they call
140
+ tags: [RUNS_REFS_TAG],
141
+ // Control flow: no effects of its own. The admission examines each nested call.
142
+ effects: { reads: [], writes: [] },
143
+ args: [],
144
+ shorts: {},
145
+ output: "json",
146
+ })
147
+ .handler(async (input, ctx) => {
148
+ return coreCatch(input, ctx);
149
+ })
150
+ .build();
151
+ // =============================================================================
152
+ // Registration
153
+ // =============================================================================
154
+ /**
155
+ * The module of this package, for `createRegistry()`: its procedures as data. Importing this
156
+ * file registers nothing. (`register.ts` registers the same procedures in the global registry.)
157
+ */
158
+ export const libModule = defineModule("@procedures/lib", [
159
+ // lib.* procedures (canonical home)
160
+ libScanProcedure,
161
+ libRenameProcedure,
162
+ libNewProcedure,
163
+ libAuditProcedure,
164
+ // ecosystem.* procedures
165
+ ecosystemProceduresProcedure,
166
+ // dag.* procedures (canonical home)
167
+ dagTraverseProcedure,
168
+ // core.* procedures
169
+ coreCatchProcedure,
170
+ ], [fsModule, gitModule]);
171
+ export default libModule;
172
+ /**
173
+ * This function registers the procedures of @procedures/lib, and of the modules that it requires, in
174
+ * a registry. The default is the global registry. Importing this file registers nothing: the
175
+ * `./register` entry starts this function (ARCHITECTURE-PROPOSALS-2026-10, P9).
176
+ */
177
+ export function registerLibProcedures(registry = PROCEDURE_REGISTRY) {
178
+ registerModules(registry, [libModule]);
179
+ }
180
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * core.catch procedure
3
+ *
4
+ * Wraps a procedure execution with error handling.
5
+ * The `try` procedure ref should use `$when: "catch"` so it's not
6
+ * executed during hydration but instead by this procedure.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * {
11
+ * $proc: ["core", "catch"],
12
+ * input: {
13
+ * try: {
14
+ * $proc: ["git", "commit"],
15
+ * input: { message: "auto" },
16
+ * $when: "catch" // Defer execution to catch procedure
17
+ * },
18
+ * handler: {
19
+ * $proc: ["core", "identity"],
20
+ * input: { value: { continue: true } },
21
+ * $when: "catch"
22
+ * }
23
+ * }
24
+ * }
25
+ * ```
26
+ */
27
+ import type { ProcedureContext } from "@procedures/client";
28
+ import type { CoreCatchInput, CoreCatchOutput } from "../../types.js";
29
+ /**
30
+ * Execute a procedure with error handling
31
+ */
32
+ export declare function coreCatch(input: CoreCatchInput, ctx: ProcedureContext): Promise<CoreCatchOutput>;
33
+ //# sourceMappingURL=catch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../src/procedures/core/catch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,oBAAoB,CAAC;AAS1E,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtE;;GAEG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,cAAc,EACrB,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,eAAe,CAAC,CAiG1B"}