@mesh-tech/mesh-cli 0.15.0 → 0.17.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/dist/bin/mesh.js +11663 -10745
- package/dist/bin/mesh.js.map +4 -4
- package/dist/build-info.json +2 -2
- package/dist/src/commands/agent-api-client.d.ts +17 -0
- package/dist/src/commands/agent-api-client.d.ts.map +1 -1
- package/dist/src/commands/agent-api-client.js +22 -0
- package/dist/src/commands/agent-api-client.js.map +1 -1
- package/dist/src/commands/app-check.d.ts +97 -0
- package/dist/src/commands/app-check.d.ts.map +1 -0
- package/dist/src/commands/app-check.js +502 -0
- package/dist/src/commands/app-check.js.map +1 -0
- package/dist/src/commands/create-app.d.ts +24 -0
- package/dist/src/commands/create-app.d.ts.map +1 -1
- package/dist/src/commands/create-app.js +27 -1
- package/dist/src/commands/create-app.js.map +1 -1
- package/dist/src/commands/dev-doctor.d.ts +28 -12
- package/dist/src/commands/dev-doctor.d.ts.map +1 -1
- package/dist/src/commands/dev-doctor.js +16 -7
- package/dist/src/commands/dev-doctor.js.map +1 -1
- package/dist/src/commands/dev.d.ts +22 -0
- package/dist/src/commands/dev.d.ts.map +1 -1
- package/dist/src/commands/dev.js +124 -9
- package/dist/src/commands/dev.js.map +1 -1
- package/dist/src/commands/local/docker-runner.d.ts.map +1 -1
- package/dist/src/commands/local/docker-runner.js +2 -4
- package/dist/src/commands/local/docker-runner.js.map +1 -1
- package/dist/src/commands/local/hub-local.d.ts.map +1 -1
- package/dist/src/commands/local/hub-local.js +2 -3
- package/dist/src/commands/local/hub-local.js.map +1 -1
- package/dist/src/commands/local/seed-zitadel.d.ts.map +1 -1
- package/dist/src/commands/local/seed-zitadel.js +108 -109
- package/dist/src/commands/local/seed-zitadel.js.map +1 -1
- package/dist/src/commands/local/stack.d.ts.map +1 -1
- package/dist/src/commands/local/stack.js +4 -9
- package/dist/src/commands/local/stack.js.map +1 -1
- package/dist/src/commands/site.d.ts +3 -0
- package/dist/src/commands/site.d.ts.map +1 -0
- package/dist/src/commands/site.js +277 -0
- package/dist/src/commands/site.js.map +1 -0
- package/dist/src/commands/temporal.d.ts +25 -0
- package/dist/src/commands/temporal.d.ts.map +1 -1
- package/dist/src/commands/temporal.js +2459 -732
- package/dist/src/commands/temporal.js.map +7 -1
- package/dist/src/commands/vcs/clone.d.ts.map +1 -1
- package/dist/src/commands/vcs/clone.js +4 -4
- package/dist/src/commands/vcs/clone.js.map +1 -1
- package/dist/src/commands/vcs/common.d.ts +34 -0
- package/dist/src/commands/vcs/common.d.ts.map +1 -1
- package/dist/src/commands/vcs/common.js +52 -0
- package/dist/src/commands/vcs/common.js.map +1 -1
- package/dist/src/commands/vcs/index.d.ts.map +1 -1
- package/dist/src/commands/vcs/index.js +7 -1
- package/dist/src/commands/vcs/index.js.map +1 -1
- package/dist/src/commands/vcs/propose.d.ts +22 -0
- package/dist/src/commands/vcs/propose.d.ts.map +1 -1
- package/dist/src/commands/vcs/propose.js +25 -5
- package/dist/src/commands/vcs/propose.js.map +1 -1
- package/dist/src/commands/vcs/rm.d.ts +18 -0
- package/dist/src/commands/vcs/rm.d.ts.map +1 -0
- package/dist/src/commands/vcs/rm.js +88 -0
- package/dist/src/commands/vcs/rm.js.map +1 -0
- package/dist/src/program.d.ts.map +1 -1
- package/dist/src/program.js +4 -0
- package/dist/src/program.js.map +1 -1
- package/dist/src/utils/aws-auth.d.ts +10 -0
- package/dist/src/utils/aws-auth.d.ts.map +1 -1
- package/dist/src/utils/aws-auth.js +35 -0
- package/dist/src/utils/aws-auth.js.map +1 -1
- package/dist/src/utils/cache-home.d.ts +25 -0
- package/dist/src/utils/cache-home.d.ts.map +1 -0
- package/dist/src/utils/cache-home.js +36 -0
- package/dist/src/utils/cache-home.js.map +1 -0
- package/dist/src/utils/temporal-codec.js +207 -294
- package/dist/src/utils/temporal-codec.js.map +7 -1
- package/fragments/base/index.ts.hbs +1 -1
- package/fragments/service/api/package.json.hbs +1 -0
- package/fragments/service/api/src/index.ts.hbs +6 -1
- package/fragments/temporal/worker/package.json.hbs +1 -0
- package/fragments/temporal/worker/src/activities.ts.hbs +6 -5
- package/fragments/temporal/worker/src/worker.ts.hbs +7 -1
- package/package.json +12 -3
- package/skills/core/SKILL.md +15 -3
- package/templates/api-auth/AGENTS.md.hbs +6 -0
- package/templates/api-auth/README.md.hbs +17 -8
- package/templates/api-auth/api/package.json.hbs +2 -1
- package/templates/api-auth/api/{src → scripts}/seed-authz.ts.hbs +3 -3
- package/templates/api-auth/api/src/index.ts.hbs +20 -9
- package/templates/api-auth/index.ts.hbs +79 -25
- package/templates/api-auth/package.json.hbs +2 -0
- package/templates/api-role-gating/api/package.json.hbs +1 -0
- package/templates/api-role-gating/api/src/main.ts.hbs +6 -1
- package/templates/api-role-gating/index.ts.hbs +1 -1
- package/templates/api-role-gating/package.json.hbs +1 -0
- package/templates/external-service/api/package.json.hbs +2 -0
- package/templates/external-service/api/src/index.ts.hbs +7 -2
- package/templates/external-service/index.ts.hbs +1 -1
- package/templates/external-service/package.json.hbs +1 -0
- package/templates/workflow/api/package.json.hbs +1 -0
- package/templates/workflow/api/src/index.ts.hbs +10 -5
- package/templates/workflow/index.ts.hbs +1 -1
- package/templates/workflow/package.json.hbs +1 -0
- package/templates/workflow/worker/package.json.hbs +1 -0
- package/templates/workflow/worker/src/activities.ts.hbs +7 -3
- package/templates/workflow/worker/src/encryption-codec.ts +3 -2
- package/templates/workflow/worker/src/worker.ts.hbs +7 -1
- package/templates/workflow/worker/src/workflows.ts.hbs +3 -3
package/dist/build-info.json
CHANGED
|
@@ -43,6 +43,23 @@ export declare function resolveTarget(opts: {
|
|
|
43
43
|
* to the "auth did not reach the agent" message.
|
|
44
44
|
*/
|
|
45
45
|
export declare function agentApiFetch(target: AgentApiTarget, apiPath: string): Promise<Response>;
|
|
46
|
+
export interface AgentApiSendInit {
|
|
47
|
+
method: "POST" | "PUT" | "PATCH" | "DELETE";
|
|
48
|
+
/** JSON body — sets `content-type: application/json`. Mutually exclusive with `body`. */
|
|
49
|
+
json?: unknown;
|
|
50
|
+
/** Raw body, for uploads that are not JSON. */
|
|
51
|
+
body?: Uint8Array | string;
|
|
52
|
+
contentType?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Like {@link agentApiFetch}, but with a method and a body — the write half.
|
|
56
|
+
*
|
|
57
|
+
* Shares `authHeaders` and `redirect: "manual"` with the read path for the same
|
|
58
|
+
* reasons documented there; the redirect handling matters MORE here, because a
|
|
59
|
+
* write that silently followed a 302 to Zitadel would report the login page's
|
|
60
|
+
* 200 as a successful publish.
|
|
61
|
+
*/
|
|
62
|
+
export declare function agentApiSend(target: AgentApiTarget, apiPath: string, init: AgentApiSendInit): Promise<Response>;
|
|
46
63
|
/**
|
|
47
64
|
* Turn a thrown fetch error into local-vs-remote-aware guidance. A bare
|
|
48
65
|
* `ECONNREFUSED`/`fetch failed` (also `ENOTFOUND`/`EAI_AGAIN`) means
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-api-client.d.ts","sourceRoot":"","sources":["../../../src/commands/agent-api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;CAAG;AAKnD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,cAAc,CAuD1G;AAWD;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAG9F;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,CAajF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,cAAc,EACtB,GAAG,CAAC,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GACpB,OAAO,CAAC,MAAM,CAAC,CA4BjB"}
|
|
1
|
+
{"version":3,"file":"agent-api-client.d.ts","sourceRoot":"","sources":["../../../src/commands/agent-api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;CAAG;AAKnD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,cAAc,CAuD1G;AAWD;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAG9F;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,yFAAyF;IACzF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+CAA+C;IAC/C,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,QAAQ,CAAC,CAenB;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,CAajF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE,cAAc,EACtB,GAAG,CAAC,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GACpB,OAAO,CAAC,MAAM,CAAC,CA4BjB"}
|
|
@@ -100,6 +100,28 @@ export async function agentApiFetch(target, apiPath) {
|
|
|
100
100
|
const headers = await authHeaders(target);
|
|
101
101
|
return fetch(`${target.apiBaseUrl}${apiPath}`, { headers, redirect: "manual" });
|
|
102
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Like {@link agentApiFetch}, but with a method and a body — the write half.
|
|
105
|
+
*
|
|
106
|
+
* Shares `authHeaders` and `redirect: "manual"` with the read path for the same
|
|
107
|
+
* reasons documented there; the redirect handling matters MORE here, because a
|
|
108
|
+
* write that silently followed a 302 to Zitadel would report the login page's
|
|
109
|
+
* 200 as a successful publish.
|
|
110
|
+
*/
|
|
111
|
+
export async function agentApiSend(target, apiPath, init) {
|
|
112
|
+
const headers = await authHeaders(target);
|
|
113
|
+
const body = init.json !== undefined ? JSON.stringify(init.json) : init.body;
|
|
114
|
+
const contentType = init.json !== undefined ? "application/json" : (init.contentType ?? "application/octet-stream");
|
|
115
|
+
return fetch(`${target.apiBaseUrl}${apiPath}`, {
|
|
116
|
+
method: init.method,
|
|
117
|
+
headers: { ...headers, ...(body === undefined ? {} : { "content-type": contentType }) },
|
|
118
|
+
// `as never` rather than `as BodyInit`: this package's lib config does not
|
|
119
|
+
// pull in DOM types, so the global name is unavailable even though Node's
|
|
120
|
+
// fetch accepts exactly these shapes at runtime.
|
|
121
|
+
...(body === undefined ? {} : { body: body }),
|
|
122
|
+
redirect: "manual",
|
|
123
|
+
});
|
|
124
|
+
}
|
|
103
125
|
const NETWORK_ERROR_PATTERN = /ECONNREFUSED|fetch failed|ENOTFOUND|EAI_AGAIN/;
|
|
104
126
|
/**
|
|
105
127
|
* Turn a thrown fetch error into local-vs-remote-aware guidance. A bare
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-api-client.js","sourceRoot":"","sources":["../../../src/commands/agent-api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAExC;6EAC6E;AAC7E,MAAM,YAAY,GAAG,uDAAuD,CAAC;AAU7E,MAAM,OAAO,qBAAsB,SAAQ,KAAK;CAAG;AAEnD,MAAM,oBAAoB,GACxB,qEAAqE,CAAC;AAExE;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,IAA4D;IACxF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,IAAI,oBAAoB,EAAE,CAAC;IACrG,CAAC;IAED,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAE9B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,qBAAqB,CAC7B,eAAe,GAAG,CAAC,IAAI,gBAAgB,GAAG,CAAC,OAAO,oCAAoC,CACvF,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,qBAAqB,CAAC,6BAA6B,oBAAoB,GAAG,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,qBAAqB,CAC7B,mBAAmB,IAAI,CAAC,MAAM,iBAAiB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,IAAI;gBAChG,uCAAuC,IAAI,CAAC,MAAM,sBAAsB,CAC3E,CAAC;QACJ,CAAC;QACD,OAAO;YACL,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;YACpD,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC5B,8EAA8E;QAC9E,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;QAC9C,OAAO;YACL,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;YACpD,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,wEAAwE;QACxE,uEAAuE;QACvE,oEAAoE;QACpE,OAAO,CAAC,6BAA6B,GAAG,CAAC,IAAI,gBAAgB,GAAG,CAAC,OAAO,kCAAkC,CAAC,CAAC;IAC9G,CAAC;IAED,mEAAmE;IACnE,4DAA4D;IAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,uBAAuB,CAAC;IAChG,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,IAAI,oBAAoB,EAAE,CAAC;AACrG,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,MAAsB;IAC/C,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;IACrE,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,IAAI,oBAAoB,CAAC;IACxD,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,KAAK;QAAE,OAAO,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;IACvD,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,mBAAmB,EAAE,eAAe,EAAE,CAAC;IAC1H,MAAM,IAAI,qBAAqB,CAAC,qCAAqC,GAAG,sBAAsB,GAAG,EAAE,CAAC,CAAC;AACvG,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAsB,EAAE,OAAe;IACzE,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC,GAAG,MAAM,CAAC,UAAU,GAAG,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,qBAAqB,GAAG,+CAA+C,CAAC;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAY,EAAE,MAAsB;IACvE,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAEzD,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,OAAO,mDAAmD,CAAC;IAC7D,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,oBAAoB,CAAC;IACjE,OAAO,CACL,kBAAkB,MAAM,CAAC,UAAU,kCAAkC;QACrE,mBAAmB,YAAY,8BAA8B,CAC9D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAa,EACb,MAAsB,EACtB,GAAqB;IAErB,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC;IACzF,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;QAC3D,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,oBAAoB,CAAC;QACjE,OAAO,mDAAmD,YAAY,IAAI,CAAC;IAC7E,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,kCAAkC,MAAM,qFAAqF,CAAC;IACvI,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAElC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAwC,CAAC;YAC3E,IAAI,MAAM,CAAC,KAAK,KAAK,0BAA0B,EAAE,CAAC;gBAChD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC;gBAC1C,MAAM,WAAW,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,6CAA6C,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzF,OAAO,GAAG,OAAO,GAAG,WAAW,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8EAA8E;QAChF,CAAC;IACH,CAAC;IAED,OAAO,mBAAmB,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,GAAG,CAAC;AAC/F,CAAC"}
|
|
1
|
+
{"version":3,"file":"agent-api-client.js","sourceRoot":"","sources":["../../../src/commands/agent-api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `mesh app check` — the Mesh app contract, enforced.
|
|
3
|
+
*
|
|
4
|
+
* Scans a tenant-apps checkout and reports every mechanical violation of the
|
|
5
|
+
* contract in `@mesh-tech/app-kit`'s `apps` skill
|
|
6
|
+
* (`skills/apps/references/app-contract.md`): a browser UI served from inside
|
|
7
|
+
* the API process, an app that never registers with the Hub, app-written
|
|
8
|
+
* browser sessions where the platform auth proxy belongs, logging that
|
|
9
|
+
* bypasses `@mesh-tech/logger`, and an app whose people, roles or keys the
|
|
10
|
+
* Hub cannot see. `mesh create-app` runs it on every scaffold, tenant CI runs
|
|
11
|
+
* it beside `mesh skills sync --check`, and the platform reviewer runs the
|
|
12
|
+
* same command — one detector, one exit code.
|
|
13
|
+
*
|
|
14
|
+
* Three layers, like `mesh dev doctor`:
|
|
15
|
+
* 1. Pure scanners (`scanApp`, `scanRepo`) — filesystem in, `Finding[]` out.
|
|
16
|
+
* 2. One `Check` per contract code, on the dev-doctor engine (`runChecks`).
|
|
17
|
+
* 3. The command: resolves the repo root, picks the apps, renders, exits.
|
|
18
|
+
*
|
|
19
|
+
* The patterns are deliberately shape-based: `apps/<app>/index.ts` (the Pulumi
|
|
20
|
+
* program) is the contract's single point of truth, and a service directory is
|
|
21
|
+
* a UI if its name says so. A hit is a fact to READ, not a verdict — the ruling
|
|
22
|
+
* detail and every gate's owning primitive live in the contract reference.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```bash
|
|
26
|
+
* mesh app check # every apps/* in this repo
|
|
27
|
+
* mesh app check apps/funding-portal # one app
|
|
28
|
+
* mesh app check --json # stable shape for CI
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
import { Command } from "commander";
|
|
32
|
+
import { jsonReport, type Check, type CheckResult, type CheckStatus } from "./dev-doctor.js";
|
|
33
|
+
/** Every code the contract defines. The contract reference lists the same set; a test keeps them equal. */
|
|
34
|
+
export type AppCheckCode = "UI_IN_API" | "NO_UI_SERVICE" | "NO_REGISTER" | "CUSTOM_SESSION_AUTH" | "NON_PLATFORM_LOGGER" | "LOCAL_AUTH_LIB" | "NO_AUTHZ_POINTER" | "METADATA_UNPUBLISHED" | "IAC_GRANTS" | "PASSWORD_STORE" | "EMAIL_ALLOWLIST" | "USERS_TABLE";
|
|
35
|
+
export interface AppCheckRule {
|
|
36
|
+
/** Contract gate the code enforces (`0.1` … `0.5`, `H`). */
|
|
37
|
+
gate: string;
|
|
38
|
+
/** Human label, present tense. */
|
|
39
|
+
title: string;
|
|
40
|
+
/** `block` exits 1; `advisory` reports and exits 0. */
|
|
41
|
+
severity: "block" | "advisory";
|
|
42
|
+
/** The concrete replacement — what the author writes instead. */
|
|
43
|
+
remediation: string;
|
|
44
|
+
/** `repo` rules scan the checkout once; `app` rules run per app. */
|
|
45
|
+
scope: "app" | "repo";
|
|
46
|
+
}
|
|
47
|
+
export declare const APP_CHECK_RULES: Record<AppCheckCode, AppCheckRule>;
|
|
48
|
+
export declare const APP_CHECK_CODES: AppCheckCode[];
|
|
49
|
+
/** One mechanical hit. `path` is repo-relative (`apps/x/api/src/y.ts[:line]`). */
|
|
50
|
+
export interface Finding {
|
|
51
|
+
code: AppCheckCode;
|
|
52
|
+
path: string;
|
|
53
|
+
why: string;
|
|
54
|
+
}
|
|
55
|
+
/** Source files worth scanning: TS/JS minus tests, fixtures, generated output, tooling and dependencies. */
|
|
56
|
+
export declare function srcFiles(dir: string): string[];
|
|
57
|
+
/** A service directory whose NAME says "browser UI". */
|
|
58
|
+
export declare function isUiDir(name: string): boolean;
|
|
59
|
+
/** Apps in a checkout: every `apps/<name>` with a Pulumi program, or the root when it is itself an app. */
|
|
60
|
+
export declare function listApps(root: string): string[];
|
|
61
|
+
/**
|
|
62
|
+
* Every app-scoped finding for one app (`appRel` is repo-relative). An app
|
|
63
|
+
* directory with no Pulumi program yields nothing — it is not an app.
|
|
64
|
+
*/
|
|
65
|
+
export declare function scanApp(root: string, appRel: string): Finding[];
|
|
66
|
+
/** Repo-scoped findings: a tenant-local auth library that may duplicate `@mesh-tech/authn` (advisory). */
|
|
67
|
+
export declare function scanRepo(root: string): Finding[];
|
|
68
|
+
/** What every app-contract `Check` reads: the findings for ONE scope (an app, or the repo). */
|
|
69
|
+
export interface AppCheckContext {
|
|
70
|
+
root: string;
|
|
71
|
+
/** Repo-relative app dir, or `null` for the repo-scoped checks. */
|
|
72
|
+
app: string | null;
|
|
73
|
+
findings: Finding[];
|
|
74
|
+
}
|
|
75
|
+
/** Turn a rule + its findings into the doctor-engine result shape. */
|
|
76
|
+
export declare function resultFor(code: AppCheckCode, findings: Finding[]): CheckResult;
|
|
77
|
+
/** The `Check`s for one scope: every app-scoped rule for an app, every repo-scoped rule for the repo. */
|
|
78
|
+
export declare function appContractChecks(scope: "app" | "repo"): Check<AppCheckContext>[];
|
|
79
|
+
export interface AppCheckReport {
|
|
80
|
+
root: string;
|
|
81
|
+
status: CheckStatus;
|
|
82
|
+
/** Per-app reports, in `listApps` order; the repo-scoped checks ride under `"(repo)"`. */
|
|
83
|
+
scopes: Array<{
|
|
84
|
+
scope: string;
|
|
85
|
+
} & ReturnType<typeof jsonReport>>;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Run the contract over a checkout. `apps` narrows the run to the named
|
|
89
|
+
* repo-relative app dirs (an unknown dir is an error, not a silent pass).
|
|
90
|
+
*/
|
|
91
|
+
export declare function runAppCheck(root: string, apps?: string[]): Promise<AppCheckReport>;
|
|
92
|
+
/** Human rendering: a header per scope, the doctor lines under it, failures only unless `verbose`. */
|
|
93
|
+
export declare function renderReport(report: AppCheckReport, opts: {
|
|
94
|
+
verbose: boolean;
|
|
95
|
+
}): string;
|
|
96
|
+
export declare function registerAppCommands(program: Command): void;
|
|
97
|
+
//# sourceMappingURL=app-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-check.d.ts","sourceRoot":"","sources":["../../../src/commands/app-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAGL,UAAU,EAGV,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAMzB,2GAA2G;AAC3G,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,eAAe,GACf,aAAa,GACb,qBAAqB,GACrB,qBAAqB,GACrB,gBAAgB,GAChB,kBAAkB,GAClB,sBAAsB,GACtB,YAAY,GACZ,gBAAgB,GAChB,iBAAiB,GACjB,aAAa,CAAC;AAElB,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,QAAQ,EAAE,OAAO,GAAG,UAAU,CAAC;IAC/B,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,YAAY,EAAE,YAAY,CAuF9D,CAAC;AAEF,eAAO,MAAM,eAAe,EAAmC,YAAY,EAAE,CAAC;AAE9E,kFAAkF;AAClF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AA4CD,4GAA4G;AAC5G,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAwB9C;AAOD,wDAAwD;AACxD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7C;AAsED,2GAA2G;AAC3G,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAY/C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,CAgG/D;AAYD,0GAA0G;AAC1G,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAwBhD;AAMD,+FAA+F;AAC/F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,sEAAsE;AACtE,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,WAAW,CAU9E;AAED,yGAAyG;AACzG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,EAAE,CAOjF;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,0FAA0F;IAC1F,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;CAClE;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAcxF;AAED,sGAAsG;AACtG,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAoBvF;AAMD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0B1D"}
|