openplanr 2.6.2 → 2.6.3
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/CHANGELOG.md +2 -0
- package/dist/services/diagram-artifact-service.d.ts +6 -0
- package/dist/services/diagram-artifact-service.d.ts.map +1 -1
- package/dist/services/diagram-artifact-service.js.map +1 -1
- package/lib/host-packages/adapter-registry.json +5 -5
- package/lib/host-packages/capability-map.json +1 -1
- package/lib/host-packages/claude/.claude-plugin/marketplace.json +2 -2
- package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +1 -1
- package/lib/host-packages/claude/openplanr/.openplanr-content.json +7 -7
- package/lib/host-packages/claude/openplanr/skills/design/scripts/design.mjs +14 -0
- package/lib/host-packages/claude/openplanr/skills/design-loop/scripts/design.mjs +14 -0
- package/lib/host-packages/claude/openplanr/skills/design-review/scripts/design.mjs +14 -0
- package/lib/host-packages/claude/openplanr/skills/diagram/references/diagram-fidelity.md +14 -0
- package/lib/host-packages/claude/openplanr/skills/plan/scripts/design.mjs +14 -0
- package/lib/host-packages/cursor/openplanr/.openplanr-content.json +7 -7
- package/lib/host-packages/cursor/openplanr/manifest.json +1 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-design/scripts/design.mjs +14 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design-loop/scripts/design.mjs +14 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-design-review/scripts/design.mjs +14 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-diagram/references/diagram-fidelity.md +14 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/scripts/design.mjs +14 -0
- package/lib/host-packages/openai/.claude-plugin/marketplace.json +2 -2
- package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +1 -1
- package/lib/host-packages/openai/openplanr/.openplanr-content.json +7 -7
- package/lib/host-packages/openai/openplanr/skills/design/scripts/design.mjs +14 -0
- package/lib/host-packages/openai/openplanr/skills/design-loop/scripts/design.mjs +14 -0
- package/lib/host-packages/openai/openplanr/skills/design-review/scripts/design.mjs +14 -0
- package/lib/host-packages/openai/openplanr/skills/diagram/references/diagram-fidelity.md +14 -0
- package/lib/host-packages/openai/openplanr/skills/plan/scripts/design.mjs +14 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -13,6 +13,10 @@ export declare function openDiagramArtifact(file: string, options: Record<string
|
|
|
13
13
|
export declare function openDiagramOwner(options: {
|
|
14
14
|
root: string;
|
|
15
15
|
slug: string;
|
|
16
|
+
title?: string;
|
|
17
|
+
grammar?: string;
|
|
18
|
+
noOpen?: boolean;
|
|
19
|
+
openUrl?: (url: string) => void | Promise<void>;
|
|
16
20
|
port?: number;
|
|
17
21
|
env?: Record<string, string | undefined>;
|
|
18
22
|
}): Promise<{
|
|
@@ -21,6 +25,8 @@ export declare function openDiagramOwner(options: {
|
|
|
21
25
|
sessionId: string;
|
|
22
26
|
recoveryScope: string;
|
|
23
27
|
baseUrl: string;
|
|
28
|
+
url: string;
|
|
29
|
+
launchError?: string;
|
|
24
30
|
apiBase: string;
|
|
25
31
|
capabilities: {
|
|
26
32
|
read: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-artifact-service.d.ts","sourceRoot":"","sources":["../../src/services/diagram-artifact-service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ3D;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AA4BD,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAGpF;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,oBAAoB,CAAC,CAW/B;AAED,0FAA0F;AAC1F,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C,GAAG,OAAO,CAAC;IACV,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAE,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC,CAWD"}
|
|
1
|
+
{"version":3,"file":"diagram-artifact-service.d.ts","sourceRoot":"","sources":["../../src/services/diagram-artifact-service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQ3D;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AA4BD,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAGpF;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,oBAAoB,CAAC,CAW/B;AAED,0FAA0F;AAC1F,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C,GAAG,OAAO,CAAC;IACV,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAE,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC,CAWD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-artifact-service.js","sourceRoot":"","sources":["../../src/services/diagram-artifact-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4B,CAAC;QAChF,OAAO,KAAK,CAAC,IAAI,KAAK,kBAAkB,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC;IAClF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAmBD,KAAK,UAAU,0BAA0B;IACvC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,2GAA2G,CAC5G,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAoC,CAAC;IAC7F,IAAI,OAAO,OAAO,CAAC,6BAA6B,KAAK,UAAU,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,4BAA4B,QAAQ,CAAC,OAAO,qEAAqE,CAClH,CAAC;IACJ,CAAC;IACD,OAAO,OAAiC,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAY;IACvD,MAAM,OAAO,GAAG,MAAM,0BAA0B,EAAE,CAAC;IACnD,OAAO,CAAC,MAAM,OAAO,CAAC,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAY,EACZ,OAAgC;IAEhC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAG,MAAM,MAAM,CAC1B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAChF,CAAC;IACF,IAAI,OAAO,OAAO,CAAC,kBAAkB,KAAK,UAAU;QAClD,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;IACJ,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"diagram-artifact-service.js","sourceRoot":"","sources":["../../src/services/diagram-artifact-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"kind": "host-native-adapter-registry",
|
|
3
3
|
"schemaVersion": "1.0.0",
|
|
4
4
|
"protocolVersion": "1.8.0",
|
|
5
|
-
"pipelineVersion": "0.
|
|
6
|
-
"pluginVersion": "2.6.
|
|
5
|
+
"pipelineVersion": "0.51.0",
|
|
6
|
+
"pluginVersion": "2.6.3",
|
|
7
7
|
"adapters": [
|
|
8
8
|
{
|
|
9
9
|
"id": "claude-code",
|
|
10
|
-
"version": "2.6.
|
|
10
|
+
"version": "2.6.3",
|
|
11
11
|
"capabilityLevel": "product",
|
|
12
12
|
"installScopes": [
|
|
13
13
|
"user",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
"id": "codex",
|
|
22
|
-
"version": "2.6.
|
|
22
|
+
"version": "2.6.3",
|
|
23
23
|
"capabilityLevel": "product",
|
|
24
24
|
"installScopes": [
|
|
25
25
|
"user",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"id": "cursor",
|
|
34
|
-
"version": "2.6.
|
|
34
|
+
"version": "2.6.3",
|
|
35
35
|
"capabilityLevel": "workflow",
|
|
36
36
|
"installScopes": [
|
|
37
37
|
"project"
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
"name": "AsemDevs"
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
|
-
"version": "2.6.
|
|
8
|
+
"version": "2.6.3",
|
|
9
9
|
"description": "Generated local OpenPlanr package."
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "planr",
|
|
14
14
|
"source": "./openplanr",
|
|
15
|
-
"version": "2.6.
|
|
15
|
+
"version": "2.6.3",
|
|
16
16
|
"description": "Host-native OpenPlanr skills and role agents for Claude Code.",
|
|
17
17
|
"strict": true
|
|
18
18
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"files": [
|
|
9
9
|
{
|
|
10
10
|
"path": ".claude-plugin/plugin.json",
|
|
11
|
-
"digest": "sha256:
|
|
11
|
+
"digest": "sha256:34ce806adbdb448840283188ddde1b3a21d1f0fd24f7a4b54c9b177439300af3"
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
"path": "agents/planr-backend.md",
|
|
@@ -424,7 +424,7 @@
|
|
|
424
424
|
},
|
|
425
425
|
{
|
|
426
426
|
"path": "skills/design-loop/scripts/design.mjs",
|
|
427
|
-
"digest": "sha256:
|
|
427
|
+
"digest": "sha256:7a554ec4a32ea6caa6f3bb9f9e9059d586527afd73e33feb708739b0bb75c627"
|
|
428
428
|
},
|
|
429
429
|
{
|
|
430
430
|
"path": "skills/design-loop/scripts/runtime/notices/entities.txt",
|
|
@@ -612,7 +612,7 @@
|
|
|
612
612
|
},
|
|
613
613
|
{
|
|
614
614
|
"path": "skills/design-review/scripts/design.mjs",
|
|
615
|
-
"digest": "sha256:
|
|
615
|
+
"digest": "sha256:7a554ec4a32ea6caa6f3bb9f9e9059d586527afd73e33feb708739b0bb75c627"
|
|
616
616
|
},
|
|
617
617
|
{
|
|
618
618
|
"path": "skills/design-review/scripts/runtime/notices/entities.txt",
|
|
@@ -800,7 +800,7 @@
|
|
|
800
800
|
},
|
|
801
801
|
{
|
|
802
802
|
"path": "skills/design/scripts/design.mjs",
|
|
803
|
-
"digest": "sha256:
|
|
803
|
+
"digest": "sha256:7a554ec4a32ea6caa6f3bb9f9e9059d586527afd73e33feb708739b0bb75c627"
|
|
804
804
|
},
|
|
805
805
|
{
|
|
806
806
|
"path": "skills/design/scripts/runtime/notices/entities.txt",
|
|
@@ -944,7 +944,7 @@
|
|
|
944
944
|
},
|
|
945
945
|
{
|
|
946
946
|
"path": "skills/diagram/references/diagram-fidelity.md",
|
|
947
|
-
"digest": "sha256:
|
|
947
|
+
"digest": "sha256:25294a35cd4cef3744023d0fcf26bb57585f2fa544f712e54f1dd14d2c773522"
|
|
948
948
|
},
|
|
949
949
|
{
|
|
950
950
|
"path": "skills/diagram/references/diagram-intent-to-ir.md",
|
|
@@ -1048,7 +1048,7 @@
|
|
|
1048
1048
|
},
|
|
1049
1049
|
{
|
|
1050
1050
|
"path": "skills/plan/scripts/design.mjs",
|
|
1051
|
-
"digest": "sha256:
|
|
1051
|
+
"digest": "sha256:7a554ec4a32ea6caa6f3bb9f9e9059d586527afd73e33feb708739b0bb75c627"
|
|
1052
1052
|
},
|
|
1053
1053
|
{
|
|
1054
1054
|
"path": "skills/plan/scripts/planning-ids.mjs",
|
|
@@ -1291,5 +1291,5 @@
|
|
|
1291
1291
|
"digest": "sha256:53698324b62f43b672ce8fe1654c526c96fb202e313442f09c6fc1e72268677e"
|
|
1292
1292
|
}
|
|
1293
1293
|
],
|
|
1294
|
-
"contentDigest": "sha256:
|
|
1294
|
+
"contentDigest": "sha256:1a0351f2d0376082cd2f9cfe7d9dd297689d87a2565771d0f15bf63a1a78a464"
|
|
1295
1295
|
}
|
|
@@ -15049,6 +15049,10 @@ function createArtifactReviewServer({
|
|
|
15049
15049
|
notFound(res, { head });
|
|
15050
15050
|
return;
|
|
15051
15051
|
}
|
|
15052
|
+
if (segments.length === 3 && !trailingSlash && ["GET", "HEAD"].includes(req.method)) {
|
|
15053
|
+
send(res, 308, "", { location: `/o/${owner.id}/${owner.capability}/` }, { head });
|
|
15054
|
+
return;
|
|
15055
|
+
}
|
|
15052
15056
|
const request2 = Promise.resolve().then(() => owner.handleRequest({
|
|
15053
15057
|
req,
|
|
15054
15058
|
segments: segments.slice(3),
|
|
@@ -15067,6 +15071,16 @@ function createArtifactReviewServer({
|
|
|
15067
15071
|
notFound(res, { head });
|
|
15068
15072
|
return;
|
|
15069
15073
|
}
|
|
15074
|
+
if (response.kind === "asset") {
|
|
15075
|
+
const mediaTypes = { document: "text/html", runtime: "text/javascript", stylesheet: "text/css" };
|
|
15076
|
+
if (!Object.hasOwn(mediaTypes, response.asset) || typeof response.body !== "string") throw new Error("Invalid owner asset response.");
|
|
15077
|
+
send(res, response.status, response.body, {
|
|
15078
|
+
...parentHeaders(),
|
|
15079
|
+
"content-type": `${mediaTypes[response.asset]}; charset=utf-8`,
|
|
15080
|
+
"content-security-policy": "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'; img-src 'self' data: blob:; font-src 'self'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'"
|
|
15081
|
+
}, { head });
|
|
15082
|
+
return;
|
|
15083
|
+
}
|
|
15070
15084
|
send(res, response.status, JSON.stringify(response.body), {
|
|
15071
15085
|
// Rejections may precede body consumption (for example Content-Length
|
|
15072
15086
|
// above the limit). Do not reuse a socket containing unread body bytes.
|
|
@@ -15049,6 +15049,10 @@ function createArtifactReviewServer({
|
|
|
15049
15049
|
notFound(res, { head });
|
|
15050
15050
|
return;
|
|
15051
15051
|
}
|
|
15052
|
+
if (segments.length === 3 && !trailingSlash && ["GET", "HEAD"].includes(req.method)) {
|
|
15053
|
+
send(res, 308, "", { location: `/o/${owner.id}/${owner.capability}/` }, { head });
|
|
15054
|
+
return;
|
|
15055
|
+
}
|
|
15052
15056
|
const request2 = Promise.resolve().then(() => owner.handleRequest({
|
|
15053
15057
|
req,
|
|
15054
15058
|
segments: segments.slice(3),
|
|
@@ -15067,6 +15071,16 @@ function createArtifactReviewServer({
|
|
|
15067
15071
|
notFound(res, { head });
|
|
15068
15072
|
return;
|
|
15069
15073
|
}
|
|
15074
|
+
if (response.kind === "asset") {
|
|
15075
|
+
const mediaTypes = { document: "text/html", runtime: "text/javascript", stylesheet: "text/css" };
|
|
15076
|
+
if (!Object.hasOwn(mediaTypes, response.asset) || typeof response.body !== "string") throw new Error("Invalid owner asset response.");
|
|
15077
|
+
send(res, response.status, response.body, {
|
|
15078
|
+
...parentHeaders(),
|
|
15079
|
+
"content-type": `${mediaTypes[response.asset]}; charset=utf-8`,
|
|
15080
|
+
"content-security-policy": "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'; img-src 'self' data: blob:; font-src 'self'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'"
|
|
15081
|
+
}, { head });
|
|
15082
|
+
return;
|
|
15083
|
+
}
|
|
15070
15084
|
send(res, response.status, JSON.stringify(response.body), {
|
|
15071
15085
|
// Rejections may precede body consumption (for example Content-Length
|
|
15072
15086
|
// above the limit). Do not reuse a socket containing unread body bytes.
|
|
@@ -15049,6 +15049,10 @@ function createArtifactReviewServer({
|
|
|
15049
15049
|
notFound(res, { head });
|
|
15050
15050
|
return;
|
|
15051
15051
|
}
|
|
15052
|
+
if (segments.length === 3 && !trailingSlash && ["GET", "HEAD"].includes(req.method)) {
|
|
15053
|
+
send(res, 308, "", { location: `/o/${owner.id}/${owner.capability}/` }, { head });
|
|
15054
|
+
return;
|
|
15055
|
+
}
|
|
15052
15056
|
const request2 = Promise.resolve().then(() => owner.handleRequest({
|
|
15053
15057
|
req,
|
|
15054
15058
|
segments: segments.slice(3),
|
|
@@ -15067,6 +15071,16 @@ function createArtifactReviewServer({
|
|
|
15067
15071
|
notFound(res, { head });
|
|
15068
15072
|
return;
|
|
15069
15073
|
}
|
|
15074
|
+
if (response.kind === "asset") {
|
|
15075
|
+
const mediaTypes = { document: "text/html", runtime: "text/javascript", stylesheet: "text/css" };
|
|
15076
|
+
if (!Object.hasOwn(mediaTypes, response.asset) || typeof response.body !== "string") throw new Error("Invalid owner asset response.");
|
|
15077
|
+
send(res, response.status, response.body, {
|
|
15078
|
+
...parentHeaders(),
|
|
15079
|
+
"content-type": `${mediaTypes[response.asset]}; charset=utf-8`,
|
|
15080
|
+
"content-security-policy": "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'; img-src 'self' data: blob:; font-src 'self'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'"
|
|
15081
|
+
}, { head });
|
|
15082
|
+
return;
|
|
15083
|
+
}
|
|
15070
15084
|
send(res, response.status, JSON.stringify(response.body), {
|
|
15071
15085
|
// Rejections may precede body consumption (for example Content-Length
|
|
15072
15086
|
// above the limit). Do not reuse a socket containing unread body bytes.
|
|
@@ -4,6 +4,20 @@ Use this reference when the user requests Mermaid or Excalidraw editing, imports
|
|
|
4
4
|
an existing source, or asks why a projection was omitted.
|
|
5
5
|
|
|
6
6
|
- Canonical `.planr-diagram.json` is the semantic source and is always editable.
|
|
7
|
+
- For the v1.13 flowchart authoring path, the `.planr-diagram-bundle.json` holds
|
|
8
|
+
the semantic document, presentation, exact original Mermaid text, and source
|
|
9
|
+
correspondence. Use `@openplanr/artifact/diagram-authoring`'s
|
|
10
|
+
`previewMermaidCopy`, `adoptMermaidCopy`, and `exportMermaidCopy` for copy
|
|
11
|
+
interchange. Preview never saves; adoption requires acknowledgement of that
|
|
12
|
+
exact preview's fidelity losses. Saving the bundle is a separate owner action.
|
|
13
|
+
- The certified Mermaid copy subset supports explicit flowchart node IDs,
|
|
14
|
+
rectangle/rounded/decision/cylinder shapes, directed/bidirectional/undirected
|
|
15
|
+
edges, labels, and nested subgraphs. It does not infer lanes or preserve
|
|
16
|
+
coordinates, manual routes, annotations, styling, or exact source formatting
|
|
17
|
+
on export. Keep the complete bundle when these matter. Copy import/export
|
|
18
|
+
never creates a repository source link or watcher.
|
|
19
|
+
- Legacy sequence diagrams remain readable and renderable; they are not in the
|
|
20
|
+
editable Mermaid copy certification.
|
|
7
21
|
- Mermaid is emitted only when the selected grammar has a certified projection.
|
|
8
22
|
`editable`, `partial`, and `unsupported` are honest compatibility levels, not
|
|
9
23
|
success or failure labels.
|
|
@@ -15049,6 +15049,10 @@ function createArtifactReviewServer({
|
|
|
15049
15049
|
notFound(res, { head });
|
|
15050
15050
|
return;
|
|
15051
15051
|
}
|
|
15052
|
+
if (segments.length === 3 && !trailingSlash && ["GET", "HEAD"].includes(req.method)) {
|
|
15053
|
+
send(res, 308, "", { location: `/o/${owner.id}/${owner.capability}/` }, { head });
|
|
15054
|
+
return;
|
|
15055
|
+
}
|
|
15052
15056
|
const request2 = Promise.resolve().then(() => owner.handleRequest({
|
|
15053
15057
|
req,
|
|
15054
15058
|
segments: segments.slice(3),
|
|
@@ -15067,6 +15071,16 @@ function createArtifactReviewServer({
|
|
|
15067
15071
|
notFound(res, { head });
|
|
15068
15072
|
return;
|
|
15069
15073
|
}
|
|
15074
|
+
if (response.kind === "asset") {
|
|
15075
|
+
const mediaTypes = { document: "text/html", runtime: "text/javascript", stylesheet: "text/css" };
|
|
15076
|
+
if (!Object.hasOwn(mediaTypes, response.asset) || typeof response.body !== "string") throw new Error("Invalid owner asset response.");
|
|
15077
|
+
send(res, response.status, response.body, {
|
|
15078
|
+
...parentHeaders(),
|
|
15079
|
+
"content-type": `${mediaTypes[response.asset]}; charset=utf-8`,
|
|
15080
|
+
"content-security-policy": "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'; img-src 'self' data: blob:; font-src 'self'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'"
|
|
15081
|
+
}, { head });
|
|
15082
|
+
return;
|
|
15083
|
+
}
|
|
15070
15084
|
send(res, response.status, JSON.stringify(response.body), {
|
|
15071
15085
|
// Rejections may precede body consumption (for example Content-Length
|
|
15072
15086
|
// above the limit). Do not reuse a socket containing unread body bytes.
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"files": [
|
|
9
9
|
{
|
|
10
10
|
"path": "manifest.json",
|
|
11
|
-
"digest": "sha256:
|
|
11
|
+
"digest": "sha256:afd571d81a5c12c74392f1ace5cd4c015646abe3c806fae696a6fe67d6c92c47"
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
"path": "rules/planr-artifact.mdc",
|
|
@@ -244,7 +244,7 @@
|
|
|
244
244
|
},
|
|
245
245
|
{
|
|
246
246
|
"path": "rules/planr-design-loop/scripts/design.mjs",
|
|
247
|
-
"digest": "sha256:
|
|
247
|
+
"digest": "sha256:7a554ec4a32ea6caa6f3bb9f9e9059d586527afd73e33feb708739b0bb75c627"
|
|
248
248
|
},
|
|
249
249
|
{
|
|
250
250
|
"path": "rules/planr-design-loop/scripts/runtime/notices/entities.txt",
|
|
@@ -428,7 +428,7 @@
|
|
|
428
428
|
},
|
|
429
429
|
{
|
|
430
430
|
"path": "rules/planr-design-review/scripts/design.mjs",
|
|
431
|
-
"digest": "sha256:
|
|
431
|
+
"digest": "sha256:7a554ec4a32ea6caa6f3bb9f9e9059d586527afd73e33feb708739b0bb75c627"
|
|
432
432
|
},
|
|
433
433
|
{
|
|
434
434
|
"path": "rules/planr-design-review/scripts/runtime/notices/entities.txt",
|
|
@@ -612,7 +612,7 @@
|
|
|
612
612
|
},
|
|
613
613
|
{
|
|
614
614
|
"path": "rules/planr-design/scripts/design.mjs",
|
|
615
|
-
"digest": "sha256:
|
|
615
|
+
"digest": "sha256:7a554ec4a32ea6caa6f3bb9f9e9059d586527afd73e33feb708739b0bb75c627"
|
|
616
616
|
},
|
|
617
617
|
{
|
|
618
618
|
"path": "rules/planr-design/scripts/runtime/notices/entities.txt",
|
|
@@ -752,7 +752,7 @@
|
|
|
752
752
|
},
|
|
753
753
|
{
|
|
754
754
|
"path": "rules/planr-diagram/references/diagram-fidelity.md",
|
|
755
|
-
"digest": "sha256:
|
|
755
|
+
"digest": "sha256:25294a35cd4cef3744023d0fcf26bb57585f2fa544f712e54f1dd14d2c773522"
|
|
756
756
|
},
|
|
757
757
|
{
|
|
758
758
|
"path": "rules/planr-diagram/references/diagram-intent-to-ir.md",
|
|
@@ -828,7 +828,7 @@
|
|
|
828
828
|
},
|
|
829
829
|
{
|
|
830
830
|
"path": "rules/planr-plan/scripts/design.mjs",
|
|
831
|
-
"digest": "sha256:
|
|
831
|
+
"digest": "sha256:7a554ec4a32ea6caa6f3bb9f9e9059d586527afd73e33feb708739b0bb75c627"
|
|
832
832
|
},
|
|
833
833
|
{
|
|
834
834
|
"path": "rules/planr-plan/scripts/planning-ids.mjs",
|
|
@@ -1043,5 +1043,5 @@
|
|
|
1043
1043
|
"digest": "sha256:6378ad3477e4be8b7e916c4249404c50cafecac1c70ffbf5a1a2fce195dfea16"
|
|
1044
1044
|
}
|
|
1045
1045
|
],
|
|
1046
|
-
"contentDigest": "sha256:
|
|
1046
|
+
"contentDigest": "sha256:cfa5baf3840a22a3e82bec87c86797a1f0a5f5a639a63f710a4d808b8888f97b"
|
|
1047
1047
|
}
|
|
@@ -15049,6 +15049,10 @@ function createArtifactReviewServer({
|
|
|
15049
15049
|
notFound(res, { head });
|
|
15050
15050
|
return;
|
|
15051
15051
|
}
|
|
15052
|
+
if (segments.length === 3 && !trailingSlash && ["GET", "HEAD"].includes(req.method)) {
|
|
15053
|
+
send(res, 308, "", { location: `/o/${owner.id}/${owner.capability}/` }, { head });
|
|
15054
|
+
return;
|
|
15055
|
+
}
|
|
15052
15056
|
const request2 = Promise.resolve().then(() => owner.handleRequest({
|
|
15053
15057
|
req,
|
|
15054
15058
|
segments: segments.slice(3),
|
|
@@ -15067,6 +15071,16 @@ function createArtifactReviewServer({
|
|
|
15067
15071
|
notFound(res, { head });
|
|
15068
15072
|
return;
|
|
15069
15073
|
}
|
|
15074
|
+
if (response.kind === "asset") {
|
|
15075
|
+
const mediaTypes = { document: "text/html", runtime: "text/javascript", stylesheet: "text/css" };
|
|
15076
|
+
if (!Object.hasOwn(mediaTypes, response.asset) || typeof response.body !== "string") throw new Error("Invalid owner asset response.");
|
|
15077
|
+
send(res, response.status, response.body, {
|
|
15078
|
+
...parentHeaders(),
|
|
15079
|
+
"content-type": `${mediaTypes[response.asset]}; charset=utf-8`,
|
|
15080
|
+
"content-security-policy": "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'; img-src 'self' data: blob:; font-src 'self'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'"
|
|
15081
|
+
}, { head });
|
|
15082
|
+
return;
|
|
15083
|
+
}
|
|
15070
15084
|
send(res, response.status, JSON.stringify(response.body), {
|
|
15071
15085
|
// Rejections may precede body consumption (for example Content-Length
|
|
15072
15086
|
// above the limit). Do not reuse a socket containing unread body bytes.
|
|
@@ -15049,6 +15049,10 @@ function createArtifactReviewServer({
|
|
|
15049
15049
|
notFound(res, { head });
|
|
15050
15050
|
return;
|
|
15051
15051
|
}
|
|
15052
|
+
if (segments.length === 3 && !trailingSlash && ["GET", "HEAD"].includes(req.method)) {
|
|
15053
|
+
send(res, 308, "", { location: `/o/${owner.id}/${owner.capability}/` }, { head });
|
|
15054
|
+
return;
|
|
15055
|
+
}
|
|
15052
15056
|
const request2 = Promise.resolve().then(() => owner.handleRequest({
|
|
15053
15057
|
req,
|
|
15054
15058
|
segments: segments.slice(3),
|
|
@@ -15067,6 +15071,16 @@ function createArtifactReviewServer({
|
|
|
15067
15071
|
notFound(res, { head });
|
|
15068
15072
|
return;
|
|
15069
15073
|
}
|
|
15074
|
+
if (response.kind === "asset") {
|
|
15075
|
+
const mediaTypes = { document: "text/html", runtime: "text/javascript", stylesheet: "text/css" };
|
|
15076
|
+
if (!Object.hasOwn(mediaTypes, response.asset) || typeof response.body !== "string") throw new Error("Invalid owner asset response.");
|
|
15077
|
+
send(res, response.status, response.body, {
|
|
15078
|
+
...parentHeaders(),
|
|
15079
|
+
"content-type": `${mediaTypes[response.asset]}; charset=utf-8`,
|
|
15080
|
+
"content-security-policy": "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'; img-src 'self' data: blob:; font-src 'self'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'"
|
|
15081
|
+
}, { head });
|
|
15082
|
+
return;
|
|
15083
|
+
}
|
|
15070
15084
|
send(res, response.status, JSON.stringify(response.body), {
|
|
15071
15085
|
// Rejections may precede body consumption (for example Content-Length
|
|
15072
15086
|
// above the limit). Do not reuse a socket containing unread body bytes.
|
|
@@ -15049,6 +15049,10 @@ function createArtifactReviewServer({
|
|
|
15049
15049
|
notFound(res, { head });
|
|
15050
15050
|
return;
|
|
15051
15051
|
}
|
|
15052
|
+
if (segments.length === 3 && !trailingSlash && ["GET", "HEAD"].includes(req.method)) {
|
|
15053
|
+
send(res, 308, "", { location: `/o/${owner.id}/${owner.capability}/` }, { head });
|
|
15054
|
+
return;
|
|
15055
|
+
}
|
|
15052
15056
|
const request2 = Promise.resolve().then(() => owner.handleRequest({
|
|
15053
15057
|
req,
|
|
15054
15058
|
segments: segments.slice(3),
|
|
@@ -15067,6 +15071,16 @@ function createArtifactReviewServer({
|
|
|
15067
15071
|
notFound(res, { head });
|
|
15068
15072
|
return;
|
|
15069
15073
|
}
|
|
15074
|
+
if (response.kind === "asset") {
|
|
15075
|
+
const mediaTypes = { document: "text/html", runtime: "text/javascript", stylesheet: "text/css" };
|
|
15076
|
+
if (!Object.hasOwn(mediaTypes, response.asset) || typeof response.body !== "string") throw new Error("Invalid owner asset response.");
|
|
15077
|
+
send(res, response.status, response.body, {
|
|
15078
|
+
...parentHeaders(),
|
|
15079
|
+
"content-type": `${mediaTypes[response.asset]}; charset=utf-8`,
|
|
15080
|
+
"content-security-policy": "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'; img-src 'self' data: blob:; font-src 'self'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'"
|
|
15081
|
+
}, { head });
|
|
15082
|
+
return;
|
|
15083
|
+
}
|
|
15070
15084
|
send(res, response.status, JSON.stringify(response.body), {
|
|
15071
15085
|
// Rejections may precede body consumption (for example Content-Length
|
|
15072
15086
|
// above the limit). Do not reuse a socket containing unread body bytes.
|
package/lib/host-packages/cursor/openplanr/rules/planr-diagram/references/diagram-fidelity.md
CHANGED
|
@@ -4,6 +4,20 @@ Use this reference when the user requests Mermaid or Excalidraw editing, imports
|
|
|
4
4
|
an existing source, or asks why a projection was omitted.
|
|
5
5
|
|
|
6
6
|
- Canonical `.planr-diagram.json` is the semantic source and is always editable.
|
|
7
|
+
- For the v1.13 flowchart authoring path, the `.planr-diagram-bundle.json` holds
|
|
8
|
+
the semantic document, presentation, exact original Mermaid text, and source
|
|
9
|
+
correspondence. Use `@openplanr/artifact/diagram-authoring`'s
|
|
10
|
+
`previewMermaidCopy`, `adoptMermaidCopy`, and `exportMermaidCopy` for copy
|
|
11
|
+
interchange. Preview never saves; adoption requires acknowledgement of that
|
|
12
|
+
exact preview's fidelity losses. Saving the bundle is a separate owner action.
|
|
13
|
+
- The certified Mermaid copy subset supports explicit flowchart node IDs,
|
|
14
|
+
rectangle/rounded/decision/cylinder shapes, directed/bidirectional/undirected
|
|
15
|
+
edges, labels, and nested subgraphs. It does not infer lanes or preserve
|
|
16
|
+
coordinates, manual routes, annotations, styling, or exact source formatting
|
|
17
|
+
on export. Keep the complete bundle when these matter. Copy import/export
|
|
18
|
+
never creates a repository source link or watcher.
|
|
19
|
+
- Legacy sequence diagrams remain readable and renderable; they are not in the
|
|
20
|
+
editable Mermaid copy certification.
|
|
7
21
|
- Mermaid is emitted only when the selected grammar has a certified projection.
|
|
8
22
|
`editable`, `partial`, and `unsupported` are honest compatibility levels, not
|
|
9
23
|
success or failure labels.
|
|
@@ -15049,6 +15049,10 @@ function createArtifactReviewServer({
|
|
|
15049
15049
|
notFound(res, { head });
|
|
15050
15050
|
return;
|
|
15051
15051
|
}
|
|
15052
|
+
if (segments.length === 3 && !trailingSlash && ["GET", "HEAD"].includes(req.method)) {
|
|
15053
|
+
send(res, 308, "", { location: `/o/${owner.id}/${owner.capability}/` }, { head });
|
|
15054
|
+
return;
|
|
15055
|
+
}
|
|
15052
15056
|
const request2 = Promise.resolve().then(() => owner.handleRequest({
|
|
15053
15057
|
req,
|
|
15054
15058
|
segments: segments.slice(3),
|
|
@@ -15067,6 +15071,16 @@ function createArtifactReviewServer({
|
|
|
15067
15071
|
notFound(res, { head });
|
|
15068
15072
|
return;
|
|
15069
15073
|
}
|
|
15074
|
+
if (response.kind === "asset") {
|
|
15075
|
+
const mediaTypes = { document: "text/html", runtime: "text/javascript", stylesheet: "text/css" };
|
|
15076
|
+
if (!Object.hasOwn(mediaTypes, response.asset) || typeof response.body !== "string") throw new Error("Invalid owner asset response.");
|
|
15077
|
+
send(res, response.status, response.body, {
|
|
15078
|
+
...parentHeaders(),
|
|
15079
|
+
"content-type": `${mediaTypes[response.asset]}; charset=utf-8`,
|
|
15080
|
+
"content-security-policy": "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'; img-src 'self' data: blob:; font-src 'self'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'"
|
|
15081
|
+
}, { head });
|
|
15082
|
+
return;
|
|
15083
|
+
}
|
|
15070
15084
|
send(res, response.status, JSON.stringify(response.body), {
|
|
15071
15085
|
// Rejections may precede body consumption (for example Content-Length
|
|
15072
15086
|
// above the limit). Do not reuse a socket containing unread body bytes.
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
"name": "AsemDevs"
|
|
5
5
|
},
|
|
6
6
|
"metadata": {
|
|
7
|
-
"version": "2.6.
|
|
7
|
+
"version": "2.6.3",
|
|
8
8
|
"description": "Generated local OpenPlanr package."
|
|
9
9
|
},
|
|
10
10
|
"plugins": [
|
|
11
11
|
{
|
|
12
12
|
"name": "planr",
|
|
13
13
|
"source": "./openplanr",
|
|
14
|
-
"version": "2.6.
|
|
14
|
+
"version": "2.6.3",
|
|
15
15
|
"description": "Host-native OpenPlanr skills for OpenAI coding agents.",
|
|
16
16
|
"strict": true
|
|
17
17
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"files": [
|
|
9
9
|
{
|
|
10
10
|
"path": ".codex-plugin/plugin.json",
|
|
11
|
-
"digest": "sha256:
|
|
11
|
+
"digest": "sha256:56ba6c4519d4d20524b8a874342e21cadb55f5b87c7b5514540e11a104488965"
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
"path": "skills/artifact/agents/openai.yaml",
|
|
@@ -328,7 +328,7 @@
|
|
|
328
328
|
},
|
|
329
329
|
{
|
|
330
330
|
"path": "skills/design-loop/scripts/design.mjs",
|
|
331
|
-
"digest": "sha256:
|
|
331
|
+
"digest": "sha256:7a554ec4a32ea6caa6f3bb9f9e9059d586527afd73e33feb708739b0bb75c627"
|
|
332
332
|
},
|
|
333
333
|
{
|
|
334
334
|
"path": "skills/design-loop/scripts/runtime/notices/entities.txt",
|
|
@@ -520,7 +520,7 @@
|
|
|
520
520
|
},
|
|
521
521
|
{
|
|
522
522
|
"path": "skills/design-review/scripts/design.mjs",
|
|
523
|
-
"digest": "sha256:
|
|
523
|
+
"digest": "sha256:7a554ec4a32ea6caa6f3bb9f9e9059d586527afd73e33feb708739b0bb75c627"
|
|
524
524
|
},
|
|
525
525
|
{
|
|
526
526
|
"path": "skills/design-review/scripts/runtime/notices/entities.txt",
|
|
@@ -712,7 +712,7 @@
|
|
|
712
712
|
},
|
|
713
713
|
{
|
|
714
714
|
"path": "skills/design/scripts/design.mjs",
|
|
715
|
-
"digest": "sha256:
|
|
715
|
+
"digest": "sha256:7a554ec4a32ea6caa6f3bb9f9e9059d586527afd73e33feb708739b0bb75c627"
|
|
716
716
|
},
|
|
717
717
|
{
|
|
718
718
|
"path": "skills/design/scripts/runtime/notices/entities.txt",
|
|
@@ -860,7 +860,7 @@
|
|
|
860
860
|
},
|
|
861
861
|
{
|
|
862
862
|
"path": "skills/diagram/references/diagram-fidelity.md",
|
|
863
|
-
"digest": "sha256:
|
|
863
|
+
"digest": "sha256:25294a35cd4cef3744023d0fcf26bb57585f2fa544f712e54f1dd14d2c773522"
|
|
864
864
|
},
|
|
865
865
|
{
|
|
866
866
|
"path": "skills/diagram/references/diagram-intent-to-ir.md",
|
|
@@ -992,7 +992,7 @@
|
|
|
992
992
|
},
|
|
993
993
|
{
|
|
994
994
|
"path": "skills/plan/scripts/design.mjs",
|
|
995
|
-
"digest": "sha256:
|
|
995
|
+
"digest": "sha256:7a554ec4a32ea6caa6f3bb9f9e9059d586527afd73e33feb708739b0bb75c627"
|
|
996
996
|
},
|
|
997
997
|
{
|
|
998
998
|
"path": "skills/plan/scripts/planning-ids.mjs",
|
|
@@ -1259,5 +1259,5 @@
|
|
|
1259
1259
|
"digest": "sha256:53698324b62f43b672ce8fe1654c526c96fb202e313442f09c6fc1e72268677e"
|
|
1260
1260
|
}
|
|
1261
1261
|
],
|
|
1262
|
-
"contentDigest": "sha256:
|
|
1262
|
+
"contentDigest": "sha256:f0fccaf05277a2ba6204f6eac657d2ed8274d83d4e390fe52c85da333503f74f"
|
|
1263
1263
|
}
|
|
@@ -15049,6 +15049,10 @@ function createArtifactReviewServer({
|
|
|
15049
15049
|
notFound(res, { head });
|
|
15050
15050
|
return;
|
|
15051
15051
|
}
|
|
15052
|
+
if (segments.length === 3 && !trailingSlash && ["GET", "HEAD"].includes(req.method)) {
|
|
15053
|
+
send(res, 308, "", { location: `/o/${owner.id}/${owner.capability}/` }, { head });
|
|
15054
|
+
return;
|
|
15055
|
+
}
|
|
15052
15056
|
const request2 = Promise.resolve().then(() => owner.handleRequest({
|
|
15053
15057
|
req,
|
|
15054
15058
|
segments: segments.slice(3),
|
|
@@ -15067,6 +15071,16 @@ function createArtifactReviewServer({
|
|
|
15067
15071
|
notFound(res, { head });
|
|
15068
15072
|
return;
|
|
15069
15073
|
}
|
|
15074
|
+
if (response.kind === "asset") {
|
|
15075
|
+
const mediaTypes = { document: "text/html", runtime: "text/javascript", stylesheet: "text/css" };
|
|
15076
|
+
if (!Object.hasOwn(mediaTypes, response.asset) || typeof response.body !== "string") throw new Error("Invalid owner asset response.");
|
|
15077
|
+
send(res, response.status, response.body, {
|
|
15078
|
+
...parentHeaders(),
|
|
15079
|
+
"content-type": `${mediaTypes[response.asset]}; charset=utf-8`,
|
|
15080
|
+
"content-security-policy": "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'; img-src 'self' data: blob:; font-src 'self'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'"
|
|
15081
|
+
}, { head });
|
|
15082
|
+
return;
|
|
15083
|
+
}
|
|
15070
15084
|
send(res, response.status, JSON.stringify(response.body), {
|
|
15071
15085
|
// Rejections may precede body consumption (for example Content-Length
|
|
15072
15086
|
// above the limit). Do not reuse a socket containing unread body bytes.
|
|
@@ -15049,6 +15049,10 @@ function createArtifactReviewServer({
|
|
|
15049
15049
|
notFound(res, { head });
|
|
15050
15050
|
return;
|
|
15051
15051
|
}
|
|
15052
|
+
if (segments.length === 3 && !trailingSlash && ["GET", "HEAD"].includes(req.method)) {
|
|
15053
|
+
send(res, 308, "", { location: `/o/${owner.id}/${owner.capability}/` }, { head });
|
|
15054
|
+
return;
|
|
15055
|
+
}
|
|
15052
15056
|
const request2 = Promise.resolve().then(() => owner.handleRequest({
|
|
15053
15057
|
req,
|
|
15054
15058
|
segments: segments.slice(3),
|
|
@@ -15067,6 +15071,16 @@ function createArtifactReviewServer({
|
|
|
15067
15071
|
notFound(res, { head });
|
|
15068
15072
|
return;
|
|
15069
15073
|
}
|
|
15074
|
+
if (response.kind === "asset") {
|
|
15075
|
+
const mediaTypes = { document: "text/html", runtime: "text/javascript", stylesheet: "text/css" };
|
|
15076
|
+
if (!Object.hasOwn(mediaTypes, response.asset) || typeof response.body !== "string") throw new Error("Invalid owner asset response.");
|
|
15077
|
+
send(res, response.status, response.body, {
|
|
15078
|
+
...parentHeaders(),
|
|
15079
|
+
"content-type": `${mediaTypes[response.asset]}; charset=utf-8`,
|
|
15080
|
+
"content-security-policy": "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'; img-src 'self' data: blob:; font-src 'self'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'"
|
|
15081
|
+
}, { head });
|
|
15082
|
+
return;
|
|
15083
|
+
}
|
|
15070
15084
|
send(res, response.status, JSON.stringify(response.body), {
|
|
15071
15085
|
// Rejections may precede body consumption (for example Content-Length
|
|
15072
15086
|
// above the limit). Do not reuse a socket containing unread body bytes.
|
|
@@ -15049,6 +15049,10 @@ function createArtifactReviewServer({
|
|
|
15049
15049
|
notFound(res, { head });
|
|
15050
15050
|
return;
|
|
15051
15051
|
}
|
|
15052
|
+
if (segments.length === 3 && !trailingSlash && ["GET", "HEAD"].includes(req.method)) {
|
|
15053
|
+
send(res, 308, "", { location: `/o/${owner.id}/${owner.capability}/` }, { head });
|
|
15054
|
+
return;
|
|
15055
|
+
}
|
|
15052
15056
|
const request2 = Promise.resolve().then(() => owner.handleRequest({
|
|
15053
15057
|
req,
|
|
15054
15058
|
segments: segments.slice(3),
|
|
@@ -15067,6 +15071,16 @@ function createArtifactReviewServer({
|
|
|
15067
15071
|
notFound(res, { head });
|
|
15068
15072
|
return;
|
|
15069
15073
|
}
|
|
15074
|
+
if (response.kind === "asset") {
|
|
15075
|
+
const mediaTypes = { document: "text/html", runtime: "text/javascript", stylesheet: "text/css" };
|
|
15076
|
+
if (!Object.hasOwn(mediaTypes, response.asset) || typeof response.body !== "string") throw new Error("Invalid owner asset response.");
|
|
15077
|
+
send(res, response.status, response.body, {
|
|
15078
|
+
...parentHeaders(),
|
|
15079
|
+
"content-type": `${mediaTypes[response.asset]}; charset=utf-8`,
|
|
15080
|
+
"content-security-policy": "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'; img-src 'self' data: blob:; font-src 'self'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'"
|
|
15081
|
+
}, { head });
|
|
15082
|
+
return;
|
|
15083
|
+
}
|
|
15070
15084
|
send(res, response.status, JSON.stringify(response.body), {
|
|
15071
15085
|
// Rejections may precede body consumption (for example Content-Length
|
|
15072
15086
|
// above the limit). Do not reuse a socket containing unread body bytes.
|
|
@@ -4,6 +4,20 @@ Use this reference when the user requests Mermaid or Excalidraw editing, imports
|
|
|
4
4
|
an existing source, or asks why a projection was omitted.
|
|
5
5
|
|
|
6
6
|
- Canonical `.planr-diagram.json` is the semantic source and is always editable.
|
|
7
|
+
- For the v1.13 flowchart authoring path, the `.planr-diagram-bundle.json` holds
|
|
8
|
+
the semantic document, presentation, exact original Mermaid text, and source
|
|
9
|
+
correspondence. Use `@openplanr/artifact/diagram-authoring`'s
|
|
10
|
+
`previewMermaidCopy`, `adoptMermaidCopy`, and `exportMermaidCopy` for copy
|
|
11
|
+
interchange. Preview never saves; adoption requires acknowledgement of that
|
|
12
|
+
exact preview's fidelity losses. Saving the bundle is a separate owner action.
|
|
13
|
+
- The certified Mermaid copy subset supports explicit flowchart node IDs,
|
|
14
|
+
rectangle/rounded/decision/cylinder shapes, directed/bidirectional/undirected
|
|
15
|
+
edges, labels, and nested subgraphs. It does not infer lanes or preserve
|
|
16
|
+
coordinates, manual routes, annotations, styling, or exact source formatting
|
|
17
|
+
on export. Keep the complete bundle when these matter. Copy import/export
|
|
18
|
+
never creates a repository source link or watcher.
|
|
19
|
+
- Legacy sequence diagrams remain readable and renderable; they are not in the
|
|
20
|
+
editable Mermaid copy certification.
|
|
7
21
|
- Mermaid is emitted only when the selected grammar has a certified projection.
|
|
8
22
|
`editable`, `partial`, and `unsupported` are honest compatibility levels, not
|
|
9
23
|
success or failure labels.
|
|
@@ -15049,6 +15049,10 @@ function createArtifactReviewServer({
|
|
|
15049
15049
|
notFound(res, { head });
|
|
15050
15050
|
return;
|
|
15051
15051
|
}
|
|
15052
|
+
if (segments.length === 3 && !trailingSlash && ["GET", "HEAD"].includes(req.method)) {
|
|
15053
|
+
send(res, 308, "", { location: `/o/${owner.id}/${owner.capability}/` }, { head });
|
|
15054
|
+
return;
|
|
15055
|
+
}
|
|
15052
15056
|
const request2 = Promise.resolve().then(() => owner.handleRequest({
|
|
15053
15057
|
req,
|
|
15054
15058
|
segments: segments.slice(3),
|
|
@@ -15067,6 +15071,16 @@ function createArtifactReviewServer({
|
|
|
15067
15071
|
notFound(res, { head });
|
|
15068
15072
|
return;
|
|
15069
15073
|
}
|
|
15074
|
+
if (response.kind === "asset") {
|
|
15075
|
+
const mediaTypes = { document: "text/html", runtime: "text/javascript", stylesheet: "text/css" };
|
|
15076
|
+
if (!Object.hasOwn(mediaTypes, response.asset) || typeof response.body !== "string") throw new Error("Invalid owner asset response.");
|
|
15077
|
+
send(res, response.status, response.body, {
|
|
15078
|
+
...parentHeaders(),
|
|
15079
|
+
"content-type": `${mediaTypes[response.asset]}; charset=utf-8`,
|
|
15080
|
+
"content-security-policy": "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'; img-src 'self' data: blob:; font-src 'self'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'"
|
|
15081
|
+
}, { head });
|
|
15082
|
+
return;
|
|
15083
|
+
}
|
|
15070
15084
|
send(res, response.status, JSON.stringify(response.body), {
|
|
15071
15085
|
// Rejections may precede body consumption (for example Content-Length
|
|
15072
15086
|
// above the limit). Do not reuse a socket containing unread body bytes.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openplanr",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.3",
|
|
4
4
|
"description": "Deterministic OpenPlanr utilities for planning storage, validation, rendering, setup, diagnostics, and GitHub/Linear synchronization",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cli/index.js",
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
"zod": "^4.3.6"
|
|
116
116
|
},
|
|
117
117
|
"optionalDependencies": {
|
|
118
|
-
"planr-pipeline": "0.
|
|
118
|
+
"planr-pipeline": "0.51.0"
|
|
119
119
|
},
|
|
120
120
|
"devDependencies": {
|
|
121
121
|
"@biomejs/biome": "^2.4.9",
|