@synctek/forgeos 2.0.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 (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +386 -0
  3. package/dist/cli/commands/analyze.d.ts +14 -0
  4. package/dist/cli/commands/analyze.d.ts.map +1 -0
  5. package/dist/cli/commands/analyze.js +94 -0
  6. package/dist/cli/commands/analyze.js.map +1 -0
  7. package/dist/cli/commands/build.d.ts +11 -0
  8. package/dist/cli/commands/build.d.ts.map +1 -0
  9. package/dist/cli/commands/build.js +86 -0
  10. package/dist/cli/commands/build.js.map +1 -0
  11. package/dist/cli/commands/changeset.d.ts +13 -0
  12. package/dist/cli/commands/changeset.d.ts.map +1 -0
  13. package/dist/cli/commands/changeset.js +174 -0
  14. package/dist/cli/commands/changeset.js.map +1 -0
  15. package/dist/cli/commands/evidence.d.ts +12 -0
  16. package/dist/cli/commands/evidence.d.ts.map +1 -0
  17. package/dist/cli/commands/evidence.js +94 -0
  18. package/dist/cli/commands/evidence.js.map +1 -0
  19. package/dist/cli/commands/federation.d.ts +13 -0
  20. package/dist/cli/commands/federation.d.ts.map +1 -0
  21. package/dist/cli/commands/federation.js +127 -0
  22. package/dist/cli/commands/federation.js.map +1 -0
  23. package/dist/cli/commands/gate.d.ts +15 -0
  24. package/dist/cli/commands/gate.d.ts.map +1 -0
  25. package/dist/cli/commands/gate.js +178 -0
  26. package/dist/cli/commands/gate.js.map +1 -0
  27. package/dist/cli/commands/initiative.d.ts +13 -0
  28. package/dist/cli/commands/initiative.d.ts.map +1 -0
  29. package/dist/cli/commands/initiative.js +130 -0
  30. package/dist/cli/commands/initiative.js.map +1 -0
  31. package/dist/cli/commands/mind.d.ts +16 -0
  32. package/dist/cli/commands/mind.d.ts.map +1 -0
  33. package/dist/cli/commands/mind.js +139 -0
  34. package/dist/cli/commands/mind.js.map +1 -0
  35. package/dist/cli/commands/outcome.d.ts +12 -0
  36. package/dist/cli/commands/outcome.d.ts.map +1 -0
  37. package/dist/cli/commands/outcome.js +85 -0
  38. package/dist/cli/commands/outcome.js.map +1 -0
  39. package/dist/cli/commands/project.d.ts +13 -0
  40. package/dist/cli/commands/project.d.ts.map +1 -0
  41. package/dist/cli/commands/project.js +128 -0
  42. package/dist/cli/commands/project.js.map +1 -0
  43. package/dist/cli/commands/review.d.ts +15 -0
  44. package/dist/cli/commands/review.d.ts.map +1 -0
  45. package/dist/cli/commands/review.js +167 -0
  46. package/dist/cli/commands/review.js.map +1 -0
  47. package/dist/cli/commands/score.d.ts +17 -0
  48. package/dist/cli/commands/score.d.ts.map +1 -0
  49. package/dist/cli/commands/score.js +168 -0
  50. package/dist/cli/commands/score.js.map +1 -0
  51. package/dist/cli/commands/session.d.ts +13 -0
  52. package/dist/cli/commands/session.d.ts.map +1 -0
  53. package/dist/cli/commands/session.js +133 -0
  54. package/dist/cli/commands/session.js.map +1 -0
  55. package/dist/cli/commands/trust.d.ts +16 -0
  56. package/dist/cli/commands/trust.d.ts.map +1 -0
  57. package/dist/cli/commands/trust.js +261 -0
  58. package/dist/cli/commands/trust.js.map +1 -0
  59. package/dist/cli/index.d.ts +19 -0
  60. package/dist/cli/index.d.ts.map +1 -0
  61. package/dist/cli/index.js +99 -0
  62. package/dist/cli/index.js.map +1 -0
  63. package/dist/cli/output.d.ts +48 -0
  64. package/dist/cli/output.d.ts.map +1 -0
  65. package/dist/cli/output.js +139 -0
  66. package/dist/cli/output.js.map +1 -0
  67. package/dist/client.d.ts +46 -0
  68. package/dist/client.d.ts.map +1 -0
  69. package/dist/client.js +146 -0
  70. package/dist/client.js.map +1 -0
  71. package/dist/handlers.d.ts +11 -0
  72. package/dist/handlers.d.ts.map +1 -0
  73. package/dist/handlers.js +424 -0
  74. package/dist/handlers.js.map +1 -0
  75. package/dist/http-server.d.ts +25 -0
  76. package/dist/http-server.d.ts.map +1 -0
  77. package/dist/http-server.js +246 -0
  78. package/dist/http-server.js.map +1 -0
  79. package/dist/index.d.ts +3 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +40 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/mcp/handlers.d.ts +11 -0
  84. package/dist/mcp/handlers.d.ts.map +1 -0
  85. package/dist/mcp/handlers.js +553 -0
  86. package/dist/mcp/handlers.js.map +1 -0
  87. package/dist/mcp/http-server.d.ts +25 -0
  88. package/dist/mcp/http-server.d.ts.map +1 -0
  89. package/dist/mcp/http-server.js +246 -0
  90. package/dist/mcp/http-server.js.map +1 -0
  91. package/dist/mcp/index.d.ts +3 -0
  92. package/dist/mcp/index.d.ts.map +1 -0
  93. package/dist/mcp/index.js +40 -0
  94. package/dist/mcp/index.js.map +1 -0
  95. package/dist/mcp/tools.d.ts +944 -0
  96. package/dist/mcp/tools.d.ts.map +1 -0
  97. package/dist/mcp/tools.js +531 -0
  98. package/dist/mcp/tools.js.map +1 -0
  99. package/dist/shared/client.d.ts +59 -0
  100. package/dist/shared/client.d.ts.map +1 -0
  101. package/dist/shared/client.js +171 -0
  102. package/dist/shared/client.js.map +1 -0
  103. package/dist/shared/errors.d.ts +25 -0
  104. package/dist/shared/errors.d.ts.map +1 -0
  105. package/dist/shared/errors.js +44 -0
  106. package/dist/shared/errors.js.map +1 -0
  107. package/dist/shared/types.d.ts +111 -0
  108. package/dist/shared/types.d.ts.map +1 -0
  109. package/dist/shared/types.js +10 -0
  110. package/dist/shared/types.js.map +1 -0
  111. package/dist/tools.d.ts +944 -0
  112. package/dist/tools.d.ts.map +1 -0
  113. package/dist/tools.js +513 -0
  114. package/dist/tools.js.map +1 -0
  115. package/dist/trust/chain.d.ts +86 -0
  116. package/dist/trust/chain.d.ts.map +1 -0
  117. package/dist/trust/chain.js +176 -0
  118. package/dist/trust/chain.js.map +1 -0
  119. package/dist/trust/git-binding.d.ts +61 -0
  120. package/dist/trust/git-binding.d.ts.map +1 -0
  121. package/dist/trust/git-binding.js +133 -0
  122. package/dist/trust/git-binding.js.map +1 -0
  123. package/dist/trust/index.d.ts +20 -0
  124. package/dist/trust/index.d.ts.map +1 -0
  125. package/dist/trust/index.js +17 -0
  126. package/dist/trust/index.js.map +1 -0
  127. package/dist/trust/ledger.d.ts +144 -0
  128. package/dist/trust/ledger.d.ts.map +1 -0
  129. package/dist/trust/ledger.js +351 -0
  130. package/dist/trust/ledger.js.map +1 -0
  131. package/dist/trust/signing.d.ts +134 -0
  132. package/dist/trust/signing.d.ts.map +1 -0
  133. package/dist/trust/signing.js +249 -0
  134. package/dist/trust/signing.js.map +1 -0
  135. package/dist/trust/transmission.d.ts +129 -0
  136. package/dist/trust/transmission.d.ts.map +1 -0
  137. package/dist/trust/transmission.js +390 -0
  138. package/dist/trust/transmission.js.map +1 -0
  139. package/dist/types.d.ts +183 -0
  140. package/dist/types.d.ts.map +1 -0
  141. package/dist/types.js +3 -0
  142. package/dist/types.js.map +1 -0
  143. package/package.json +61 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../src/cli/commands/gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * `forge initiative` — Initiative lifecycle commands.
3
+ *
4
+ * Subcommands:
5
+ * forge initiative create --project <pid> --title <title> --description <desc> [--priority <p>]
6
+ * forge initiative list --project <pid>
7
+ * forge initiative show --project <pid> <id>
8
+ * forge initiative close --project <pid> <id>
9
+ */
10
+ import { Command } from "commander";
11
+ import { ForgeOSClient } from "../../shared/client.js";
12
+ export declare function registerInitiativeCommands(parent: Command, client: ForgeOSClient): void;
13
+ //# sourceMappingURL=initiative.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initiative.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/initiative.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAUvD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,aAAa,GACpB,IAAI,CAiKN"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * `forge initiative` — Initiative lifecycle commands.
3
+ *
4
+ * Subcommands:
5
+ * forge initiative create --project <pid> --title <title> --description <desc> [--priority <p>]
6
+ * forge initiative list --project <pid>
7
+ * forge initiative show --project <pid> <id>
8
+ * forge initiative close --project <pid> <id>
9
+ */
10
+ import { formatTable, formatJSON, formatSuccess, formatError, } from "../output.js";
11
+ export function registerInitiativeCommands(parent, client) {
12
+ const initiative = parent
13
+ .command("initiative")
14
+ .description("Manage initiatives");
15
+ // -------------------------------------------------------------------------
16
+ // initiative create
17
+ // -------------------------------------------------------------------------
18
+ initiative
19
+ .command("create")
20
+ .description("Create a new initiative")
21
+ .requiredOption("-p, --project <pid>", "Project ID")
22
+ .requiredOption("--title <title>", "Initiative title")
23
+ .requiredOption("--description <desc>", "What this initiative accomplishes")
24
+ .option("--priority <priority>", "Priority: low | medium | high | critical", "medium")
25
+ .option("--json", "Output raw JSON")
26
+ .action(async (opts) => {
27
+ try {
28
+ const data = (await client.post(`/api/projects/${opts.project}/initiatives`, {
29
+ title: opts.title,
30
+ description: opts.description,
31
+ priority: opts.priority,
32
+ }));
33
+ if (opts.json) {
34
+ console.log(formatJSON(data));
35
+ return;
36
+ }
37
+ console.log(formatSuccess(`Initiative created: ${data.id}`));
38
+ console.log(formatTable(["Field", "Value"], [
39
+ ["ID", data.id],
40
+ ["Title", data.title],
41
+ ["Priority", data.priority],
42
+ ["Status", data.status],
43
+ ]));
44
+ }
45
+ catch (err) {
46
+ console.error(formatError(err));
47
+ process.exit(1);
48
+ }
49
+ });
50
+ // -------------------------------------------------------------------------
51
+ // initiative list
52
+ // -------------------------------------------------------------------------
53
+ initiative
54
+ .command("list")
55
+ .description("List initiatives for a project")
56
+ .requiredOption("-p, --project <pid>", "Project ID")
57
+ .option("--json", "Output raw JSON")
58
+ .action(async (opts) => {
59
+ try {
60
+ const data = await client.get(`/api/projects/${opts.project}/initiatives`);
61
+ if (opts.json) {
62
+ console.log(formatJSON(data));
63
+ return;
64
+ }
65
+ const items = Array.isArray(data)
66
+ ? data
67
+ : (data.initiatives ?? []);
68
+ if (items.length === 0) {
69
+ console.log("No initiatives found.");
70
+ return;
71
+ }
72
+ console.log(formatTable(["ID", "Title", "Priority", "Status"], items.map((i) => [i.id, i.title, i.priority, i.status])));
73
+ }
74
+ catch (err) {
75
+ console.error(formatError(err));
76
+ process.exit(1);
77
+ }
78
+ });
79
+ // -------------------------------------------------------------------------
80
+ // initiative show <id>
81
+ // -------------------------------------------------------------------------
82
+ initiative
83
+ .command("show <id>")
84
+ .description("Show initiative details")
85
+ .requiredOption("-p, --project <pid>", "Project ID")
86
+ .option("--json", "Output raw JSON")
87
+ .action(async (id, opts) => {
88
+ try {
89
+ const data = (await client.get(`/api/projects/${opts.project}/initiatives/${id}`));
90
+ if (opts.json) {
91
+ console.log(formatJSON(data));
92
+ return;
93
+ }
94
+ console.log(formatTable(["Field", "Value"], [
95
+ ["ID", data.id],
96
+ ["Title", data.title],
97
+ ["Description", data.description ?? "—"],
98
+ ["Priority", data.priority],
99
+ ["Status", data.status],
100
+ ]));
101
+ }
102
+ catch (err) {
103
+ console.error(formatError(err));
104
+ process.exit(1);
105
+ }
106
+ });
107
+ // -------------------------------------------------------------------------
108
+ // initiative close <id>
109
+ // -------------------------------------------------------------------------
110
+ initiative
111
+ .command("close <id>")
112
+ .description("Close an initiative")
113
+ .requiredOption("-p, --project <pid>", "Project ID")
114
+ .option("--json", "Output raw JSON")
115
+ .action(async (id, opts) => {
116
+ try {
117
+ const data = (await client.patch(`/api/projects/${opts.project}/initiatives/${id}`, { status: "closed" }));
118
+ if (opts.json) {
119
+ console.log(formatJSON(data));
120
+ return;
121
+ }
122
+ console.log(formatSuccess(`Initiative ${id} closed.`));
123
+ }
124
+ catch (err) {
125
+ console.error(formatError(err));
126
+ process.exit(1);
127
+ }
128
+ });
129
+ }
130
+ //# sourceMappingURL=initiative.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initiative.js","sourceRoot":"","sources":["../../../src/cli/commands/initiative.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * `forge mind` — SharedMind operations.
3
+ *
4
+ * Subcommands:
5
+ * forge mind observe --project <pid> --domain <domain> --content <content> --type <type>
6
+ * forge mind query --project <pid> --domain <domain> [--type <type>]
7
+ * forge mind consolidate --project <pid> --domain <domain>
8
+ * forge mind status --project <pid>
9
+ *
10
+ * The "team" identifier used by the engine API is derived from the project ID.
11
+ * Users interact with --project; the CLI maps to /api/shared-mind/{team}/...
12
+ */
13
+ import { Command } from "commander";
14
+ import { ForgeOSClient } from "../../shared/client.js";
15
+ export declare function registerMindCommands(parent: Command, client: ForgeOSClient): void;
16
+ //# sourceMappingURL=mind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mind.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAUvD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,aAAa,GACpB,IAAI,CAyJN"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * `forge mind` — SharedMind operations.
3
+ *
4
+ * Subcommands:
5
+ * forge mind observe --project <pid> --domain <domain> --content <content> --type <type>
6
+ * forge mind query --project <pid> --domain <domain> [--type <type>]
7
+ * forge mind consolidate --project <pid> --domain <domain>
8
+ * forge mind status --project <pid>
9
+ *
10
+ * The "team" identifier used by the engine API is derived from the project ID.
11
+ * Users interact with --project; the CLI maps to /api/shared-mind/{team}/...
12
+ */
13
+ import { formatTable, formatJSON, formatSuccess, formatError, } from "../output.js";
14
+ export function registerMindCommands(parent, client) {
15
+ const mind = parent
16
+ .command("mind")
17
+ .description("SharedMind knowledge operations");
18
+ // -------------------------------------------------------------------------
19
+ // mind observe
20
+ // -------------------------------------------------------------------------
21
+ mind
22
+ .command("observe")
23
+ .description("Record an observation to the SharedMind")
24
+ .requiredOption("-p, --project <pid>", "Project ID (used as team ID)")
25
+ .requiredOption("--domain <domain>", "Knowledge domain (e.g. module name)")
26
+ .requiredOption("--content <content>", "What was observed")
27
+ .requiredOption("--type <type>", "Observation type: pattern | anti-pattern | fix-recipe | architecture-decision | lesson")
28
+ .option("--confidence <n>", "Confidence 0.0–1.0", "0.8")
29
+ .option("--tags <tags>", "Comma-separated tags", "")
30
+ .option("--json", "Output raw JSON")
31
+ .action(async (opts) => {
32
+ try {
33
+ const data = (await client.post(`/api/shared-mind/${opts.project}/observe`, {
34
+ domain: opts.domain,
35
+ observation_type: opts.type,
36
+ content: opts.content,
37
+ confidence: parseFloat(opts.confidence),
38
+ tags: opts.tags
39
+ ? opts.tags.split(",").map((s) => s.trim()).filter(Boolean)
40
+ : [],
41
+ source_agent: "forge_cli",
42
+ }));
43
+ if (opts.json) {
44
+ console.log(formatJSON(data));
45
+ return;
46
+ }
47
+ console.log(formatSuccess(`Observation recorded: ${data.id ?? "ok"}`));
48
+ console.log(formatTable(["Field", "Value"], [
49
+ ["ID", data.id ?? "—"],
50
+ ["Domain", data.domain ?? opts.domain],
51
+ ["Type", data.observation_type ?? opts.type],
52
+ ["Confidence", String(data.confidence ?? opts.confidence)],
53
+ ]));
54
+ }
55
+ catch (err) {
56
+ console.error(formatError(err));
57
+ process.exit(1);
58
+ }
59
+ });
60
+ // -------------------------------------------------------------------------
61
+ // mind query
62
+ // -------------------------------------------------------------------------
63
+ mind
64
+ .command("query")
65
+ .description("Query the SharedMind for patterns and lessons")
66
+ .requiredOption("-p, --project <pid>", "Project ID (used as team ID)")
67
+ .requiredOption("--domain <domain>", "Domain to query")
68
+ .option("--type <type>", "Filter by observation type")
69
+ .option("--context <ctx>", "Search context / keywords")
70
+ .option("--json", "Output raw JSON")
71
+ .action(async (opts) => {
72
+ try {
73
+ const params = {};
74
+ if (opts.domain)
75
+ params.domain = opts.domain;
76
+ if (opts.type)
77
+ params.observation_type = opts.type;
78
+ if (opts.context)
79
+ params.context = opts.context;
80
+ const data = await client.get(`/api/shared-mind/${opts.project}/query`, params);
81
+ if (opts.json) {
82
+ console.log(formatJSON(data));
83
+ return;
84
+ }
85
+ console.log(formatJSON(data));
86
+ }
87
+ catch (err) {
88
+ console.error(formatError(err));
89
+ process.exit(1);
90
+ }
91
+ });
92
+ // -------------------------------------------------------------------------
93
+ // mind consolidate
94
+ // -------------------------------------------------------------------------
95
+ mind
96
+ .command("consolidate")
97
+ .description("Consolidate observations into patterns for a domain")
98
+ .requiredOption("-p, --project <pid>", "Project ID (used as team ID)")
99
+ .requiredOption("--domain <domain>", "Domain to consolidate")
100
+ .option("--json", "Output raw JSON")
101
+ .action(async (opts) => {
102
+ try {
103
+ const data = await client.post(`/api/shared-mind/${opts.project}/consolidate`, { domain: opts.domain });
104
+ if (opts.json) {
105
+ console.log(formatJSON(data));
106
+ return;
107
+ }
108
+ console.log(formatSuccess("Consolidation complete."));
109
+ console.log(formatJSON(data));
110
+ }
111
+ catch (err) {
112
+ console.error(formatError(err));
113
+ process.exit(1);
114
+ }
115
+ });
116
+ // -------------------------------------------------------------------------
117
+ // mind status
118
+ // -------------------------------------------------------------------------
119
+ mind
120
+ .command("status")
121
+ .description("Show SharedMind status for a project")
122
+ .requiredOption("-p, --project <pid>", "Project ID (used as team ID)")
123
+ .option("--json", "Output raw JSON")
124
+ .action(async (opts) => {
125
+ try {
126
+ const data = await client.get(`/api/shared-mind/${opts.project}/status`);
127
+ if (opts.json) {
128
+ console.log(formatJSON(data));
129
+ return;
130
+ }
131
+ console.log(formatJSON(data));
132
+ }
133
+ catch (err) {
134
+ console.error(formatError(err));
135
+ process.exit(1);
136
+ }
137
+ });
138
+ }
139
+ //# sourceMappingURL=mind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mind.js","sourceRoot":"","sources":["../../../src/cli/commands/mind.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * `forge outcome` — Quality outcome recording.
3
+ *
4
+ * Subcommands:
5
+ * forge outcome record --project <pid> --changeset <cid>
6
+ * --outcome <success|regression|rollback>
7
+ * [--modules m1,m2] [--details <text>]
8
+ */
9
+ import { Command } from "commander";
10
+ import { ForgeOSClient } from "../../shared/client.js";
11
+ export declare function registerOutcomeCommands(parent: Command, client: ForgeOSClient): void;
12
+ //# sourceMappingURL=outcome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outcome.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/outcome.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAsBvD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,aAAa,GACpB,IAAI,CA4FN"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * `forge outcome` — Quality outcome recording.
3
+ *
4
+ * Subcommands:
5
+ * forge outcome record --project <pid> --changeset <cid>
6
+ * --outcome <success|regression|rollback>
7
+ * [--modules m1,m2] [--details <text>]
8
+ */
9
+ import { formatTable, formatJSON, formatSuccess, formatWarning, formatError, green, yellow, red, } from "../output.js";
10
+ function outcomeColor(outcome) {
11
+ switch (outcome.toLowerCase()) {
12
+ case "success": return green(outcome);
13
+ case "regression": return yellow(outcome);
14
+ case "rollback": return red(outcome);
15
+ default: return outcome;
16
+ }
17
+ }
18
+ export function registerOutcomeCommands(parent, client) {
19
+ const outcome = parent
20
+ .command("outcome")
21
+ .description("Record quality outcomes for changesets");
22
+ // -------------------------------------------------------------------------
23
+ // outcome record
24
+ // -------------------------------------------------------------------------
25
+ outcome
26
+ .command("record")
27
+ .description("Record a quality outcome (success, regression, or rollback)")
28
+ .requiredOption("-p, --project <pid>", "Project ID")
29
+ .requiredOption("--changeset <cid>", "Changeset ID")
30
+ .requiredOption("--outcome <outcome>", "Outcome type: success | regression | rollback")
31
+ .option("--modules <modules>", "Comma-separated affected modules", "")
32
+ .option("--details <details>", "Additional outcome details")
33
+ .option("--json", "Output raw JSON")
34
+ .action(async (opts) => {
35
+ try {
36
+ const validOutcomes = ["success", "regression", "rollback"];
37
+ if (!validOutcomes.includes(opts.outcome.toLowerCase())) {
38
+ console.error(formatError(new Error(`Invalid outcome "${opts.outcome}". Must be one of: ${validOutcomes.join(", ")}`)));
39
+ process.exit(1);
40
+ }
41
+ const body = {
42
+ changeset_id: opts.changeset,
43
+ outcome: opts.outcome,
44
+ modules_affected: opts.modules
45
+ ? opts.modules.split(",").map((s) => s.trim()).filter(Boolean)
46
+ : [],
47
+ };
48
+ if (opts.details)
49
+ body.details = opts.details;
50
+ const data = await client.post(`/api/projects/${opts.project}/outcomes`, body);
51
+ if (opts.json) {
52
+ console.log(formatJSON(data));
53
+ return;
54
+ }
55
+ console.log(formatSuccess("Outcome recorded."));
56
+ console.log(formatTable(["Field", "Value"], [
57
+ ["Project", opts.project],
58
+ ["Changeset", opts.changeset],
59
+ ["Outcome", outcomeColor(opts.outcome)],
60
+ [
61
+ "Modules",
62
+ opts.modules
63
+ ? opts.modules
64
+ .split(",")
65
+ .map((s) => s.trim())
66
+ .filter(Boolean)
67
+ .join(", ") || "—"
68
+ : "—",
69
+ ],
70
+ ["Details", opts.details ?? "—"],
71
+ ]));
72
+ if (opts.outcome.toLowerCase() === "regression") {
73
+ console.log(formatWarning("Regression recorded — consider opening a new initiative to address it."));
74
+ }
75
+ if (opts.outcome.toLowerCase() === "rollback") {
76
+ console.log(formatWarning("Rollback recorded — changeset was reverted in production."));
77
+ }
78
+ }
79
+ catch (err) {
80
+ console.error(formatError(err));
81
+ process.exit(1);
82
+ }
83
+ });
84
+ }
85
+ //# sourceMappingURL=outcome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outcome.js","sourceRoot":"","sources":["../../../src/cli/commands/outcome.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * `forge project` — Project management commands.
3
+ *
4
+ * Subcommands:
5
+ * forge project create --name <name> [--description <desc>] [--platform <platform>]
6
+ * forge project list
7
+ * forge project show <id>
8
+ * forge project delete <id>
9
+ */
10
+ import { Command } from "commander";
11
+ import { ForgeOSClient } from "../../shared/client.js";
12
+ export declare function registerProjectCommands(parent: Command, client: ForgeOSClient): void;
13
+ //# sourceMappingURL=project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/project.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAUvD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,aAAa,GACpB,IAAI,CAmJN"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * `forge project` — Project management commands.
3
+ *
4
+ * Subcommands:
5
+ * forge project create --name <name> [--description <desc>] [--platform <platform>]
6
+ * forge project list
7
+ * forge project show <id>
8
+ * forge project delete <id>
9
+ */
10
+ import { formatTable, formatJSON, formatSuccess, formatError, } from "../output.js";
11
+ export function registerProjectCommands(parent, client) {
12
+ const project = parent
13
+ .command("project")
14
+ .description("Manage ForgeOS projects");
15
+ // -------------------------------------------------------------------------
16
+ // project create
17
+ // -------------------------------------------------------------------------
18
+ project
19
+ .command("create")
20
+ .description("Create a new project")
21
+ .requiredOption("--name <name>", "Project name")
22
+ .option("--description <desc>", "Project description")
23
+ .option("--platform <platform>", "Target platform: web | mobile | api | cli | desktop | other")
24
+ .option("--json", "Output raw JSON")
25
+ .action(async (opts) => {
26
+ try {
27
+ const body = { name: opts.name };
28
+ if (opts.description)
29
+ body.description = opts.description;
30
+ if (opts.platform)
31
+ body.platform = opts.platform;
32
+ const data = (await client.post("/api/projects", body));
33
+ if (opts.json) {
34
+ console.log(formatJSON(data));
35
+ return;
36
+ }
37
+ console.log(formatSuccess(`Project created: ${data.id}`));
38
+ console.log(formatTable(["Field", "Value"], [
39
+ ["ID", data.id],
40
+ ["Name", data.name],
41
+ ["Platform", data.platform ?? "—"],
42
+ ]));
43
+ }
44
+ catch (err) {
45
+ console.error(formatError(err));
46
+ process.exit(1);
47
+ }
48
+ });
49
+ // -------------------------------------------------------------------------
50
+ // project list
51
+ // -------------------------------------------------------------------------
52
+ project
53
+ .command("list")
54
+ .description("List all projects")
55
+ .option("--json", "Output raw JSON")
56
+ .action(async (opts) => {
57
+ try {
58
+ const data = (await client.get("/api/projects"));
59
+ if (opts.json) {
60
+ console.log(formatJSON(data));
61
+ return;
62
+ }
63
+ const projects = data.projects ?? (Array.isArray(data) ? data : []);
64
+ if (projects.length === 0) {
65
+ console.log("No projects found.");
66
+ return;
67
+ }
68
+ console.log(formatTable(["ID", "Name", "Platform", "Shadow Mode"], projects.map((p) => [
69
+ p.id,
70
+ p.name,
71
+ p.platform ?? "—",
72
+ p.shadow_mode ? "yes" : "no",
73
+ ])));
74
+ }
75
+ catch (err) {
76
+ console.error(formatError(err));
77
+ process.exit(1);
78
+ }
79
+ });
80
+ // -------------------------------------------------------------------------
81
+ // project show <id>
82
+ // -------------------------------------------------------------------------
83
+ project
84
+ .command("show <id>")
85
+ .description("Show project details")
86
+ .option("--json", "Output raw JSON")
87
+ .action(async (id, opts) => {
88
+ try {
89
+ const data = (await client.get(`/api/projects/${id}`));
90
+ if (opts.json) {
91
+ console.log(formatJSON(data));
92
+ return;
93
+ }
94
+ console.log(formatTable(["Field", "Value"], [
95
+ ["ID", data.id],
96
+ ["Name", data.name],
97
+ ["Platform", data.platform ?? "—"],
98
+ ["Shadow Mode", data.shadow_mode ? "yes" : "no"],
99
+ ]));
100
+ }
101
+ catch (err) {
102
+ console.error(formatError(err));
103
+ process.exit(1);
104
+ }
105
+ });
106
+ // -------------------------------------------------------------------------
107
+ // project delete <id>
108
+ // -------------------------------------------------------------------------
109
+ project
110
+ .command("delete <id>")
111
+ .description("Delete a project")
112
+ .option("--json", "Output raw JSON")
113
+ .action(async (id, opts) => {
114
+ try {
115
+ const data = await client.delete(`/api/projects/${id}`);
116
+ if (opts.json) {
117
+ console.log(formatJSON(data));
118
+ return;
119
+ }
120
+ console.log(formatSuccess(`Project ${id} deleted.`));
121
+ }
122
+ catch (err) {
123
+ console.error(formatError(err));
124
+ process.exit(1);
125
+ }
126
+ });
127
+ }
128
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/cli/commands/project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `forge review` — Review operations.
3
+ *
4
+ * Subcommands:
5
+ * forge review request --project <pid> --changeset <cid> --role <role>
6
+ * forge review submit --project <pid> --changeset <cid> --review <rid>
7
+ * --status <status> --notes <notes>
8
+ * forge review list --project <pid> --changeset <cid>
9
+ * forge review approve --project <pid> --changeset <cid> --review <rid>
10
+ * forge review block --project <pid> --changeset <cid> --review <rid> --reason <reason>
11
+ */
12
+ import { Command } from "commander";
13
+ import { ForgeOSClient } from "../../shared/client.js";
14
+ export declare function registerReviewCommands(parent: Command, client: ForgeOSClient): void;
15
+ //# sourceMappingURL=review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAqBvD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,aAAa,GACpB,IAAI,CA6LN"}