@promptowl/contextnest-community 1.25.0 → 1.26.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/API.md +68 -8
- package/CONFIGURATION.md +572 -116
- package/README.md +3 -2
- package/dist/{chunk-32SZCH36.js → chunk-2QOJE7A5.js} +4 -4
- package/dist/{chunk-2KHM5C7V.js → chunk-DGPTJXIV.js} +13 -15
- package/dist/chunk-I5EDEZBQ.js +523 -0
- package/dist/{chunk-TI7HMP64.js → chunk-IEAWRHMV.js} +2 -2
- package/dist/{chunk-DTLMBF4W.js → chunk-M6PGYMBD.js} +15 -8
- package/dist/{chunk-F66VCBLA.js → chunk-PICUHQEM.js} +51 -2
- package/dist/{chunk-KPGNZLZL.js → chunk-RPGFHESR.js} +1 -1
- package/dist/{chunk-7FROMOZM.js → chunk-SWA5M5XX.js} +68 -544
- package/dist/{chunk-JDAOA5KP.js → chunk-TRSGPS27.js} +39 -14
- package/dist/{engine-TER6FDBP.js → engine-QNMFDIBV.js} +3 -2
- package/dist/{external-edit-service-CAGENHDJ.js → external-edit-service-4MEGPT4D.js} +4 -3
- package/dist/{grants-service-2OTFS7EH.js → grants-service-24GLUBY4.js} +2 -2
- package/dist/index.js +911 -263
- package/dist/invited-user-AM6A3WGO.js +12 -0
- package/dist/{migrations.postgres-23VJJJJX.js → migrations.postgres-HGSQ7IA5.js} +4 -0
- package/dist/{review-service-4G2XUFS6.js → review-service-2EWN7WWO.js} +7 -6
- package/dist/{stewardship-service-S22V2JKG.js → stewardship-service-TDZUC2Q6.js} +4 -3
- package/dist/{version-service-X4FAG2OZ.js → version-service-C3JTZLJH.js} +4 -3
- package/dist/web3/assets/ActivityTracePage-DzwWIjjx.js +1 -0
- package/dist/web3/assets/{AgentDocsPage-Dkhgb1hk.js → AgentDocsPage-ixP2UdAE.js} +1 -1
- package/dist/web3/assets/CollaboratorManager-C9VAXZ0h.js +1 -0
- package/dist/web3/assets/CollaboratorsTab-tq4ZTexH.js +1 -0
- package/dist/web3/assets/DocumentEditor-C2CP2fiE.js +36 -0
- package/dist/web3/assets/DocumentsTab-Mh7KxUoB.js +6 -0
- package/dist/web3/assets/ExternalEditsTab-B_CWKXZ_.js +1 -0
- package/dist/web3/assets/{MarkdownEditor-Dfk5uIE5.js → MarkdownEditor-CKh4WSn-.js} +136 -131
- package/dist/web3/assets/MarkdownEditor-ndtIx5x0.css +1 -0
- package/dist/web3/assets/NestPageHeader-Cizo8nUi.js +1 -0
- package/dist/web3/assets/NestView-EW-sraEb.js +73 -0
- package/dist/web3/assets/OverviewTab-CjidsMX_.js +6 -0
- package/dist/web3/assets/PersonCombobox-BKI7dff4.js +1 -0
- package/dist/web3/assets/{ReviewActions-BXDTDPp1.js → ReviewActions-CS8JXgXF.js} +2 -2
- package/dist/web3/assets/ReviewTab-CwVrXzw5.js +1 -0
- package/dist/web3/assets/StewardsTab-C-iP6gnh.js +1 -0
- package/dist/web3/assets/SubmitForReviewModal-Biq3m79i.js +1 -0
- package/dist/web3/assets/{alert-dialog-4SiLKlz8.js → alert-dialog-BvF3NFr7.js} +2 -2
- package/dist/web3/assets/{arrow-left-BAgIocLn.js → arrow-left-CWIsv-sG.js} +1 -1
- package/dist/web3/assets/backlinks-Cqcn7n1J.js +19 -0
- package/dist/web3/assets/boxes-ClbgQqG2.js +6 -0
- package/dist/web3/assets/{chevron-left-XR4ReJ9Z.js → chevron-left-CK_ZPFm9.js} +1 -1
- package/dist/web3/assets/{circle-check-CSkZUEFK.js → circle-check-Bw_aTXiH.js} +1 -1
- package/dist/web3/assets/{circle-x-in2o3aHU.js → circle-x-DkIG68H7.js} +1 -1
- package/dist/web3/assets/{code-xml-pPQgdctI.js → code-xml-BlR7EN6l.js} +1 -1
- package/dist/web3/assets/{corner-down-right-CuxZWscX.js → corner-down-right-DSVxK3tf.js} +1 -1
- package/dist/web3/assets/count-skeleton-DToLM74B.js +1 -0
- package/dist/web3/assets/{earth-CXOcThqn.js → earth-BXhVPvCR.js} +1 -1
- package/dist/web3/assets/{file-exclamation-point-CSphs1VD.js → file-exclamation-point-BevGZgtj.js} +1 -1
- package/dist/web3/assets/{folder-input-BAwK9tFL.js → folder-input-m8UBV4fA.js} +1 -1
- package/dist/web3/assets/{index-A0_ymcqL.js → index-BOVYgMvj.js} +1 -1
- package/dist/web3/assets/index-DVnaYqj9.css +1 -0
- package/dist/web3/assets/index-WYDmEOfO.js +404 -0
- package/dist/web3/assets/page-B6pkc9cd.js +2 -0
- package/dist/web3/assets/page-BJrFCKXB.js +1 -0
- package/dist/web3/assets/page-Bgy9Ng9p.js +1 -0
- package/dist/web3/assets/page-C2zoxumw.js +1 -0
- package/dist/web3/assets/page-CJWO06dN.js +1 -0
- package/dist/web3/assets/page-CptuAPJc.js +6 -0
- package/dist/web3/assets/page-DPY01SOj.js +1 -0
- package/dist/web3/assets/page-Dea2SblF.js +9 -0
- package/dist/web3/assets/page-Deq6IKiN.js +6 -0
- package/dist/web3/assets/page-Dfjg8p7Z.js +1 -0
- package/dist/web3/assets/{page-xzYqkBUP.js → page-Dh57L0RG.js} +5 -5
- package/dist/web3/assets/page-Dwbp4Seu.js +6 -0
- package/dist/web3/assets/{page-CUjuSs5Q.js → page-DzKwP5Ds.js} +3 -3
- package/dist/web3/assets/page-YxjrE5b5.js +45 -0
- package/dist/web3/assets/{page-title-BkqlUA0j.js → page-title-DVq4qvMR.js} +1 -1
- package/dist/web3/assets/{play-B8xE9j5f.js → play-CXhS6Pgq.js} +1 -1
- package/dist/web3/assets/{send-CvAgOUPG.js → send-DdfwnIrj.js} +1 -1
- package/dist/web3/assets/{settings-EY4A_DYv.js → settings-DKX0Q4gO.js} +1 -1
- package/dist/web3/assets/{share-2-vGmZUl90.js → share-2-CxmXRt58.js} +1 -1
- package/dist/web3/assets/{tag-Br_y1f00.js → tag-DeYC_mRv.js} +1 -1
- package/dist/web3/assets/{trash-2-B4hRXo-p.js → trash-2-B0HyPTnI.js} +1 -1
- package/dist/web3/assets/{user-plus-4CTYEkd3.js → user-plus-Ckm_Isyc.js} +1 -1
- package/dist/web3/assets/{x-qxt1WrUi.js → x-mNtADYHc.js} +1 -1
- package/dist/web3/assets/{zap-BcsKR0ef.js → zap-D2ifcnYb.js} +1 -1
- package/dist/web3/index.html +2 -2
- package/package.json +3 -2
- package/dist/client-D44ZHDTJ.js +0 -11
- package/dist/keys-CTOGAG3W.js +0 -20
- package/dist/web3/assets/ActivityTracePage-D2iIbEph.js +0 -1
- package/dist/web3/assets/CollaboratorManager-Bo81D--Q.js +0 -1
- package/dist/web3/assets/CollaboratorsTab-DRCitQuX.js +0 -1
- package/dist/web3/assets/DocumentEditor-DV2WHYbj.js +0 -36
- package/dist/web3/assets/DocumentsTab-BUxBCN8o.js +0 -6
- package/dist/web3/assets/ExternalEditsTab-kIBimZyE.js +0 -1
- package/dist/web3/assets/MarkdownEditor-CsVusP2d.css +0 -1
- package/dist/web3/assets/NestPageHeader-yOK-OIYZ.js +0 -1
- package/dist/web3/assets/NestView-DwIagxwJ.js +0 -68
- package/dist/web3/assets/OverviewTab-DFOFMVyE.js +0 -1
- package/dist/web3/assets/PersonCombobox-D350WlrJ.js +0 -1
- package/dist/web3/assets/ReasonDialog-CN3ECAnQ.js +0 -1
- package/dist/web3/assets/ReviewTab-CZewAYiz.js +0 -1
- package/dist/web3/assets/StewardsTab-AagNWcWS.js +0 -1
- package/dist/web3/assets/SubmitForReviewModal-BOZJxwRN.js +0 -1
- package/dist/web3/assets/backlinks-Cb8Uf8mw.js +0 -24
- package/dist/web3/assets/card-UDyMRcps.js +0 -1
- package/dist/web3/assets/count-skeleton-DBWCDhRy.js +0 -1
- package/dist/web3/assets/dates-BCxbm4_q.js +0 -1
- package/dist/web3/assets/index-B5hLclEq.js +0 -389
- package/dist/web3/assets/index-DrUAtoQM.css +0 -1
- package/dist/web3/assets/page-BHD4beun.js +0 -1
- package/dist/web3/assets/page-BSYUXYmO.js +0 -11
- package/dist/web3/assets/page-BYc2DIux.js +0 -45
- package/dist/web3/assets/page-BfibLg8e.js +0 -1
- package/dist/web3/assets/page-CGe8MtUu.js +0 -9
- package/dist/web3/assets/page-CIgPJmG6.js +0 -2
- package/dist/web3/assets/page-Ck31nx9b.js +0 -1
- package/dist/web3/assets/page-Cpdj_11Y.js +0 -1
- package/dist/web3/assets/page-D0sN3GO6.js +0 -1
- package/dist/web3/assets/page-DEpH91X2.js +0 -1
- package/dist/web3/assets/page-l8-B7CGt.js +0 -1
- package/dist/web3/assets/page-mnSHmk6A.js +0 -6
- package/dist/web3/assets/refresh-cw-CsCtmWwX.js +0 -6
- package/dist/web3/assets/scroll-area-CbcH6yrZ.js +0 -1
- package/dist/web3/assets/scroll-area-dRWncRqa.css +0 -1
- package/dist/web3/assets/select-DrL0mpRN.js +0 -6
- package/dist/web3/assets/triangle-alert-CsYGyfGZ.js +0 -6
|
@@ -4,19 +4,19 @@ import {
|
|
|
4
4
|
resolveNestWideRoles,
|
|
5
5
|
resolveStewardsForNode,
|
|
6
6
|
stewardCoverageForUser
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-DGPTJXIV.js";
|
|
8
8
|
import {
|
|
9
9
|
grantCoversNode,
|
|
10
10
|
listUserGrants,
|
|
11
11
|
resolveNodeGrant
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-RPGFHESR.js";
|
|
13
13
|
import {
|
|
14
14
|
createVersion,
|
|
15
15
|
getApprovedVersion,
|
|
16
16
|
getApprovedVersions,
|
|
17
17
|
getCurrentVersion,
|
|
18
18
|
setApprovedVersion
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-IEAWRHMV.js";
|
|
20
20
|
import {
|
|
21
21
|
buildDocContext,
|
|
22
22
|
buildTitleMap,
|
|
@@ -28,25 +28,28 @@ import {
|
|
|
28
28
|
isStewardshipEnabled,
|
|
29
29
|
markNotificationsReadBySubject,
|
|
30
30
|
nestName,
|
|
31
|
-
notifyEmailForNest,
|
|
32
31
|
notifyReviewRequested,
|
|
33
32
|
notifyReviewResolved,
|
|
34
33
|
nowExpr,
|
|
35
34
|
opContext,
|
|
36
35
|
prettyFolderPath,
|
|
37
36
|
resolveNestPermission,
|
|
38
|
-
sendEmailToRecipient,
|
|
39
37
|
titleForNode
|
|
40
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-SWA5M5XX.js";
|
|
41
39
|
import {
|
|
42
40
|
ConflictError,
|
|
43
41
|
NotFoundError,
|
|
44
42
|
ValidationError
|
|
45
43
|
} from "./chunk-LHWOJPFE.js";
|
|
44
|
+
import {
|
|
45
|
+
notifyEmailForNest,
|
|
46
|
+
sendEmailToRecipient,
|
|
47
|
+
transportSettings
|
|
48
|
+
} from "./chunk-I5EDEZBQ.js";
|
|
46
49
|
import {
|
|
47
50
|
config,
|
|
48
51
|
getDb
|
|
49
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-TRSGPS27.js";
|
|
50
53
|
|
|
51
54
|
// src/governance/review-service.ts
|
|
52
55
|
import { v4 as uuid2 } from "uuid";
|
|
@@ -712,7 +715,7 @@ async function flush(nestId) {
|
|
|
712
715
|
]);
|
|
713
716
|
}
|
|
714
717
|
async function notifyNestEvent(nestId, message, details, opts) {
|
|
715
|
-
if (!config.SLACK_WEBHOOK_URL && !config.MSTEAMS_WEBHOOK_URL && !
|
|
718
|
+
if (!config.SLACK_WEBHOOK_URL && !config.MSTEAMS_WEBHOOK_URL && !transportSettings())
|
|
716
719
|
return;
|
|
717
720
|
const buf = buffers.get(nestId);
|
|
718
721
|
if (buf) {
|
|
@@ -1131,6 +1134,10 @@ async function getReviewQueue(params) {
|
|
|
1131
1134
|
);
|
|
1132
1135
|
args.push(...statuses);
|
|
1133
1136
|
}
|
|
1137
|
+
if (params.requestedByEmail) {
|
|
1138
|
+
whereClauses.push("requested_by = ?");
|
|
1139
|
+
args.push(params.requestedByEmail);
|
|
1140
|
+
}
|
|
1134
1141
|
const where = whereClauses.length > 0 ? `WHERE ${whereClauses.join(" AND ")}` : "";
|
|
1135
1142
|
const total = Number(
|
|
1136
1143
|
(await db.get(
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
sendEmailToRecipient
|
|
3
|
+
} from "./chunk-I5EDEZBQ.js";
|
|
4
|
+
import {
|
|
5
|
+
config,
|
|
6
|
+
getDb
|
|
7
|
+
} from "./chunk-TRSGPS27.js";
|
|
8
|
+
import {
|
|
9
|
+
normalizeEmail
|
|
10
|
+
} from "./chunk-FRQJWGN3.js";
|
|
11
|
+
|
|
12
|
+
// src/auth/invited-user.ts
|
|
13
|
+
import { v4 as uuid } from "uuid";
|
|
14
|
+
|
|
1
15
|
// src/auth/keys.ts
|
|
2
16
|
import { randomBytes, createHash, timingSafeEqual } from "crypto";
|
|
3
17
|
import bcrypt from "bcryptjs";
|
|
@@ -124,6 +138,40 @@ function normalizeKeyLabel(raw) {
|
|
|
124
138
|
return trimmed;
|
|
125
139
|
}
|
|
126
140
|
|
|
141
|
+
// src/auth/invited-user.ts
|
|
142
|
+
async function createInvitedUser(rawEmail, opts = {}) {
|
|
143
|
+
const email = normalizeEmail(rawEmail);
|
|
144
|
+
const id = uuid();
|
|
145
|
+
const tempPassword = uuid().replace(/-/g, "").slice(0, 16);
|
|
146
|
+
await getDb().run(
|
|
147
|
+
"INSERT INTO users (id, email, name, password_hash, is_invited) VALUES (?, ?, ?, ?, 1)",
|
|
148
|
+
[id, email, null, await hashPassword(tempPassword)]
|
|
149
|
+
);
|
|
150
|
+
const base = (opts.baseUrl || config.PUBLIC_BASE_URL || "").replace(/\/$/, "");
|
|
151
|
+
void sendEmailToRecipient(email, {
|
|
152
|
+
status: "invited",
|
|
153
|
+
docTitle: "ContextNest",
|
|
154
|
+
path: "",
|
|
155
|
+
actor: email,
|
|
156
|
+
by: opts.invitedBy || void 0,
|
|
157
|
+
tempPassword,
|
|
158
|
+
promptowlSignIn: config.PROMPTOWL_SIGN_IN_GATE === "open",
|
|
159
|
+
// ?invite= prefills the login page and guides them to sign in.
|
|
160
|
+
link: base ? `${base}/?invite=${encodeURIComponent(email)}` : ""
|
|
161
|
+
});
|
|
162
|
+
return { id, tempPassword };
|
|
163
|
+
}
|
|
164
|
+
async function findOrCreateInvitedUser(rawEmail, opts = {}) {
|
|
165
|
+
const email = normalizeEmail(rawEmail);
|
|
166
|
+
const existing = await getDb().get(
|
|
167
|
+
"SELECT id FROM users WHERE LOWER(email) = ?",
|
|
168
|
+
[email]
|
|
169
|
+
);
|
|
170
|
+
if (existing) return { id: existing.id, created: false };
|
|
171
|
+
const { id } = await createInvitedUser(email, opts);
|
|
172
|
+
return { id, created: true };
|
|
173
|
+
}
|
|
174
|
+
|
|
127
175
|
export {
|
|
128
176
|
generateApiKey,
|
|
129
177
|
hashApiKey,
|
|
@@ -131,6 +179,7 @@ export {
|
|
|
131
179
|
parseBearerToken,
|
|
132
180
|
hashPassword,
|
|
133
181
|
verifyPassword,
|
|
134
|
-
|
|
135
|
-
|
|
182
|
+
verifyKeyRequest,
|
|
183
|
+
createInvitedUser,
|
|
184
|
+
findOrCreateInvitedUser
|
|
136
185
|
};
|