create-workframe 0.1.7 → 0.1.9
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 +1 -1
- package/package.json +1 -1
- package/scripts/apply-update-workframe.sh +68 -28
- package/scripts/compose-docker-host.sh +8 -2
- package/workframe-api/.dockerignore +4 -0
- package/workframe-api/package.json +1 -1
- package/workframe-api/server.py +306 -70
- package/workframe-api/stack_config.py +7 -7
- package/workframe-api/test_stack_config_install_smtp.py +5 -0
- package/workframe-api/updates.py +146 -33
- package/workframe-supervisor/Dockerfile +1 -1
- package/workframe-supervisor/server.py +16 -3
- package/workframe-ui/public/assets/{arc-Cn-lt9fT.js → arc-DjpS9a2b.js} +1 -1
- package/workframe-ui/public/assets/architecture-7EHR7CIX-CvhbXEvt.js +1 -0
- package/workframe-ui/public/assets/{architectureDiagram-3BPJPVTR-qXoGCqfH.js → architectureDiagram-3BPJPVTR-puCKmKHV.js} +1 -1
- package/workframe-ui/public/assets/{blockDiagram-GPEHLZMM-DoopFlWj.js → blockDiagram-GPEHLZMM-C2P0g-eH.js} +1 -1
- package/workframe-ui/public/assets/{c4Diagram-AAUBKEIU-BRa7hfzE.js → c4Diagram-AAUBKEIU-DdvYEITH.js} +1 -1
- package/workframe-ui/public/assets/channel-D63s_yN9.js +1 -0
- package/workframe-ui/public/assets/{chunk-2J33WTMH-Cl33E2hh.js → chunk-2J33WTMH-Cxe8QsEF.js} +1 -1
- package/workframe-ui/public/assets/{chunk-3OPIFGDE-BRywYZQO.js → chunk-3OPIFGDE-DPNyTwR3.js} +1 -1
- package/workframe-ui/public/assets/{chunk-4BX2VUAB-CI3xzp-0.js → chunk-4BX2VUAB-XKG9gfRN.js} +1 -1
- package/workframe-ui/public/assets/{chunk-55IACEB6-Bkf3Ye3F.js → chunk-55IACEB6-oPMTulgb.js} +1 -1
- package/workframe-ui/public/assets/{chunk-5ZQYHXKU-C5RN3hUT.js → chunk-5ZQYHXKU-BWwXvpa_.js} +1 -1
- package/workframe-ui/public/assets/{chunk-727SXJPM-BaY0yDwt.js → chunk-727SXJPM-Cml2twO_.js} +1 -1
- package/workframe-ui/public/assets/{chunk-AQP2D5EJ-VMMBaDqd.js → chunk-AQP2D5EJ-DzrRBhQu.js} +1 -1
- package/workframe-ui/public/assets/{chunk-BSJP7CBP-DlNZ1UV3.js → chunk-BSJP7CBP-EZ7STU6h.js} +1 -1
- package/workframe-ui/public/assets/{chunk-CSCIHK7Q-tT2HyVy0.js → chunk-CSCIHK7Q-BGTQzWYw.js} +1 -1
- package/workframe-ui/public/assets/{chunk-FMBD7UC4-CyACRaUT.js → chunk-FMBD7UC4-Cm4stfRa.js} +1 -1
- package/workframe-ui/public/assets/{chunk-KSCS5N6A-seK5WAZs.js → chunk-KSCS5N6A-exbMijjy.js} +1 -1
- package/workframe-ui/public/assets/{chunk-L5ZTLDWV-r5cyG5AH.js → chunk-L5ZTLDWV-C75kbQwN.js} +1 -1
- package/workframe-ui/public/assets/{chunk-LZXEDZCA-SnbeVxsJ.js → chunk-LZXEDZCA-CsRdBqUB.js} +2 -2
- package/workframe-ui/public/assets/{chunk-ND2GUHAM-zbFgEXSJ.js → chunk-ND2GUHAM-D84zyIu2.js} +1 -1
- package/workframe-ui/public/assets/{chunk-NZK2D7GU-UhZc8kOk.js → chunk-NZK2D7GU-CUNNo1bj.js} +1 -1
- package/workframe-ui/public/assets/{chunk-O5CBEL6O-DHvu2iZ-.js → chunk-O5CBEL6O-DN6WEIh-.js} +1 -1
- package/workframe-ui/public/assets/chunk-QZHKN3VN-Dj_Yxhgo.js +1 -0
- package/workframe-ui/public/assets/chunk-WU5MYG2G-AFchshb6.js +1 -0
- package/workframe-ui/public/assets/{chunk-XPW4576I-CCPNKbzG.js → chunk-XPW4576I-Ct5VQv2D.js} +1 -1
- package/workframe-ui/public/assets/classDiagram-4FO5ZUOK-Opj8t01I.js +1 -0
- package/workframe-ui/public/assets/classDiagram-v2-Q7XG4LA2-Opj8t01I.js +1 -0
- package/workframe-ui/public/assets/{cose-bilkent-S5V4N54A-D1CLe6Y0.js → cose-bilkent-S5V4N54A-Bj4W5oMk.js} +1 -1
- package/workframe-ui/public/assets/{dagre-BM42HDAG-DYHcGVs_.js → dagre-BM42HDAG-DAjHBkAy.js} +1 -1
- package/workframe-ui/public/assets/{diagram-2AECGRRQ-DVUkJ-II.js → diagram-2AECGRRQ-Ch2gGFPG.js} +1 -1
- package/workframe-ui/public/assets/{diagram-5GNKFQAL-C9Y1Acc2.js → diagram-5GNKFQAL-BzIIvgYH.js} +1 -1
- package/workframe-ui/public/assets/{diagram-KO2AKTUF-Db3zez-n.js → diagram-KO2AKTUF-Df0Q8nv6.js} +1 -1
- package/workframe-ui/public/assets/{diagram-LMA3HP47-BaOR5sIr.js → diagram-LMA3HP47-D-G3ekmF.js} +1 -1
- package/workframe-ui/public/assets/{diagram-OG6HWLK6-fLBzMY5W.js → diagram-OG6HWLK6-TBHhT9f5.js} +1 -1
- package/workframe-ui/public/assets/{dist-uZYeD3o1.js → dist-CPbiDkEZ.js} +1 -1
- package/workframe-ui/public/assets/{erDiagram-TEJ5UH35-BoCxDSyE.js → erDiagram-TEJ5UH35-YxkUmLLV.js} +1 -1
- package/workframe-ui/public/assets/eventmodeling-FCH6USID-LQOYL50n.js +1 -0
- package/workframe-ui/public/assets/{flowDiagram-I6XJVG4X-BnYa3CAj.js → flowDiagram-I6XJVG4X-kfZ7-RSd.js} +1 -1
- package/workframe-ui/public/assets/{ganttDiagram-6RSMTGT7-Dm_e_Kaa.js → ganttDiagram-6RSMTGT7-DmTx3hzR.js} +1 -1
- package/workframe-ui/public/assets/{gitGraph-WXDBUCRP-CBAj8ntv.js → gitGraph-WXDBUCRP-BXa0ewp3.js} +1 -1
- package/workframe-ui/public/assets/{gitGraphDiagram-PVQCEYII-D5auJjJh.js → gitGraphDiagram-PVQCEYII-CQr2qMxU.js} +1 -1
- package/workframe-ui/public/assets/{index-auJ0bLMU.css → index-B08aShJy.css} +1 -1
- package/workframe-ui/public/assets/index-DCF3W3G_.js +129 -0
- package/workframe-ui/public/assets/{info-J43DQDTF-BNMADxE2.js → info-J43DQDTF-t-Qlx8zv.js} +1 -1
- package/workframe-ui/public/assets/{infoDiagram-5YYISTIA-C8c45T4J.js → infoDiagram-5YYISTIA-CzkYofPx.js} +1 -1
- package/workframe-ui/public/assets/{ishikawaDiagram-YF4QCWOH-CyWuHB4e.js → ishikawaDiagram-YF4QCWOH-djK3Oxgb.js} +1 -1
- package/workframe-ui/public/assets/{journeyDiagram-JHISSGLW-B43pCuDT.js → journeyDiagram-JHISSGLW-CWxYXxdF.js} +1 -1
- package/workframe-ui/public/assets/{kanban-definition-UN3LZRKU-Dyn480BI.js → kanban-definition-UN3LZRKU-D7leCAD9.js} +1 -1
- package/workframe-ui/public/assets/{line-CNtIbnmt.js → line-BSFj2OC5.js} +1 -1
- package/workframe-ui/public/assets/{linear-pmSg_4uV.js → linear-pfPwnu-o.js} +1 -1
- package/workframe-ui/public/assets/{mermaid-parser.core-BX4tnojE.js → mermaid-parser.core-Dm2L9Ib_.js} +2 -2
- package/workframe-ui/public/assets/{mermaid.core-BtpBva5o.js → mermaid.core-Bevx9bif.js} +3 -3
- package/workframe-ui/public/assets/{mindmap-definition-RKZ34NQL-DcMcB_69.js → mindmap-definition-RKZ34NQL-UkjDssmP.js} +1 -1
- package/workframe-ui/public/assets/{packet-YPE3B663-KSzK9WlD.js → packet-YPE3B663-JO2ezH3_.js} +1 -1
- package/workframe-ui/public/assets/{pie-LRSECV5Y-DLOH6Mg8.js → pie-LRSECV5Y-DdMFsfR8.js} +1 -1
- package/workframe-ui/public/assets/{pieDiagram-4H26LBE5-BhrX2aGk.js → pieDiagram-4H26LBE5-CEPHFBU1.js} +1 -1
- package/workframe-ui/public/assets/{quadrantDiagram-W4KKPZXB-B5dDjbTX.js → quadrantDiagram-W4KKPZXB-_RF9_86k.js} +1 -1
- package/workframe-ui/public/assets/{radar-GUYGQ44K-BPdjqZiu.js → radar-GUYGQ44K-Cb-YfdaA.js} +1 -1
- package/workframe-ui/public/assets/{requirementDiagram-4Y6WPE33-21Dq5e0N.js → requirementDiagram-4Y6WPE33-DBVOxmBn.js} +1 -1
- package/workframe-ui/public/assets/{sankeyDiagram-5OEKKPKP-CiA99dbO.js → sankeyDiagram-5OEKKPKP-BTpxsGUA.js} +1 -1
- package/workframe-ui/public/assets/{sequenceDiagram-3UESZ5HK-Bwpui7_x.js → sequenceDiagram-3UESZ5HK-DHP_Bq3l.js} +1 -1
- package/workframe-ui/public/assets/{src-B3Axsi1U.js → src-CY_By-r7.js} +1 -1
- package/workframe-ui/public/assets/{stateDiagram-AJRCARHV-C76qwtE8.js → stateDiagram-AJRCARHV-BVtp_LPR.js} +1 -1
- package/workframe-ui/public/assets/stateDiagram-v2-BHNVJYJU-CvJhS_BJ.js +1 -0
- package/workframe-ui/public/assets/{timeline-definition-PNZ67QCA-CufInOyk.js → timeline-definition-PNZ67QCA-D38HJhop.js} +1 -1
- package/workframe-ui/public/assets/{treeView-BLDUP644-C4sxh0R-.js → treeView-BLDUP644-CFCG3Sc_.js} +1 -1
- package/workframe-ui/public/assets/{treemap-LRROVOQU-BjV72ANV.js → treemap-LRROVOQU-BeiMs_dF.js} +1 -1
- package/workframe-ui/public/assets/{vennDiagram-CIIHVFJN-DgsdR0Rl.js → vennDiagram-CIIHVFJN-CKMeT6PW.js} +1 -1
- package/workframe-ui/public/assets/{wardley-L42UT6IY-DZ279G_t.js → wardley-L42UT6IY-BljDy8ph.js} +1 -1
- package/workframe-ui/public/assets/{wardleyDiagram-YWT4CUSO-Bde25kvz.js → wardleyDiagram-YWT4CUSO-DEE8D94J.js} +1 -1
- package/workframe-ui/public/assets/{xychartDiagram-2RQKCTM6-B8VnS2Pb.js → xychartDiagram-2RQKCTM6-BRaAWV_g.js} +1 -1
- package/workframe-ui/public/index.html +2 -2
- package/workframe-ui/public/assets/architecture-7EHR7CIX-CCMNXHod.js +0 -1
- package/workframe-ui/public/assets/channel-CtFV3sE3.js +0 -1
- package/workframe-ui/public/assets/chunk-QZHKN3VN-B1g7l1_B.js +0 -1
- package/workframe-ui/public/assets/chunk-WU5MYG2G-B_qfZ6QP.js +0 -1
- package/workframe-ui/public/assets/classDiagram-4FO5ZUOK-CJoeCNq6.js +0 -1
- package/workframe-ui/public/assets/classDiagram-v2-Q7XG4LA2-CJoeCNq6.js +0 -1
- package/workframe-ui/public/assets/eventmodeling-FCH6USID-Bw910jho.js +0 -1
- package/workframe-ui/public/assets/index-DHLQNAXd.js +0 -129
- package/workframe-ui/public/assets/stateDiagram-v2-BHNVJYJU-Dn0CDWJD.js +0 -1
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -43,6 +43,60 @@ _wf_sync_tree() {
|
|
|
43
43
|
cp -a "${src}/." "${dest}/"
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
_wf_sync_from_pack_dir() {
|
|
47
|
+
local pkg="$1"
|
|
48
|
+
if [[ -d "$pkg/workframe-api" ]]; then
|
|
49
|
+
echo "Syncing workframe-api -> $API_DIR"
|
|
50
|
+
_wf_sync_tree "$pkg/workframe-api" "$API_DIR"
|
|
51
|
+
fi
|
|
52
|
+
if [[ -d "$pkg/workframe-supervisor" ]]; then
|
|
53
|
+
echo "Syncing workframe-supervisor -> $SUP_DIR"
|
|
54
|
+
_wf_sync_tree "$pkg/workframe-supervisor" "$SUP_DIR"
|
|
55
|
+
fi
|
|
56
|
+
if [[ -d "$pkg/workframe-ui/public" ]]; then
|
|
57
|
+
echo "Syncing workframe-ui/public -> $UI_DIR"
|
|
58
|
+
_wf_sync_tree "$pkg/workframe-ui/public" "$UI_DIR"
|
|
59
|
+
fi
|
|
60
|
+
for script in apply-update-hermes.sh apply-update-workframe.sh restart-gateway-hermes.sh compose-docker-host.sh update-hermes.sh; do
|
|
61
|
+
if [[ -f "$pkg/scripts/$script" ]]; then
|
|
62
|
+
cp -a "$pkg/scripts/$script" "$SCRIPTS_DIR/$script"
|
|
63
|
+
chmod +x "$SCRIPTS_DIR/$script" 2>/dev/null || true
|
|
64
|
+
fi
|
|
65
|
+
done
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
_wf_apply_npm_tarball() {
|
|
69
|
+
local tarball="$1"
|
|
70
|
+
local ver="${2:-latest}"
|
|
71
|
+
if ! _wf_npm_integrity_ok "$tarball" "$NPM_PACKAGE" "$ver"; then
|
|
72
|
+
echo "integrity mismatch for ${NPM_PACKAGE}@${ver}" >&2
|
|
73
|
+
exit 1
|
|
74
|
+
fi
|
|
75
|
+
echo "integrity ok: ${NPM_PACKAGE}@${ver}"
|
|
76
|
+
local extract_dir
|
|
77
|
+
extract_dir="$(mktemp -d)"
|
|
78
|
+
tar -xf "$tarball" -C "$extract_dir"
|
|
79
|
+
_wf_sync_from_pack_dir "$extract_dir/package"
|
|
80
|
+
rm -rf "$extract_dir"
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
_wf_record_package_version() {
|
|
84
|
+
local ver="$1"
|
|
85
|
+
[[ -n "$ver" ]] || return 0
|
|
86
|
+
mkdir -p "$API_DIR/data"
|
|
87
|
+
printf '%s\n' "$ver" > "$API_DIR/data/package-version"
|
|
88
|
+
if [[ -f "$PROJECT_ROOT/workframe-manifest.json" ]] && command -v python3 >/dev/null 2>&1; then
|
|
89
|
+
python3 -c 'import json, sys
|
|
90
|
+
from pathlib import Path
|
|
91
|
+
p = Path(sys.argv[1])
|
|
92
|
+
ver = sys.argv[2]
|
|
93
|
+
data = json.loads(p.read_text(encoding="utf-8"))
|
|
94
|
+
data["package_version"] = ver
|
|
95
|
+
data["generator"] = f"create-workframe@{ver}"
|
|
96
|
+
p.write_text(json.dumps(data, indent=2) + "\n", encoding="utf-8")' "$PROJECT_ROOT/workframe-manifest.json" "$ver"
|
|
97
|
+
fi
|
|
98
|
+
}
|
|
99
|
+
|
|
46
100
|
_wf_install_paths() {
|
|
47
101
|
local root="$1"
|
|
48
102
|
if [[ -d "$root/services/workframe-api" ]]; then
|
|
@@ -88,8 +142,12 @@ echo "Preserves: Agents/, Files/, .env, workframe-api/data, gateway/Hermes profi
|
|
|
88
142
|
|
|
89
143
|
TARGET_VERSION="${WORKFRAME_UPDATE_VERSION:-}"
|
|
90
144
|
NPM_PACKAGE="${WORKFRAME_NPM_PACKAGE:-create-workframe}"
|
|
145
|
+
PREFETCH_TARBALL="${WORKFRAME_UPDATE_TARBALL:-}"
|
|
91
146
|
|
|
92
|
-
if [[ "$
|
|
147
|
+
if [[ -n "$PREFETCH_TARBALL" && -f "$PREFETCH_TARBALL" ]]; then
|
|
148
|
+
echo "Applying API-prefetched tarball: $PREFETCH_TARBALL"
|
|
149
|
+
_wf_apply_npm_tarball "$PREFETCH_TARBALL" "${TARGET_VERSION:-latest}"
|
|
150
|
+
elif [[ "${WORKFRAME_UPDATE_SKIP_NPM:-1}" == "1" ]] && [[ "${WORKFRAME_UPDATE_ALLOW_NPM:-}" != "1" ]]; then
|
|
93
151
|
echo "Skipping npm template sync (WORKFRAME_UPDATE_SKIP_NPM=1; set WORKFRAME_UPDATE_ALLOW_NPM=1 to fetch)"
|
|
94
152
|
elif command -v npm >/dev/null 2>&1; then
|
|
95
153
|
if [[ "${WORKFRAME_UPDATE_ALLOW_NPM:-}" == "1" ]] && [[ -z "$TARGET_VERSION" ]]; then
|
|
@@ -99,36 +157,16 @@ elif command -v npm >/dev/null 2>&1; then
|
|
|
99
157
|
TMP="$(mktemp -d)"
|
|
100
158
|
trap 'rm -rf "$TMP"' EXIT
|
|
101
159
|
echo "Fetching ${NPM_PACKAGE}@${TARGET_VERSION:-latest} from npm..."
|
|
102
|
-
(cd "$TMP" && npm pack "${NPM_PACKAGE}@${TARGET_VERSION:-latest}" --silent)
|
|
160
|
+
if ! (cd "$TMP" && npm pack "${NPM_PACKAGE}@${TARGET_VERSION:-latest}" --silent); then
|
|
161
|
+
echo "npm pack failed (supervisor control-net has no registry access — use API prefetch)" >&2
|
|
162
|
+
exit 1
|
|
163
|
+
fi
|
|
103
164
|
TARBALL="$(ls -1 "$TMP"/${NPM_PACKAGE}-*.tgz 2>/dev/null | head -n1 || true)"
|
|
104
165
|
if [[ -n "$TARBALL" ]]; then
|
|
105
|
-
|
|
106
|
-
echo "integrity mismatch for ${NPM_PACKAGE}@${TARGET_VERSION:-latest}" >&2
|
|
107
|
-
exit 1
|
|
108
|
-
fi
|
|
109
|
-
echo "integrity ok: ${NPM_PACKAGE}@${TARGET_VERSION:-latest}"
|
|
110
|
-
tar -xf "$TARBALL" -C "$TMP"
|
|
111
|
-
PKG="$TMP/package"
|
|
112
|
-
if [[ -d "$PKG/workframe-api" ]]; then
|
|
113
|
-
echo "Syncing workframe-api -> $API_DIR"
|
|
114
|
-
_wf_sync_tree "$PKG/workframe-api" "$API_DIR"
|
|
115
|
-
fi
|
|
116
|
-
if [[ -d "$PKG/workframe-supervisor" ]]; then
|
|
117
|
-
echo "Syncing workframe-supervisor -> $SUP_DIR"
|
|
118
|
-
_wf_sync_tree "$PKG/workframe-supervisor" "$SUP_DIR"
|
|
119
|
-
fi
|
|
120
|
-
if [[ -d "$PKG/workframe-ui/public" ]]; then
|
|
121
|
-
echo "Syncing workframe-ui/public -> $UI_DIR"
|
|
122
|
-
_wf_sync_tree "$PKG/workframe-ui/public" "$UI_DIR"
|
|
123
|
-
fi
|
|
124
|
-
for script in apply-update-hermes.sh apply-update-workframe.sh restart-gateway-hermes.sh compose-docker-host.sh update-hermes.sh; do
|
|
125
|
-
if [[ -f "$PKG/scripts/$script" ]]; then
|
|
126
|
-
cp -a "$PKG/scripts/$script" "$SCRIPTS_DIR/$script"
|
|
127
|
-
chmod +x "$SCRIPTS_DIR/$script" 2>/dev/null || true
|
|
128
|
-
fi
|
|
129
|
-
done
|
|
166
|
+
_wf_apply_npm_tarball "$TARBALL" "${TARGET_VERSION:-latest}"
|
|
130
167
|
else
|
|
131
|
-
echo "npm pack produced no tarball — skipping template sync"
|
|
168
|
+
echo "npm pack produced no tarball — skipping template sync" >&2
|
|
169
|
+
exit 1
|
|
132
170
|
fi
|
|
133
171
|
else
|
|
134
172
|
echo "Skipping npm template sync (npm missing or WORKFRAME_UPDATE_SKIP_NPM=1)"
|
|
@@ -144,4 +182,6 @@ elif workframe_compose config --services 2>/dev/null | grep -qx workframe; then
|
|
|
144
182
|
workframe_compose up -d --no-deps workframe || workframe_compose restart workframe || true
|
|
145
183
|
fi
|
|
146
184
|
|
|
185
|
+
_wf_record_package_version "${TARGET_VERSION:-}"
|
|
186
|
+
|
|
147
187
|
echo "=== Workframe update complete ==="
|
|
@@ -6,12 +6,18 @@ workframe_compose_prepare() {
|
|
|
6
6
|
compose_cd=""
|
|
7
7
|
compose_files=()
|
|
8
8
|
|
|
9
|
-
# Host-bindings overlay: docker.sock
|
|
9
|
+
# Host-bindings overlay: absolute WORKFRAME_HOST_* paths for docker.sock on the real host.
|
|
10
|
+
# Skip inside supervisor when only the /compose bind mount is visible — host paths become
|
|
11
|
+
# /compose/D:/... and break build contexts.
|
|
10
12
|
if [[ -n "${WORKFRAME_HOST_COMPOSE_DIR:-}" && -n "${WORKFRAME_COMPOSE_DIR:-}" \
|
|
11
13
|
&& -f "${WORKFRAME_COMPOSE_DIR}/docker-compose.yml" \
|
|
12
14
|
&& -f "${WORKFRAME_COMPOSE_DIR}/docker-compose.host-bindings.yml" ]]; then
|
|
13
15
|
compose_cd="${WORKFRAME_COMPOSE_DIR}"
|
|
14
|
-
|
|
16
|
+
if [[ -d "${WORKFRAME_HOST_COMPOSE_DIR}" ]]; then
|
|
17
|
+
compose_files=(-f docker-compose.yml -f docker-compose.host-bindings.yml)
|
|
18
|
+
else
|
|
19
|
+
compose_files=(-f docker-compose.yml)
|
|
20
|
+
fi
|
|
15
21
|
return 0
|
|
16
22
|
fi
|
|
17
23
|
|