@warpgogol/forge 0.8.0 → 0.10.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 (55) hide show
  1. package/AGENTS.md +31 -2
  2. package/dist/bin/cli.js +0 -0
  3. package/dist/os/core/core.module.d.ts.map +1 -1
  4. package/dist/os/core/core.module.js +65 -0
  5. package/dist/os/core/core.module.js.map +1 -1
  6. package/dist/os/core/handlers/build.d.ts +16 -0
  7. package/dist/os/core/handlers/build.d.ts.map +1 -0
  8. package/dist/os/core/handlers/build.js +123 -0
  9. package/dist/os/core/handlers/build.js.map +1 -0
  10. package/dist/os/core/handlers/dev.d.ts +10 -0
  11. package/dist/os/core/handlers/dev.d.ts.map +1 -0
  12. package/dist/os/core/handlers/dev.js +102 -0
  13. package/dist/os/core/handlers/dev.js.map +1 -0
  14. package/dist/os/core/handlers/profile-resolve.d.ts +13 -0
  15. package/dist/os/core/handlers/profile-resolve.d.ts.map +1 -0
  16. package/dist/os/core/handlers/profile-resolve.js +65 -0
  17. package/dist/os/core/handlers/profile-resolve.js.map +1 -0
  18. package/dist/os/core/handlers/validate.d.ts +15 -0
  19. package/dist/os/core/handlers/validate.d.ts.map +1 -0
  20. package/dist/os/core/handlers/validate.js +120 -0
  21. package/dist/os/core/handlers/validate.js.map +1 -0
  22. package/dist/src/onboarding/doctor.d.ts +3 -0
  23. package/dist/src/onboarding/doctor.d.ts.map +1 -1
  24. package/dist/src/onboarding/doctor.js +34 -4
  25. package/dist/src/onboarding/doctor.js.map +1 -1
  26. package/dist/src/onboarding/invariant-engine.d.ts +17 -0
  27. package/dist/src/onboarding/invariant-engine.d.ts.map +1 -0
  28. package/dist/src/onboarding/invariant-engine.js +173 -0
  29. package/dist/src/onboarding/invariant-engine.js.map +1 -0
  30. package/dist/src/profiles/profile-schema.d.ts +53 -0
  31. package/dist/src/profiles/profile-schema.d.ts.map +1 -1
  32. package/dist/src/profiles/profile-schema.js +19 -1
  33. package/dist/src/profiles/profile-schema.js.map +1 -1
  34. package/dist/src/profiles/stack-profile.d.ts +15 -0
  35. package/dist/src/profiles/stack-profile.d.ts.map +1 -1
  36. package/dist/src/profiles/stack-profile.js +3 -0
  37. package/dist/src/profiles/stack-profile.js.map +1 -1
  38. package/package.json +60 -161
  39. package/profiles/editframe-html.yaml +15 -0
  40. package/skills/_shared/fo-pipeline-conventions.md +65 -0
  41. package/skills/fo/fo-add-tests/SKILL.md +3 -1
  42. package/skills/fo/fo-doc-audit/SKILL.md +2 -0
  43. package/skills/fo/fo-fix/SKILL.md +5 -3
  44. package/skills/fo/fo-idea-audit/SKILL.md +2 -0
  45. package/skills/fo/fo-idea-create-adr/SKILL.md +2 -0
  46. package/skills/fo/fo-idea-create-rfc/SKILL.md +2 -0
  47. package/skills/fo/fo-idea-enhance/SKILL.md +3 -1
  48. package/skills/fo/fo-idea-i-just-want-to-see-the-result/SKILL.md +10 -0
  49. package/skills/fo/fo-idea-implement/SKILL.md +3 -1
  50. package/skills/fo/fo-idea-plan/SKILL.md +3 -1
  51. package/skills/fo/fo-idea-status/SKILL.md +2 -0
  52. package/skills/fo/fo-review/SKILL.md +4 -2
  53. package/skills/fo/fo-session-retro/SKILL.md +185 -1
  54. package/skills/meta/forge-bootstrap/SKILL.md +27 -4
  55. package/skills/shared/windows-ai-tooling/SKILL.md +3 -1
package/AGENTS.md CHANGED
@@ -13,7 +13,7 @@ Portable governance skills and command modules extracted from site-kernel (RFC-0
13
13
 
14
14
  | Module | Commands | Source |
15
15
  | --- | --- | --- |
16
- | `forgeCoreModule` | `forge.create`, `forge.doctor`, `forge.upgrade`, `forge.agents.generate`, `forge.scaffold`, `forge.port.scaffold`, `forge.skill.validate`, `forge.skill.list`, `forge.port.validate`, `forge.profile.validate`, `docs.archive` | `os/core/` |
16
+ | `forgeCoreModule` | `forge.create`, `forge.doctor`, `forge.upgrade`, `forge.agents.generate`, `forge.scaffold`, `forge.port.scaffold`, `forge.skill.validate`, `forge.skill.list`, `forge.port.validate`, `forge.profile.validate`, `forge.dev`, `forge.build`, `forge.validate`, `docs.archive` | `os/core/` |
17
17
  | `forgeRfcModule` | `rfc.list`, `rfc.validate`, `rfc.create`, etc. | `os/rfc/` |
18
18
  | `forgeWorkflowModule` | `workflow.lint`, `workflow.list`, `workflow.amend.list` | `os/workflow/` |
19
19
  | `forgeNamingModule` | `naming.convention.lint` | `os/naming/` |
@@ -139,7 +139,7 @@ The following commands are domain-aware — they read domain fields from the sta
139
139
 
140
140
  - **`forge.profile.validate`** — validates profile YAML files under `packages/forge/profiles/` against the `forge/stack-profile@1` schema (including RFC-0638 domain fields). Supports `--id <profile-id>` to validate a single profile. Returns exit 1 if any profile is invalid.
141
141
  - **`forge.create`** — reads `domain`, `terminology`, `register`, and artifact-derived semantic bindings from the selected profile and writes them into `forge.yaml` (domain, terminology, bindings.commands) and `PREFERENCES.md` (register). When the profile has no domain fields, behavior is unchanged (software-domain fallback).
142
- - **`forge.doctor`** — reports domain info (domain, source, register, terminology, invariant count) as a `domain-info` check. Lists declared invariants as a `domain-invariants` check (reported-only, advisory). Runs `forge.profile.validate` as an advisory `profile-validate` check (warn status on failure, not gating shipped profiles are forge-internal). The `--strict` flag elevates `warn` to `fail` for `domain-invariants` and `profile-validate` checks. Nested AGENTS.md check runs for all domains — profile-driven workspace types replace hardcoded detection when present. Domain is resolved via a three-tier chain: `forge.yaml` `project.domain` → stack profile `domain` → default `software`.
142
+ - **`forge.doctor`** — reports domain info (domain, source, register, terminology, invariant count) as a `domain-info` check. Enforces profile invariants via the invariant engine as a `domain-invariants` check (RFC-0675) invariants with a `check` declaration are actively verified (`filename-pattern`, `file-contains`, `file-not-contains`); invariants without `check` remain advisory. Reports `fail` for error-severity violations, `warn` for warning-severity. The `--strict` flag elevates `warn` to `fail` for `domain-invariants` and `profile-validate` checks. `--json` includes `invariantViolations` array in the `domain-invariants` check. Runs `forge.profile.validate` as an advisory `profile-validate` check (warn status on failure, not gating — shipped profiles are forge-internal). Nested AGENTS.md check runs for all domains — profile-driven workspace types replace hardcoded detection when present. Domain is resolved via a three-tier chain: `forge.yaml` `project.domain` → stack profile `domain` → default `software`.
143
143
  - **`forge.agents.generate`** — loads `workspaceTypes[]` from the matching stack profile and passes them to `discoverWorkspaces` for profile-driven workspace type detection. When the profile has no `workspaceTypes`, falls back to hardcoded detection (astro.config → app, Dockerfile → service, else package).
144
144
 
145
145
  ### Per-domain AGENTS.md templates (RFC-0643)
@@ -303,3 +303,32 @@ When publishing `@warpgogol/forge`, npm resolves the auth token from `.npmrc` fi
303
303
  - **Golden fixture for `agents-generate`** — when adding or modifying sections in `agents-generate.ts`, the golden fixture `src/tests/fixtures/agents-generate-business-before.txt` MUST be updated to match the new generated output. The test `agents-generate-domain.test.ts` compares generated content against this fixture with `expect(content).toBe(goldenFixture)` — a mismatch fails the test.
304
304
  - **SKILL-17 brand pattern must be case-sensitive** — the brand regex in `skill-validate.ts` uses a `@`-lookbehind to allow `@warpgogol/<pkg>` npm-scope references in skill instruction lines. Making the regex case-insensitive (`/gi`) defeats the lookbehind and false-flags every `@warpgogol` import as a brand violation. Keep the regex case-sensitive (`/g` only) so the `@`-scope allowance works correctly.
305
305
  - **`vi.resetModules()` before `vi.doMock()` for Node builtins** — when mocking Node built-in modules (e.g. `node:child_process`) in vitest, `vi.resetModules()` MUST be called BEFORE `vi.doMock()`. Without `resetModules()` first, the module cache retains the original module and the mock is not applied on re-import via dynamic `import()`. After the test, call `vi.doUnmock()` and `vi.resetModules()` to restore. Discovered during `upgrade.test.ts` `--update-npm` mock testing.
306
+
307
+ ## RFC frontmatter: versionBump for prose-only policy RFCs
308
+
309
+ Prose-only policy RFCs (skill-text-only, no code/command/contract changes) MUST set `versionBump: none`, not `patch`. The `patch` value over-reports the SemVer impact — there is no runtime or API surface change. This was a recurring audit finding across RFC-0669, RFC-0670, RFC-0671, RFC-0672, and RFC-0673 (5 consecutive RFCs). Set `versionBump: none` at creation time for `kind: policy` RFCs that only modify `.md` skill files.
310
+
311
+ ## RFC frontmatter: file system responsibilities table
312
+
313
+ Skill-text-only RFCs MUST include `packages/forge/AGENTS.md` in the file system responsibilities table with the note "No change needed — documents skill infrastructure, not individual skill behavior." This preempts a recurring audit finding (5 consecutive RFCs). The `packages/forge/AGENTS.md` file documents skill infrastructure (sync paths, validator rules, import constraints), not individual skill behavior — so it never needs updating when a skill's text changes.
314
+
315
+ ## rfc.create title reuse
316
+
317
+ `rfc.create` may reuse the title from a previous invocation in the same session. After creating an RFC, always verify the generated filename matches the intended title before populating content. If the filename is wrong, delete the file and re-run `rfc.create` with the correct `--title`. Do not rename the file — the RFC ID is assigned by the command and must not be manually changed.
318
+
319
+ ## Profile-driven RFC conventions
320
+
321
+ All profile-driven RFCs (RFC-0674 onwards) MUST follow these conventions:
322
+
323
+ - **CLI flags**: every proposed command MUST support `--dry-run`, `--json`, and `--profile` flags. These are the standard Forge lifecycle flags.
324
+ - **Schema extensions**: all new profile schema fields MUST be optional (`z.optional()`) — existing profiles must continue to validate without changes.
325
+ - **No domain-specific logic in Forge core**: all behavior is driven by profile YAML declarations. Forge source must not import domain-specific packages or hardcode domain-specific rules.
326
+ - **File system responsibilities table**: every profile-driven RFC MUST list `packages/forge/src/profiles/profile-schema.ts` and `packages/forge/os/core/core.module.ts` in the table.
327
+
328
+ ## Workflow file placement
329
+
330
+ Workflow files MUST live only in `.agents/workflows/`. Do NOT duplicate workflow files in `.windsurf/workflows/` — `.windsurf/workflows/` is IDE-specific config that does not ship to new projects via `forge.create`. `.agents/workflows/` is the single source of truth for workflow definitions.
331
+
332
+ ## Workflow files vs skill content
333
+
334
+ IDE-specific workflow files (`.windsurf/workflows/`, `.devin/workflows/`) MUST NOT duplicate skill content. Skills (`packages/forge/skills/`) are the portable unit — they ship to every new project via `forge.create`. Workflow files are IDE-specific triggers that reference skills by name; they should not contain the protocol itself. If a workflow file grows beyond a trigger phrase + skill reference, move the content into the skill's `SKILL.md`.
package/dist/bin/cli.js CHANGED
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"core.module.d.ts","sourceRoot":"","sources":["../../../os/core/core.module.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAe7D,eAAO,MAAM,eAAe,EAAE,WAwb7B,CAAC"}
1
+ {"version":3,"file":"core.module.d.ts","sourceRoot":"","sources":["../../../os/core/core.module.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAe7D,eAAO,MAAM,eAAe,EAAE,WA8f7B,CAAC"}
@@ -16,6 +16,7 @@
16
16
  <item>RFC-0546: remove forge.init CLI registration; runInit() remains as internal primitive called by forge.create.</item>
17
17
  <item>RFC-0640: register forge.profile.validate command, add --strict flag to forge.doctor.</item>
18
18
  <item>RFC-0662: register forge.skill.knowledge.compact command for skill knowledge lifecycle compaction.</item>
19
+ <item>RFC-0674: register forge.dev, forge.build, forge.validate lifecycle commands.</item>
19
20
  </CHANGE_SUMMARY>
20
21
  */
21
22
  import { FORGE_SKILLS, discoverPackSkills, } from "../../src/registry.js";
@@ -33,6 +34,9 @@ export const forgeCoreModule = {
33
34
  const { runUpgrade } = await import("../../src/onboarding/upgrade.js");
34
35
  const { runCreate } = await import("../../src/onboarding/create.js");
35
36
  const { runProfileValidate } = await import("../../src/onboarding/profile-validate.js");
37
+ const { runDev } = await import("./handlers/dev.js");
38
+ const { runBuild } = await import("./handlers/build.js");
39
+ const { runValidate } = await import("./handlers/validate.js");
36
40
  const scaffoldWrapper = async (input, context) => {
37
41
  const result = runScaffold(input, context);
38
42
  const nextSteps = result.status === "pass"
@@ -253,6 +257,67 @@ export const forgeCoreModule = {
253
257
  cacheable: false,
254
258
  execute: profileValidateWrapper,
255
259
  });
260
+ // ── forge.dev (RFC-0674) ──────────────────────────────────────────────────
261
+ registry.registerCommand({
262
+ name: "forge.dev",
263
+ description: "Start the dev/preview server declared in the active stack profile. Use --dry-run to print the resolved command without executing.",
264
+ scope: "workspace",
265
+ supportsAllSites: false,
266
+ longRunning: true,
267
+ flags: {
268
+ "dry-run": {
269
+ kind: "boolean",
270
+ description: "Print the resolved dev server command without executing.",
271
+ },
272
+ profile: {
273
+ kind: "string",
274
+ description: "Override the active profile id.",
275
+ },
276
+ },
277
+ reads: ["forge.yaml", "packages/forge/profiles/*.yaml"],
278
+ cacheable: false,
279
+ execute: runDev,
280
+ });
281
+ // ── forge.build (RFC-0674) ────────────────────────────────────────────────
282
+ registry.registerCommand({
283
+ name: "forge.build",
284
+ description: "Execute produce commands for all artifacts declared in the active stack profile. Use --dry-run to print resolved commands.",
285
+ scope: "workspace",
286
+ supportsAllSites: false,
287
+ flags: {
288
+ "dry-run": {
289
+ kind: "boolean",
290
+ description: "Print resolved produce commands without executing.",
291
+ },
292
+ profile: {
293
+ kind: "string",
294
+ description: "Override the active profile id.",
295
+ },
296
+ },
297
+ reads: ["forge.yaml", "packages/forge/profiles/*.yaml"],
298
+ cacheable: false,
299
+ execute: runBuild,
300
+ });
301
+ // ── forge.validate (RFC-0674) ─────────────────────────────────────────────
302
+ registry.registerCommand({
303
+ name: "forge.validate",
304
+ description: "Execute validate commands for all artifacts declared in the active stack profile. Use --dry-run to print resolved commands.",
305
+ scope: "workspace",
306
+ supportsAllSites: false,
307
+ flags: {
308
+ "dry-run": {
309
+ kind: "boolean",
310
+ description: "Print resolved validate commands without executing.",
311
+ },
312
+ profile: {
313
+ kind: "string",
314
+ description: "Override the active profile id.",
315
+ },
316
+ },
317
+ reads: ["forge.yaml", "packages/forge/profiles/*.yaml"],
318
+ cacheable: false,
319
+ execute: runValidate,
320
+ });
256
321
  // ── forge.skill.knowledge.compact (RFC-0662) ──────────────────────────────
257
322
  const { runKnowledgeCompact } = await import("./handlers/knowledge-compact.js");
258
323
  registry.registerCommand({
@@ -1 +1 @@
1
- {"version":3,"file":"core.module.js","sourceRoot":"","sources":["../../../os/core/core.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.module.js","sourceRoot":"","sources":["../../../os/core/core.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ForgeCommandInput, ForgeCommandResult, ForgeRuntimeContext } from "../../../src/types.ts";
2
+ export interface ForgeBuildArtifactResult {
3
+ id: string;
4
+ command: string;
5
+ output?: string;
6
+ exitCode: number;
7
+ stdout: string;
8
+ stderr: string;
9
+ }
10
+ export interface ForgeBuildResult {
11
+ command: "forge.build";
12
+ profileId: string;
13
+ artifacts: ForgeBuildArtifactResult[];
14
+ }
15
+ export declare function runBuild(input: ForgeCommandInput, context: ForgeRuntimeContext): Promise<ForgeCommandResult<ForgeBuildResult>>;
16
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../os/core/handlers/build.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAK/B,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,wBAAwB,EAAE,CAAC;CACvC;AAED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAgH/C"}
@@ -0,0 +1,123 @@
1
+ /*
2
+ <MODULE_CONTRACT>
3
+ <purpose>forge.build — execute produce commands for all artifacts declared in the active stack profile. Supports --dry-run and --json.</purpose>
4
+ <non-goals>
5
+ <item>Do not implement dev or validate logic — those are separate handlers.</item>
6
+ <item>Do not import from @warpgogol/* — this module is portable.</item>
7
+ </non-goals>
8
+ </MODULE_CONTRACT>
9
+ <CHANGE_SUMMARY>
10
+ <item>RFC-0674: initial forge.build handler with profile resolution, --dry-run, and per-artifact execution.</item>
11
+ </CHANGE_SUMMARY>
12
+ */
13
+ import { exec } from "node:child_process";
14
+ import { promisify } from "node:util";
15
+ import { resolveActiveProfile, resolveLifecycleFlags } from "./profile-resolve.js";
16
+ const execAsync = promisify(exec);
17
+ export async function runBuild(input, context) {
18
+ const { workspaceRoot, logger } = context;
19
+ const { dryRun, profileIdOverride } = resolveLifecycleFlags(input, context);
20
+ const resolved = resolveActiveProfile(workspaceRoot, context.forgeRoot, profileIdOverride);
21
+ if (!resolved) {
22
+ return {
23
+ data: {
24
+ command: "forge.build",
25
+ profileId: "",
26
+ artifacts: [],
27
+ },
28
+ exitCode: 1,
29
+ summary: "No active profile found. Set `profile` in forge.yaml or use --profile <id>.",
30
+ nextSteps: [{ action: "Set profile in forge.yaml or use --profile <id>", kind: "required" }],
31
+ };
32
+ }
33
+ const { profile } = resolved;
34
+ if (!profile.artifacts || profile.artifacts.length === 0) {
35
+ return {
36
+ data: {
37
+ command: "forge.build",
38
+ profileId: profile.id,
39
+ artifacts: [],
40
+ },
41
+ exitCode: 1,
42
+ summary: `Profile ${profile.id} does not declare any artifacts.`,
43
+ nextSteps: [{ action: `Add artifacts section to profile ${profile.id}`, kind: "required" }],
44
+ };
45
+ }
46
+ if (dryRun) {
47
+ const commands = profile.artifacts
48
+ .filter((a) => a.produce)
49
+ .map((a) => ({ artifactId: a.id, command: a.produce.command, output: a.produce.output }));
50
+ logger.info(`[dry-run] forge.build — profile: ${profile.id}`);
51
+ for (const cmd of commands) {
52
+ logger.info(` ${cmd.artifactId}: ${cmd.command}`);
53
+ }
54
+ return {
55
+ data: {
56
+ command: "forge.build",
57
+ profileId: profile.id,
58
+ artifacts: commands.map((c) => ({
59
+ id: c.artifactId,
60
+ command: c.command,
61
+ output: c.output,
62
+ exitCode: 0,
63
+ stdout: "",
64
+ stderr: "",
65
+ })),
66
+ },
67
+ summary: `[dry-run] ${commands.length} produce command(s) resolved`,
68
+ };
69
+ }
70
+ const results = [];
71
+ let hasFailure = false;
72
+ for (const artifact of profile.artifacts) {
73
+ if (!artifact.produce) {
74
+ logger.warn(`Skipping artifact ${artifact.id}: no produce command declared`);
75
+ results.push({
76
+ id: artifact.id,
77
+ command: "",
78
+ exitCode: 0,
79
+ stdout: "",
80
+ stderr: "skipped: no produce command",
81
+ });
82
+ continue;
83
+ }
84
+ const cmd = artifact.produce.command;
85
+ try {
86
+ const { stdout, stderr } = await execAsync(cmd, { cwd: workspaceRoot });
87
+ results.push({
88
+ id: artifact.id,
89
+ command: cmd,
90
+ output: artifact.produce.output,
91
+ exitCode: 0,
92
+ stdout,
93
+ stderr,
94
+ });
95
+ logger.success(` ${artifact.id}: OK`);
96
+ }
97
+ catch (err) {
98
+ const e = err;
99
+ results.push({
100
+ id: artifact.id,
101
+ command: cmd,
102
+ output: artifact.produce.output,
103
+ exitCode: e.code ?? 1,
104
+ stdout: e.stdout ?? "",
105
+ stderr: e.stderr ?? e.message,
106
+ });
107
+ hasFailure = true;
108
+ logger.error(` ${artifact.id}: FAILED (exit ${e.code ?? 1})`);
109
+ }
110
+ }
111
+ return {
112
+ data: {
113
+ command: "forge.build",
114
+ profileId: profile.id,
115
+ artifacts: results,
116
+ },
117
+ exitCode: hasFailure ? 1 : 0,
118
+ summary: hasFailure
119
+ ? `forge.build: ${results.filter((r) => r.exitCode !== 0).length} artifact(s) failed`
120
+ : `forge.build: all ${results.length} artifact(s) succeeded`,
121
+ };
122
+ }
123
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../os/core/handlers/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAEF,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAMtC,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAiBlC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,KAAwB,EACxB,OAA4B;IAE5B,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC1C,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE5E,MAAM,QAAQ,GAAG,oBAAoB,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAC3F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,IAAI,EAAE;gBACJ,OAAO,EAAE,aAAa;gBACtB,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,EAAE;aACd;YACD,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,6EAA6E;YACtF,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,iDAAiD,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;SAC7F,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAE7B,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO;YACL,IAAI,EAAE;gBACJ,OAAO,EAAE,aAAa;gBACtB,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,SAAS,EAAE,EAAE;aACd;YACD,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,WAAW,OAAO,CAAC,EAAE,kCAAkC;YAChE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,oCAAoC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;SAC5F,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS;aAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,OAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9F,MAAM,CAAC,IAAI,CAAC,oCAAoC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,OAAO;YACL,IAAI,EAAE;gBACJ,OAAO,EAAE,aAAa;gBACtB,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC9B,EAAE,EAAE,CAAC,CAAC,UAAU;oBAChB,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,QAAQ,EAAE,CAAC;oBACX,MAAM,EAAE,EAAE;oBACV,MAAM,EAAE,EAAE;iBACX,CAAC,CAAC;aACJ;YACD,OAAO,EAAE,aAAa,QAAQ,CAAC,MAAM,8BAA8B;SACpE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAA+B,EAAE,CAAC;IAC/C,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,qBAAqB,QAAQ,CAAC,EAAE,+BAA+B,CAAC,CAAC;YAC7E,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,6BAA6B;aACtC,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,OAAO,EAAE,GAAG;gBACZ,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM;gBAC/B,QAAQ,EAAE,CAAC;gBACX,MAAM;gBACN,MAAM;aACP,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,GAA2E,CAAC;YACtF,OAAO,CAAC,IAAI,CAAC;gBACX,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,OAAO,EAAE,GAAG;gBACZ,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM;gBAC/B,QAAQ,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;gBACrB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE;gBACtB,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO;aAC9B,CAAC,CAAC;YACH,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,EAAE,kBAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE;YACJ,OAAO,EAAE,aAAa;YACtB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,SAAS,EAAE,OAAO;SACnB;QACD,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,OAAO,EAAE,UAAU;YACjB,CAAC,CAAC,gBAAgB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,MAAM,qBAAqB;YACrF,CAAC,CAAC,oBAAoB,OAAO,CAAC,MAAM,wBAAwB;KAC/D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ForgeCommandInput, ForgeCommandResult, ForgeRuntimeContext } from "../../../src/types.ts";
2
+ export interface ForgeDevResult {
3
+ command: "forge.dev";
4
+ profileId: string;
5
+ devServerCommand: string;
6
+ port?: number;
7
+ exitCode: number;
8
+ }
9
+ export declare function runDev(input: ForgeCommandInput, context: ForgeRuntimeContext): Promise<ForgeCommandResult<ForgeDevResult>>;
10
+ //# sourceMappingURL=dev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../../os/core/handlers/dev.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAG/B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,MAAM,CAC1B,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CA8F7C"}
@@ -0,0 +1,102 @@
1
+ /*
2
+ <MODULE_CONTRACT>
3
+ <purpose>forge.dev — start the dev/preview server declared in the active stack profile. Supports --dry-run to print the resolved command without executing.</purpose>
4
+ <non-goals>
5
+ <item>Do not implement build or validate logic — those are separate handlers.</item>
6
+ <item>Do not import from @warpgogol/* — this module is portable.</item>
7
+ </non-goals>
8
+ </MODULE_CONTRACT>
9
+ <CHANGE_SUMMARY>
10
+ <item>RFC-0674: initial forge.dev handler with profile resolution, --dry-run, and SIGINT handling.</item>
11
+ </CHANGE_SUMMARY>
12
+ */
13
+ import { spawn } from "node:child_process";
14
+ import { resolveActiveProfile, resolveLifecycleFlags } from "./profile-resolve.js";
15
+ export async function runDev(input, context) {
16
+ const { workspaceRoot, logger } = context;
17
+ const { dryRun, profileIdOverride } = resolveLifecycleFlags(input, context);
18
+ const resolved = resolveActiveProfile(workspaceRoot, context.forgeRoot, profileIdOverride);
19
+ if (!resolved) {
20
+ return {
21
+ data: {
22
+ command: "forge.dev",
23
+ profileId: "",
24
+ devServerCommand: "",
25
+ exitCode: 1,
26
+ },
27
+ exitCode: 1,
28
+ summary: "No active profile found. Set `profile` in forge.yaml or use --profile <id>.",
29
+ nextSteps: [{ action: "Set profile in forge.yaml or use --profile <id>", kind: "required" }],
30
+ };
31
+ }
32
+ const { profile } = resolved;
33
+ if (!profile.devServer) {
34
+ return {
35
+ data: {
36
+ command: "forge.dev",
37
+ profileId: profile.id,
38
+ devServerCommand: "",
39
+ exitCode: 1,
40
+ },
41
+ exitCode: 1,
42
+ summary: `Profile ${profile.id} does not declare a devServer.`,
43
+ nextSteps: [{ action: `Add devServer section to profile ${profile.id}`, kind: "required" }],
44
+ };
45
+ }
46
+ const { command, port } = profile.devServer;
47
+ if (dryRun) {
48
+ logger.info(`[dry-run] forge.dev — profile: ${profile.id}`);
49
+ logger.info(` command: ${command}`);
50
+ if (port)
51
+ logger.info(` port: ${port}`);
52
+ return {
53
+ data: {
54
+ command: "forge.dev",
55
+ profileId: profile.id,
56
+ devServerCommand: command,
57
+ port,
58
+ exitCode: 0,
59
+ },
60
+ summary: `[dry-run] ${command}`,
61
+ };
62
+ }
63
+ return new Promise((resolve) => {
64
+ const child = spawn(command, {
65
+ shell: true,
66
+ stdio: "inherit",
67
+ cwd: workspaceRoot,
68
+ });
69
+ const onSigint = () => {
70
+ child.kill("SIGINT");
71
+ };
72
+ process.once("SIGINT", onSigint);
73
+ child.on("close", (code) => {
74
+ process.removeListener("SIGINT", onSigint);
75
+ resolve({
76
+ data: {
77
+ command: "forge.dev",
78
+ profileId: profile.id,
79
+ devServerCommand: command,
80
+ port,
81
+ exitCode: code ?? 0,
82
+ },
83
+ summary: `forge.dev exited with code ${code ?? 0}`,
84
+ });
85
+ });
86
+ child.on("error", (err) => {
87
+ process.removeListener("SIGINT", onSigint);
88
+ resolve({
89
+ data: {
90
+ command: "forge.dev",
91
+ profileId: profile.id,
92
+ devServerCommand: command,
93
+ port,
94
+ exitCode: 1,
95
+ },
96
+ exitCode: 1,
97
+ summary: `forge.dev failed: ${err.message}`,
98
+ });
99
+ });
100
+ });
101
+ }
102
+ //# sourceMappingURL=dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../os/core/handlers/dev.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type StackProfile } from "../../../src/profiles/stack-profile.ts";
2
+ import type { ForgeCommandInput, ForgeRuntimeContext } from "../../../src/types.ts";
3
+ export interface ResolvedProfile {
4
+ profile: StackProfile;
5
+ profilePath: string;
6
+ }
7
+ export interface LifecycleFlags {
8
+ dryRun: boolean;
9
+ profileIdOverride?: string;
10
+ }
11
+ export declare function resolveLifecycleFlags(input: ForgeCommandInput, context: ForgeRuntimeContext): LifecycleFlags;
12
+ export declare function resolveActiveProfile(workspaceRoot: string, forgeRoot?: string, profileIdOverride?: string): ResolvedProfile | null;
13
+ //# sourceMappingURL=profile-resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-resolve.d.ts","sourceRoot":"","sources":["../../../../os/core/handlers/profile-resolve.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEpF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAuBD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,cAAc,CAMhB;AAED,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,MAAM,GACzB,eAAe,GAAG,IAAI,CAyBxB"}
@@ -0,0 +1,65 @@
1
+ /*
2
+ <MODULE_CONTRACT>
3
+ <purpose>Shared active profile resolution for lifecycle commands (forge.dev, forge.build, forge.validate). Reads forge.yaml, resolves the active profile id, loads the profile YAML, and returns the StackProfile or null.</purpose>
4
+ <non-goals>
5
+ <item>Do not implement command-specific logic — this is shared resolution only.</item>
6
+ <item>Do not import from @warpgogol/* — this module is portable.</item>
7
+ </non-goals>
8
+ </MODULE_CONTRACT>
9
+ <CHANGE_SUMMARY>
10
+ <item>RFC-0674: initial shared profile resolution for lifecycle commands.</item>
11
+ </CHANGE_SUMMARY>
12
+ */
13
+ import fs from "node:fs";
14
+ import path from "node:path";
15
+ import { parse as parseYaml } from "yaml";
16
+ import { resolveForgeRoot } from "../../../src/config/forge-config.js";
17
+ import { listStackProfiles } from "../../../src/profiles/stack-profile.js";
18
+ function readProfileIdFromForgeYaml(workspaceRoot) {
19
+ const configPath = path.join(workspaceRoot, "forge.yaml");
20
+ if (!fs.existsSync(configPath)) {
21
+ return undefined;
22
+ }
23
+ try {
24
+ const raw = fs.readFileSync(configPath, "utf8");
25
+ const parsed = parseYaml(raw);
26
+ if (typeof parsed["profile"] === "string") {
27
+ return parsed["profile"];
28
+ }
29
+ const project = parsed["project"];
30
+ if (project && Array.isArray(project["stack"]) && project["stack"].length > 0) {
31
+ return project["stack"][0];
32
+ }
33
+ }
34
+ catch {
35
+ // forge.yaml not parseable — no profile
36
+ }
37
+ return undefined;
38
+ }
39
+ export function resolveLifecycleFlags(input, context) {
40
+ return {
41
+ dryRun: context.dryRun || input.flags["dry-run"] === true,
42
+ profileIdOverride: typeof input.flags["profile"] === "string" ? input.flags["profile"] : undefined,
43
+ };
44
+ }
45
+ export function resolveActiveProfile(workspaceRoot, forgeRoot, profileIdOverride) {
46
+ const root = forgeRoot ?? resolveForgeRoot(workspaceRoot);
47
+ const profiles = listStackProfiles(root);
48
+ if (profiles.length === 0) {
49
+ return null;
50
+ }
51
+ let profileId = profileIdOverride;
52
+ if (!profileId) {
53
+ profileId = readProfileIdFromForgeYaml(workspaceRoot);
54
+ }
55
+ if (!profileId) {
56
+ return null;
57
+ }
58
+ const profile = profiles.find((p) => p.id === profileId);
59
+ if (!profile) {
60
+ return null;
61
+ }
62
+ const profilePath = path.join(root, "profiles", `${profileId}.yaml`);
63
+ return { profile, profilePath };
64
+ }
65
+ //# sourceMappingURL=profile-resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-resolve.js","sourceRoot":"","sources":["../../../../os/core/handlers/profile-resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAEF,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAqB,MAAM,wCAAwC,CAAC;AAQ9F,SAAS,0BAA0B,CAAC,aAAqB;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC1D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAA4B,CAAC;QACzD,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAwC,CAAC;QACzE,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9E,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAW,CAAC;QACvC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAOD,MAAM,UAAU,qBAAqB,CACnC,KAAwB,EACxB,OAA4B;IAE5B,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI;QACzD,iBAAiB,EACf,OAAO,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAAY,CAAC,CAAC,CAAC,SAAS;KAC9F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,aAAqB,EACrB,SAAkB,EAClB,iBAA0B;IAE1B,MAAM,IAAI,GAAG,SAAS,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,SAAS,GAAuB,iBAAiB,CAAC;IAEtD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,0BAA0B,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IACzD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;IACrE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { ForgeCommandInput, ForgeCommandResult, ForgeRuntimeContext } from "../../../src/types.ts";
2
+ export interface ForgeValidateArtifactResult {
3
+ id: string;
4
+ command: string;
5
+ exitCode: number;
6
+ stdout: string;
7
+ stderr: string;
8
+ }
9
+ export interface ForgeValidateResult {
10
+ command: "forge.validate";
11
+ profileId: string;
12
+ artifacts: ForgeValidateArtifactResult[];
13
+ }
14
+ export declare function runValidate(input: ForgeCommandInput, context: ForgeRuntimeContext): Promise<ForgeCommandResult<ForgeValidateResult>>;
15
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../os/core/handlers/validate.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAK/B,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,2BAA2B,EAAE,CAAC;CAC1C;AAED,wBAAsB,WAAW,CAC/B,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,CA6GlD"}