@interchained/portal-cli 0.1.2 → 0.1.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAiBH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,KAAK,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAyBD,wBAAsB,eAAe,CACnC,GAAG,EAAE,kBAAkB,EACvB,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,IAAI,CAAC,CA4Of"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAiBH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,KAAK,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAyBD,wBAAsB,eAAe,CACnC,GAAG,EAAE,kBAAkB,EACvB,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,IAAI,CAAC,CA0Mf"}
@@ -16,7 +16,7 @@ import prompts from "prompts";
16
16
  import pc from "picocolors";
17
17
  import ora from "ora";
18
18
  import { Runner, Sentinel, generateFromPrompt, applyPatch, PatchStore, } from "@interchained/portal-agent";
19
- import { banner, header, success, fail, warn, info, blank, icon } from "../utils/print.js";
19
+ import { banner, header, success, fail, info, blank, icon } from "../utils/print.js";
20
20
  import { loadContract } from "../utils/contract.js";
21
21
  // ── API route template ────────────────────────────────────────────────────────
22
22
  function apiRouteTemplate(name) {
@@ -170,54 +170,23 @@ export async function generateCommand(sub, description, opts = {}) {
170
170
  process.exit(1);
171
171
  }
172
172
  const { patch, sentinelReview, sentinelApplied } = result;
173
- // ── Sentinel applied it ───────────────────────────────────────────────────
173
+ // ── Sentinel always applies (clean or self-corrected) ─────────────────────
174
174
  if (sentinelApplied) {
175
- header(`${icon.pass} Sentinel approved & applied: ${patch.file}`);
176
- if (sentinelReview) {
177
- info(sentinelReview.summary);
178
- }
179
- blank();
180
- info(`Run portal dev to see the new page.`);
181
- blank();
182
- return;
183
- }
184
- // ── Sentinel rejected ─────────────────────────────────────────────────────
185
- if (sentinelReview && !sentinelReview.approved) {
186
- header(`${icon.fail} Sentinel blocked: ${patch.file}`);
187
- info(sentinelReview.summary);
188
- blank();
189
- sentinelReview.violations.forEach((v) => console.log(` ${icon.fail} ${pc.red(v)}`));
190
- blank();
191
- // Show a preview of what was generated anyway
192
- console.log(pc.dim("─── preview (blocked) ───────────────────────────────"));
193
- patch.proposed.split("\n").slice(0, 30).forEach((l) => console.log(pc.dim(" ") + l));
194
- if (patch.proposed.split("\n").length > 30)
195
- console.log(pc.dim(" …"));
196
- console.log(pc.dim("─────────────────────────────────────────────────────"));
197
- blank();
198
- const { choice } = await prompts({
199
- type: "select",
200
- name: "choice",
201
- message: "Sentinel rejected this patch. What do you want to do?",
202
- choices: [
203
- { title: pc.yellow("⚠ Apply anyway (override sentinel)"), value: "override" },
204
- { title: pc.blue("~ Save as pending for later review"), value: "save" },
205
- { title: pc.red("✗ Discard"), value: "discard" },
206
- ],
207
- });
208
- if (choice === "override") {
209
- await store.update(patch.id, { status: "approved" });
210
- await applyPatch({ ...patch, status: "approved" }, root, store);
211
- warn(`Applied with sentinel override: ${pc.bold(patch.file)}`);
212
- }
213
- else if (choice === "save") {
214
- info(`Patch saved as pending — run portal patch to revisit.`);
175
+ const { sentinelFix } = result;
176
+ if (sentinelFix) {
177
+ header(`${icon.pass} Sentinel applied (auto-corrected): ${patch.file}`);
178
+ info(sentinelFix.summary);
179
+ blank();
180
+ sentinelFix.changes.forEach((c) => console.log(` ${icon.pass} ${pc.cyan(c)}`));
215
181
  }
216
182
  else {
217
- await store.update(patch.id, { status: "rejected" });
218
- info("Discarded.");
183
+ header(`${icon.pass} Sentinel applied (clean): ${patch.file}`);
184
+ if (sentinelReview)
185
+ info(sentinelReview.summary);
219
186
  }
220
187
  blank();
188
+ info(`Run portal dev to see the new page.`);
189
+ blank();
221
190
  return;
222
191
  }
223
192
  // ── No sentinel — human decides ───────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  /**
2
- * Load app.contract.ts from a Portal project.
3
- * Uses a simple regex-based extraction since we can't dynamically import TS at runtime.
4
- * For full evaluation, we'd use jiti/tsx — but for MVP we parse the exported object.
2
+ * Load app.contract from a Portal project.
3
+ *
4
+ * Supported formats (checked in order):
5
+ * 1. app.contract.json — plain JSON, zero parsing ambiguity
6
+ * 2. app.contract.ts / .js — static TS/JS, several export patterns handled
7
+ *
8
+ * The contract file is intentionally kept as static data (no runtime logic).
9
+ * We extract it with a regex rather than executing arbitrary code.
5
10
  */
6
11
  import { type AppContract } from "@interchained/portal-contract";
7
12
  export declare function findContractPath(root: string): Promise<string | null>;
8
- /**
9
- * Load a contract from a Portal project.
10
- * Attempts to read and evaluate the contract file.
11
- * Falls back to a safe empty contract if not found.
12
- */
13
13
  export declare function loadContract(root?: string): Promise<AppContract>;
14
14
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/utils/contract.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AASnF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAS3E;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,SAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAuB7E"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/utils/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAWnF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAM3E;AAED,wBAAsB,YAAY,CAAC,IAAI,SAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAmC7E"}
@@ -1,14 +1,21 @@
1
1
  /**
2
- * Load app.contract.ts from a Portal project.
3
- * Uses a simple regex-based extraction since we can't dynamically import TS at runtime.
4
- * For full evaluation, we'd use jiti/tsx — but for MVP we parse the exported object.
2
+ * Load app.contract from a Portal project.
3
+ *
4
+ * Supported formats (checked in order):
5
+ * 1. app.contract.json — plain JSON, zero parsing ambiguity
6
+ * 2. app.contract.ts / .js — static TS/JS, several export patterns handled
7
+ *
8
+ * The contract file is intentionally kept as static data (no runtime logic).
9
+ * We extract it with a regex rather than executing arbitrary code.
5
10
  */
6
11
  import { readFile, access } from "node:fs/promises";
7
12
  import { join } from "node:path";
8
13
  import { validateContract } from "@interchained/portal-contract";
9
14
  const CANDIDATE_PATHS = [
15
+ "app.contract.json",
10
16
  "app.contract.ts",
11
17
  "app.contract.js",
18
+ "portal.contract.json",
12
19
  "portal.contract.ts",
13
20
  "portal.contract.js",
14
21
  ];
@@ -19,35 +26,50 @@ export async function findContractPath(root) {
19
26
  await access(full);
20
27
  return full;
21
28
  }
22
- catch { /* continue */ }
29
+ catch { /* next */ }
23
30
  }
24
31
  return null;
25
32
  }
26
- /**
27
- * Load a contract from a Portal project.
28
- * Attempts to read and evaluate the contract file.
29
- * Falls back to a safe empty contract if not found.
30
- */
31
33
  export async function loadContract(root = process.cwd()) {
32
34
  const contractPath = await findContractPath(root);
33
- if (!contractPath) {
35
+ if (!contractPath)
34
36
  return { name: "Portal App", goals: [] };
35
- }
36
37
  try {
37
38
  const src = await readFile(contractPath, "utf-8");
38
- // Extract the object passed to defineApp() using a simple heuristic.
39
- // This is intentionally dumb — the contract file should be static data, not logic.
40
- const match = src.match(/defineApp\(\s*(\{[\s\S]*?\})\s*\)/);
41
- if (!match) {
42
- return { name: "Portal App", goals: [] };
39
+ // ── JSON file ─────────────────────────────────────────────────────────────
40
+ if (contractPath.endsWith(".json")) {
41
+ return validateContract(JSON.parse(src));
43
42
  }
44
- // Safe eval via Function constructor (no side effects in contract files)
45
- const fn = new Function(`return (${match[1]})`);
46
- const raw = fn();
47
- return validateContract(raw);
43
+ // ── TS/JS patterns ────────────────────────────────────────────────────────
44
+ // We try several common shapes, in order of specificity.
45
+ // 1. defineApp({ ... })
46
+ const defineMatch = src.match(/defineApp\s*\(\s*(\{[\s\S]*?\})\s*\)/);
47
+ if (defineMatch)
48
+ return evalObject(defineMatch[1]);
49
+ // 2. export default { ... } (inline object literal)
50
+ const exportDefaultInline = src.match(/export\s+default\s+(\{[\s\S]*\})\s*;?\s*$/);
51
+ if (exportDefaultInline)
52
+ return evalObject(exportDefaultInline[1]);
53
+ // 3. const <name>: AppContract = { ... }
54
+ const constTyped = src.match(/const\s+\w+\s*:\s*AppContract\s*=\s*(\{[\s\S]*?\});\s*$/m);
55
+ if (constTyped)
56
+ return evalObject(constTyped[1]);
57
+ // 4. const <name> = { ... } (no type annotation)
58
+ const constPlain = src.match(/const\s+\w+\s*=\s*(\{[\s\S]*?\});\s*$/m);
59
+ if (constPlain)
60
+ return evalObject(constPlain[1]);
61
+ return { name: "Portal App", goals: [] };
48
62
  }
49
63
  catch {
50
64
  return { name: "Portal App", goals: [] };
51
65
  }
52
66
  }
67
+ function evalObject(src) {
68
+ // Strip TypeScript casts and `as const` before evaluating
69
+ const cleaned = src
70
+ .replace(/\s+as\s+\w[\w.]*(\[\])?/g, "")
71
+ .replace(/\s+satisfies\s+\w[\w.]*/g, "");
72
+ const fn = new Function(`return (${cleaned})`);
73
+ return validateContract(fn());
74
+ }
53
75
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/utils/contract.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAW,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAoB,MAAM,+BAA+B,CAAC;AAEnF,MAAM,eAAe,GAAG;IACtB,iBAAiB;IACjB,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;CACrB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IACjD,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE;IACrD,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAElD,qEAAqE;QACrE,mFAAmF;QACnF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC3C,CAAC;QAED,yEAAyE;QACzE,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,EAAE,EAAa,CAAC;QAC5B,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/utils/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAoB,MAAM,+BAA+B,CAAC;AAEnF,MAAM,eAAe,GAAG;IACtB,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;IACjB,sBAAsB;IACtB,oBAAoB;IACpB,oBAAoB;CACrB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY;IACjD,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC;YAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE;IACrD,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAE5D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAElD,6EAA6E;QAC7E,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,6EAA6E;QAC7E,yDAAyD;QAEzD,wBAAwB;QACxB,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACtE,IAAI,WAAW;YAAE,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnD,sDAAsD;QACtD,MAAM,mBAAmB,GAAG,GAAG,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACnF,IAAI,mBAAmB;YAAE,OAAO,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnE,yCAAyC;QACzC,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QACzF,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjD,mDAAmD;QACnD,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACvE,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,0DAA0D;IAC1D,MAAM,OAAO,GAAG,GAAG;SAChB,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC;SACvC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,WAAW,OAAO,GAAG,CAAC,CAAC;IAC/C,OAAO,gBAAgB,CAAC,EAAE,EAAa,CAAC,CAAC;AAC3C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@interchained/portal-cli",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Portal CLI — dev, build, audit, improve, generate, guard",
5
5
  "license": "GPL-3.0-or-later",
6
6
  "author": "Interchained <dev@interchained.org>",