@aipt/cli 0.1.36 → 0.1.38
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 +5 -4
- package/dist/application-runner.js +171 -170
- package/dist/application.js +74 -74
- package/dist/catalog/foundation.environment-schema/2.1.0/assets/config/application-config.json +4 -0
- package/dist/catalog/foundation.environment-schema/2.1.0/assets/docs/engineering/environment.md +18 -0
- package/dist/catalog/foundation.environment-schema/2.1.0/release.json +25 -0
- package/dist/chunk.js +1 -1
- package/dist/optional-runtime.js +30 -30
- package/dist/package-releases/aipt--cli/0.1.37/release.json +29 -0
- package/dist/package-releases/aipt--cli/0.1.38/release.json +29 -0
- package/dist/package-releases/aipt--idp-setup/0.1.10/release.json +31 -0
- package/dist/package-releases/aipt--idp-setup/0.1.11/release.json +31 -0
- package/dist/package-releases/aipt--platform-kernel/0.1.11/release.json +33 -0
- package/dist/package-releases/aipt--platform-kernel/0.1.12/release.json +33 -0
- package/docs/bootstrap.md +1 -1
- package/docs/vibe-coding-guide.md +1 -1
- package/documentation-manifest.json +3 -3
- package/package.json +1 -1
package/dist/catalog/foundation.environment-schema/2.1.0/assets/docs/engineering/environment.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# 应用配置目录契约
|
|
2
|
+
|
|
3
|
+
`config/application-config.json` 是应用运行配置的正式合同。旧项目首次执行 `idp-setup bootstrap` 时,
|
|
4
|
+
`.env.example` 必须覆盖代码直接消费的全部环境变量,并由不可变 Bootstrap Plan 迁移为该合同。
|
|
5
|
+
|
|
6
|
+
- 普通值保留环境变量名和非敏感默认值;
|
|
7
|
+
- Password、Token、数据库 URL、API Key、AccessKey 等转换为 `secret-file`,真实值只进入仓库外 Config Dir;
|
|
8
|
+
- 合同以 `runtimeEnvironmentVariable` 记录原运行时变量名,以 `*_FILE` Binding 定位 Secret;
|
|
9
|
+
- `.dyyto/application-config-binding.json` 只描述应用身份和 Config Dir 逻辑定位,不保存绝对路径或 Secret;
|
|
10
|
+
- 工作台、CLI 与部署控制面只消费合同投影,不把 `.env.example` 当成第二套运行时事实。
|
|
11
|
+
|
|
12
|
+
实际目录由 `APP_CONFIG_DIR`、Workspace、Unit 和 Environment 唯一定位:
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
$APP_CONFIG_DIR/<workspace>/<apps|services>/<application>/<environment>/.env
|
|
16
|
+
$APP_CONFIG_DIR/<workspace>/<apps|services>/<application>/<environment>/secrets/*
|
|
17
|
+
$APP_CONFIG_DIR/<workspace>/<apps|services>/<application>/<environment>/certs/*
|
|
18
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"capabilityId": "foundation.environment-schema",
|
|
4
|
+
"version": "2.1.0",
|
|
5
|
+
"integrity": "sha256:eea3e27c27e5c7b7a3eb4fe43656b1636ec78123affe30182a8de2dc822c029e",
|
|
6
|
+
"consumerProfile": "any-project",
|
|
7
|
+
"kind": "engineering-feature",
|
|
8
|
+
"dependencies": { "profiles": ["nextjs-full-stack-application", "workspace-node-application", "workspace-web-application"] },
|
|
9
|
+
"compatibility": { "node": ">=24.18.0 <25", "pnpm": "11.21.0", "typescript": "6.0.3" },
|
|
10
|
+
"integration": {
|
|
11
|
+
"title": "全量应用 Config Dir 契约",
|
|
12
|
+
"purpose": "由 Bootstrap 将完整环境声明迁移为普通值与安全文件 Binding,并由外部部署控制面物化。",
|
|
13
|
+
"packages": [],
|
|
14
|
+
"codeAssets": [
|
|
15
|
+
{ "sourcePath": "assets/config/application-config.json", "targetPath": "config/application-config.json", "ownership": "seed-file" },
|
|
16
|
+
{ "sourcePath": "assets/docs/engineering/environment.md", "targetPath": "docs/engineering/environment.md", "ownership": "owned-file" }
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
"assets": [
|
|
20
|
+
{ "path": "config/application-config.json", "ownership": "seed-file", "digest": "sha256:43a92aed2fa1d3aac4f9f78fba0f2748c4039a6e23fd0a4869c0d028f48d832d", "mode": 420, "renderer": "application-config-contract-v1" },
|
|
21
|
+
{ "path": "docs/engineering/environment.md", "ownership": "owned-file", "digest": "sha256:354f57e32aabcdf8d1bf3057e90122a2ae839a852fcbf3d4832b9ab1d2fe36aa", "mode": 420 }
|
|
22
|
+
],
|
|
23
|
+
"verifiers": [{ "id": "application.config-contract" }],
|
|
24
|
+
"exit": { "ownedAssets": ["config/application-config.json", "docs/engineering/environment.md"] }
|
|
25
|
+
}
|
package/dist/chunk.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var h=Object.create;var u=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var O=(e,n)=>()=>{try{return n||e((n={exports:{}}).exports,n),n.exports}catch(t){throw n=0,t}};var v=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of C(n))!b.call(e,o)&&o!==t&&u(e,o,{get:()=>n[o],enumerable:!(r=w(n,o))||r.enumerable});return e};var N=(e,n,t)=>(t=e!=null?h(E(e)):{},v(n||!e||!e.__esModule?u(t,"default",{value:e,enumerable:!0}):t,e));var F="0.1.
|
|
1
|
+
var h=Object.create;var u=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var O=(e,n)=>()=>{try{return n||e((n={exports:{}}).exports,n),n.exports}catch(t){throw n=0,t}};var v=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of C(n))!b.call(e,o)&&o!==t&&u(e,o,{get:()=>n[o],enumerable:!(r=w(n,o))||r.enumerable});return e};var N=(e,n,t)=>(t=e!=null?h(E(e)):{},v(n||!e||!e.__esModule?u(t,"default",{value:e,enumerable:!0}):t,e));var F="0.1.38",c={DEPENDENCIES_NOT_INSTALLED:4,VERIFIER_RUNTIME_INVALID:4},D=/[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]/u;function f(e,n){return typeof e=="string"&&e.length>0&&e.length<=n&&!D.test(e)}function j(e){let n={schemaVersion:1,kind:"dyyto-cli-domain-error",code:e.code,message:e.message,exitCode:c[e.code],...e.nextStep===void 0?{}:{nextStep:e.nextStep}},t=m(n);if(t===null)throw new TypeError("CLI domain error input is invalid");return t}function m(e){try{if(typeof e!="object"||e===null||Object.getPrototypeOf(e)!==Object.prototype)return null;let n=Object.getOwnPropertyDescriptors(e);if(Reflect.ownKeys(n).some(i=>typeof i=="symbol"))return null;let t=Object.keys(n).sort(),r="nextStep"in n?["code","exitCode","kind","message","nextStep","schemaVersion"]:["code","exitCode","kind","message","schemaVersion"];if(t.length!==r.length||t.some((i,k)=>i!==r[k])||Object.values(n).some(i=>!("value"in i)))return null;let o=i=>n[i]?.value,a=o("code");if(o("schemaVersion")!==1||o("kind")!=="dyyto-cli-domain-error"||typeof a!="string"||!(a in c)||o("exitCode")!==c[a]||!f(o("message"),500))return null;let s=o("nextStep");return s!==void 0&&!f(s,500)?null:Object.freeze({schemaVersion:1,kind:"dyyto-cli-domain-error",code:a,message:o("message"),exitCode:4,...s===void 0?{}:{nextStep:s}})}catch{return null}}function T(e){if(e instanceof l&&e.domainError!==void 0)return e.domainError;try{if(typeof e!="object"||e===null)return null;let n=Object.getOwnPropertyDescriptor(e,"domainError");return n!==void 0&&"value"in n?m(n.value):null}catch{return null}}var l=class extends Error{code;exitCode;nextStep;domainError;constructor(n){super(n.message),this.name="CliError",this.code=n.code,this.exitCode=n.exitCode,this.nextStep=n.nextStep,this.domainError=n.code in c&&n.exitCode===c[n.code]?j({code:n.code,message:n.message,...n.nextStep===void 0?{}:{nextStep:n.nextStep}}):void 0}};var z=`Dyyto Engineering Platform CLI
|
|
2
2
|
|
|
3
3
|
Usage:
|
|
4
4
|
dyyto <command> [options]
|