@intentic/state-resolver 1.27.0 → 1.28.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.
package/README.md CHANGED
@@ -6,7 +6,7 @@ The **state resolver**: turns an `IntentSet` into the desired state — a `Desir
6
6
 
7
7
  - Resolve needs to concrete catalog options (Forgejo for git+registry, Komodo for control, Cloudflare for domain, GitHub/GHCR as the alternative stack).
8
8
  - Emit the `ResolvedNode`s for each assignment and `compile` them into a single dependency-ordered graph (`resolveState`).
9
- - Derive the control-plane platform and the application-plane support stack (repos, CI, deployments, tunnel, routes, workspace runner).
9
+ - Derive the control-plane platform and the application-plane support stack (repos, CI, deployments, tunnel, routes, workspace sandbox).
10
10
  - It does **not** talk to infra or reconcile — it only produces the serializable artifact.
11
11
 
12
12
  ## Key files
@@ -14,7 +14,7 @@ The **state resolver**: turns an `IntentSet` into the desired state — a `Desir
14
14
  - [src/state.ts](src/state.ts) — `resolveState`: intent → `DesiredStateGraph`.
15
15
  - [src/catalog.ts](src/catalog.ts) — `defaultCatalog`, `Catalog`/`Option` (what satisfies each capability).
16
16
  - [src/emit.ts](src/emit.ts) — `emit` + `Assignment` (build the nodes for one assignment); `emit-github.ts` for the GitHub stack.
17
- - [src/platform.ts](src/platform.ts) / [src/app.ts](src/app.ts) / [src/route.ts](src/route.ts) / [src/workspace.ts](src/workspace.ts) — per-area node derivation (control plane, app plane, DNS routes, dev workspace runner).
17
+ - [src/platform.ts](src/platform.ts) / [src/app.ts](src/app.ts) / [src/route.ts](src/route.ts) / [src/workspace.ts](src/workspace.ts) — per-area node derivation (control plane, app plane, DNS routes, dev workspace sandbox).
18
18
  - [src/ids.ts](src/ids.ts) / [src/identity.ts](src/identity.ts) — id helpers, `adminUsername`.
19
19
 
20
20
  ## How it fits
package/dist/images.d.ts CHANGED
@@ -16,7 +16,6 @@ export declare const IMAGES: Readonly<{
16
16
  readonly valkey: "valkey/valkey:9.1.0-alpine@sha256:a35428eba9043cc0b79dbe54100f0c92784f2de00ad09b01182bfb1c5c83d1bd";
17
17
  readonly authentik: "ghcr.io/goauthentik/server:2026.2.4@sha256:0ed7e84cef9d0051659dba5cf63a860a485f85b3fff698c8d2fff17fa3cbe596";
18
18
  readonly garage: "dxflrs/garage:v2.3.0@sha256:866bd13ed2038ba7e7190e840482bc27234c4afaf77be8cfa439ae088c1e4690";
19
- readonly runner: "ghcr.io/radarsu/intentic/runner:0.1.0@sha256:2cc116c3bb5826a035a5add7388ae4a89545b25a0bf3fa8de32924f542cac86e";
20
19
  readonly sandbox: "ghcr.io/radarsu/intentic/sandbox:0.1.0";
21
20
  }>;
22
21
  //# sourceMappingURL=images.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;EA6DR,CAAC"}
1
+ {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;EAyDR,CAAC"}
package/dist/images.js CHANGED
@@ -16,7 +16,6 @@ export const IMAGES = Object.freeze({
16
16
  valkey: "valkey/valkey:9.1.0-alpine@sha256:a35428eba9043cc0b79dbe54100f0c92784f2de00ad09b01182bfb1c5c83d1bd",
17
17
  authentik: "ghcr.io/goauthentik/server:2026.2.4@sha256:0ed7e84cef9d0051659dba5cf63a860a485f85b3fff698c8d2fff17fa3cbe596",
18
18
  garage: "dxflrs/garage:v2.3.0@sha256:866bd13ed2038ba7e7190e840482bc27234c4afaf77be8cfa439ae088c1e4690",
19
- runner: "ghcr.io/radarsu/intentic/runner:0.1.0@sha256:2cc116c3bb5826a035a5add7388ae4a89545b25a0bf3fa8de32924f542cac86e",
20
19
  sandbox: "ghcr.io/radarsu/intentic/sandbox:0.1.0",
21
20
  });
22
21
  //# sourceMappingURL=images.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"images.js","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAEhC,OAAO,EAAE,6GAA6G;IAEtH,aAAa,EAAE,iHAAiH;IAGhI,gBAAgB,EAAE,+GAA+G;IAEjI,WAAW,EAAE,yGAAyG;IAEtH,UAAU,EAAE,4GAA4G;IAExH,eAAe,EAAE,iHAAiH;IAElI,QAAQ,EAAE,yGAAyG;IAGnH,kBAAkB,EACd,wIAAwI;IAK5I,UAAU,EAAE,6GAA6G;IAEzH,MAAM,EAAE,gGAAgG;IAGxG,mBAAmB,EAAE,+GAA+G;IAEpI,eAAe,EAAE,gGAAgG;IAIjH,MAAM,EAAE,8FAA8F;IAItG,QAAQ,EAAE,8FAA8F;IAIxG,MAAM,EAAE,oGAAoG;IAI5G,SAAS,EAAE,6GAA6G;IAGxH,MAAM,EAAE,8FAA8F;IAQtG,MAAM,EAAE,+GAA+G;IAEvH,OAAO,EAAE,wCAAwC;CAC3C,CAAC,CAAC"}
1
+ {"version":3,"file":"images.js","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAEhC,OAAO,EAAE,6GAA6G;IAEtH,aAAa,EAAE,iHAAiH;IAGhI,gBAAgB,EAAE,+GAA+G;IAEjI,WAAW,EAAE,yGAAyG;IAEtH,UAAU,EAAE,4GAA4G;IAExH,eAAe,EAAE,iHAAiH;IAElI,QAAQ,EAAE,yGAAyG;IAGnH,kBAAkB,EACd,wIAAwI;IAK5I,UAAU,EAAE,6GAA6G;IAEzH,MAAM,EAAE,gGAAgG;IAGxG,mBAAmB,EAAE,+GAA+G;IAEpI,eAAe,EAAE,gGAAgG;IAIjH,MAAM,EAAE,8FAA8F;IAItG,QAAQ,EAAE,8FAA8F;IAIxG,MAAM,EAAE,oGAAoG;IAI5G,SAAS,EAAE,6GAA6G;IAGxH,MAAM,EAAE,8FAA8F;IAMtG,OAAO,EAAE,wCAAwC;CAC3C,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAM9C,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAaD,eAAO,MAAM,gBAAgB,GACzB,QAAQ,eAAe,EACvB,MAAM,SAAS,EACf,MAAM,MAAM,EACZ,UAAU,SAAS,EACnB,OAAO,SAAS,aAAa,EAAE,KAChC;IAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAiDjD,CAAC"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAM9C,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAgBD,eAAO,MAAM,gBAAgB,GACzB,QAAQ,eAAe,EACvB,MAAM,SAAS,EACf,MAAM,MAAM,EACZ,UAAU,SAAS,EACnB,OAAO,SAAS,aAAa,EAAE,KAChC;IAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CA+CjD,CAAC"}
package/dist/workspace.js CHANGED
@@ -1,9 +1,11 @@
1
- import { env, generated, httpOk, makeRef } from "@intentic/graph";
1
+ import { generated, httpOk, makeRef } from "@intentic/graph";
2
2
  import { previewDomain } from "./ids.js";
3
3
  import { IMAGES } from "./images.js";
4
4
  import { exposeRoute } from "./route.js";
5
5
  import { serviceMcp } from "./service.js";
6
- const PREVIEW_PORT = 8088;
6
+ const DEV_PORT = 5173;
7
+ const DAEMON_PORT = 8787;
8
+ const DEV_COMMAND = "pnpm dev";
7
9
  const NETWORK = "intentic-workspace";
8
10
  export const resolveWorkspace = (intent, host, zone, apiToken, tools) => {
9
11
  const ssh = {
@@ -13,7 +15,7 @@ export const resolveWorkspace = (intent, host, zone, apiToken, tools) => {
13
15
  ...(host.port !== undefined ? { port: host.port } : {}),
14
16
  };
15
17
  const domain = previewDomain(zone);
16
- const exposure = exposeRoute(intent.expose, intent.on, domain, PREVIEW_PORT, apiToken);
18
+ const exposure = exposeRoute(intent.expose, intent.on, domain, DEV_PORT, apiToken);
17
19
  const toolEntries = tools.map((tool) => {
18
20
  const mcp = serviceMcp(tool.kind);
19
21
  if (mcp === undefined) {
@@ -31,11 +33,11 @@ export const resolveWorkspace = (intent, host, zone, apiToken, tools) => {
31
33
  internalIp: makeRef(intent.on, "internalIp"),
32
34
  domain,
33
35
  zone,
34
- previewPort: PREVIEW_PORT,
36
+ devPort: DEV_PORT,
37
+ daemonPort: DAEMON_PORT,
38
+ devCommand: DEV_COMMAND,
35
39
  network: NETWORK,
36
- image: IMAGES.runner,
37
- sandboxImage: IMAGES.sandbox,
38
- ...(intent.platformUrl !== undefined ? { platformUrl: intent.platformUrl, runnerToken: env("RUNNER_TOKEN") } : {}),
40
+ image: IMAGES.sandbox,
39
41
  ...(intent.agentBaseUrl !== undefined ? { agentBaseUrl: intent.agentBaseUrl } : {}),
40
42
  ...(toolEntries.length > 0 ? { tools: toolEntries } : {}),
41
43
  },
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGlE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAY1C,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,MAAM,OAAO,GAAG,oBAAoB,CAAC;AAOrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,MAAuB,EACvB,IAAe,EACf,IAAY,EACZ,QAAmB,EACnB,KAA+B,EACkB,EAAE;IACnD,MAAM,GAAG,GAAG;QACR,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC;IACF,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAIvF,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACX,cAAc,MAAM,CAAC,EAAE,sBAAsB,IAAI,CAAC,EAAE,YAAY,IAAI,CAAC,IAAI,uEAAuE,CACnJ,CAAC;QACN,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;IAC1G,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAmB;QAC1B;YACI,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE;gBACJ,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,GAAG,GAAG;gBACN,UAAU,EAAE,OAAO,CAAS,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC;gBACpD,MAAM;gBACN,IAAI;gBACJ,WAAW,EAAE,YAAY;gBACzB,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,MAAM,CAAC,MAAM;gBACpB,YAAY,EAAE,MAAM,CAAC,OAAO;gBAG5B,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAElH,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAEnF,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5D;YACD,iBAAiB,EAAE,EAAE;YACrB,SAAS,EAAE,MAAM,CAAC,OAAO,CAAS,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SAClF;QACD,QAAQ,CAAC,KAAK;KACjB,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAClD,CAAC,CAAC"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentic/state-resolver",
3
- "version": "1.27.0",
3
+ "version": "1.28.0",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -31,9 +31,9 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "tslib": "2.8.1",
34
- "@intentic/graph": "1.27.0",
35
- "@intentic/need-resolver": "1.27.0",
36
- "@intentic/resources": "1.27.0"
34
+ "@intentic/graph": "1.28.0",
35
+ "@intentic/resources": "1.28.0",
36
+ "@intentic/need-resolver": "1.28.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "typescript": "5.9.3",