@chainingintention/pi-web-cn 1.202608.16 → 1.202609.1

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.
Files changed (98) hide show
  1. package/dist/cli.js +24 -14
  2. package/dist/cli.js.map +1 -1
  3. package/dist/client/apple-touch-icon-dev.png +0 -0
  4. package/dist/client/assets/{CodeViewer-gfeiLsvJ.js → CodeViewer-CY319sHK.js} +1 -1
  5. package/dist/client/assets/{TerminalPanel-CF7TJrJF.js → TerminalPanel-DvFd2ZkS.js} +1 -1
  6. package/dist/client/assets/{index-Y2sFZ4_U.js → index-Lt_wrMvn.js} +423 -359
  7. package/dist/client/favicon-dev.svg +8 -0
  8. package/dist/client/index.html +1 -1
  9. package/dist/client/pwa-icon-dev-192.png +0 -0
  10. package/dist/client/pwa-icon-dev-512.png +0 -0
  11. package/dist/config.js +14 -0
  12. package/dist/config.js.map +1 -1
  13. package/dist/environment.js +4 -0
  14. package/dist/environment.js.map +1 -0
  15. package/dist/nativeServices/installedServiceDefinitions.js +601 -0
  16. package/dist/nativeServices/installedServiceDefinitions.js.map +1 -0
  17. package/dist/nativeServices/serviceDoctor.js +47 -16
  18. package/dist/nativeServices/serviceDoctor.js.map +1 -1
  19. package/dist/{pi-web-plugins → pi-packages}/relays/markdownDocument.js +1 -1
  20. package/dist/pi-packages/relays/package.json +11 -0
  21. package/dist/{pi-web-plugins → pi-packages}/relays/pi-web-plugin.js +1 -1
  22. package/dist/pi-packages/relays/prompts/relay-worktree.md +28 -0
  23. package/dist/pi-packages/relays/prompts/relay.md +45 -0
  24. package/dist/{pi-web-plugins → pi-packages}/relays/relayDiscovery.js +2 -2
  25. package/dist/{pi-web-plugins → pi-packages}/relays/relaysPanelElement.js +2 -2
  26. package/dist/pi-packages/relays/skills/relay/SKILL.md +94 -0
  27. package/dist/pi-packages/relays/skills/relay-runner/SKILL.md +245 -0
  28. package/dist/pi-web-plugins/updates/pi-web-plugin.js +34 -36
  29. package/dist/server/app.js +14 -3
  30. package/dist/server/app.js.map +1 -1
  31. package/dist/server/configRoutes.js +6 -1
  32. package/dist/server/configRoutes.js.map +1 -1
  33. package/dist/server/deploymentIdentity.js +67 -0
  34. package/dist/server/deploymentIdentity.js.map +1 -0
  35. package/dist/server/deploymentIdentityRoutes.js +22 -0
  36. package/dist/server/deploymentIdentityRoutes.js.map +1 -0
  37. package/dist/server/knownAutoInstallPiPackages.js +30 -0
  38. package/dist/server/knownAutoInstallPiPackages.js.map +1 -0
  39. package/dist/server/managementEmbed.js +87 -4
  40. package/dist/server/managementEmbed.js.map +1 -1
  41. package/dist/server/notices/serverNoticeRoutes.js +43 -0
  42. package/dist/server/notices/serverNoticeRoutes.js.map +1 -0
  43. package/dist/server/notices/serverNoticeService.js +26 -0
  44. package/dist/server/notices/serverNoticeService.js.map +1 -0
  45. package/dist/server/notices/serverNoticeStore.js +78 -0
  46. package/dist/server/notices/serverNoticeStore.js.map +1 -0
  47. package/dist/server/piPackageIdentity.js +25 -0
  48. package/dist/server/piPackageIdentity.js.map +1 -0
  49. package/dist/server/piPackageService.js +69 -8
  50. package/dist/server/piPackageService.js.map +1 -1
  51. package/dist/server/piWebStatus.js +1 -1
  52. package/dist/server/piWebStatus.js.map +1 -1
  53. package/dist/server/plugins/pluginBackendProxyRoutes.js +1 -10
  54. package/dist/server/plugins/pluginBackendProxyRoutes.js.map +1 -1
  55. package/dist/server/sessiond/autoInstallPiPackages.js +63 -0
  56. package/dist/server/sessiond/autoInstallPiPackages.js.map +1 -0
  57. package/dist/server/sessiond/sessionProxyRoutes.js +3 -10
  58. package/dist/server/sessiond/sessionProxyRoutes.js.map +1 -1
  59. package/dist/server/sessiond.js +26 -5
  60. package/dist/server/sessiond.js.map +1 -1
  61. package/dist/server/sessions/attachmentService.js +2 -5
  62. package/dist/server/sessions/attachmentService.js.map +1 -1
  63. package/dist/server/sessions/piSessionManagerGateway.js +122 -1
  64. package/dist/server/sessions/piSessionManagerGateway.js.map +1 -1
  65. package/dist/server/sessions/piSessionService.js +205 -57
  66. package/dist/server/sessions/piSessionService.js.map +1 -1
  67. package/dist/server/sessions/projectSettingsScope.js +12 -31
  68. package/dist/server/sessions/projectSettingsScope.js.map +1 -1
  69. package/dist/server/sessions/sessionModelScope.js +23 -8
  70. package/dist/server/sessions/sessionModelScope.js.map +1 -1
  71. package/dist/server/sessions/sessionRoutes.js +15 -0
  72. package/dist/server/sessions/sessionRoutes.js.map +1 -1
  73. package/dist/server/sessions/transcriptBranchCache.js +81 -0
  74. package/dist/server/sessions/transcriptBranchCache.js.map +1 -0
  75. package/dist/server/storage/piPackageDismissalStore.js +78 -0
  76. package/dist/server/storage/piPackageDismissalStore.js.map +1 -0
  77. package/dist/server/terminals/terminalService.js +18 -1
  78. package/dist/server/terminals/terminalService.js.map +1 -1
  79. package/dist/server/workspaces/projectPiWebConfig.js +6 -1
  80. package/dist/server/workspaces/projectPiWebConfig.js.map +1 -1
  81. package/dist/server/workspaces/sessionDaemonWorkspaceCatalog.js +1 -10
  82. package/dist/server/workspaces/sessionDaemonWorkspaceCatalog.js.map +1 -1
  83. package/dist/server/workspaces/workspaceDeletionRoutes.js +1 -10
  84. package/dist/server/workspaces/workspaceDeletionRoutes.js.map +1 -1
  85. package/dist/server/workspaces/workspaceRemovalService.js +16 -5
  86. package/dist/server/workspaces/workspaceRemovalService.js.map +1 -1
  87. package/dist/shared/apiTypes.js.map +1 -1
  88. package/dist/shared/federatedRoutes.js +3 -0
  89. package/dist/shared/federatedRoutes.js.map +1 -1
  90. package/dist/shared/piWebConfigParsing.js +10 -0
  91. package/dist/shared/piWebConfigParsing.js.map +1 -1
  92. package/docs/config.md +26 -2
  93. package/docs/plugins.md +4 -2
  94. package/package.json +2 -2
  95. package/skills/relay/SKILL.md +59 -80
  96. package/dist/pi-web-plugins/relays/package.json +0 -9
  97. /package/dist/{pi-web-plugins → pi-packages}/relays/vendor/README.md +0 -0
  98. /package/dist/{pi-web-plugins → pi-packages}/relays/vendor/marked.esm.js +0 -0
@@ -0,0 +1,67 @@
1
+ /** Only dev deployments recolor; every stable install keeps the stock assets. */
2
+ export function deploymentFlavorFromInstallation(installation) {
3
+ if (installation === undefined)
4
+ return "stable";
5
+ if (installation.kind === "docker")
6
+ return installation.dockerMode === "dev" ? "dev" : "stable";
7
+ return installation.kind === "local" ? "dev" : "stable";
8
+ }
9
+ /**
10
+ * Resolve the deployment flavor once per process. Detection failure fails
11
+ * closed to "stable": a wrong label is cosmetic, and the stock assets are the
12
+ * least surprising fallback.
13
+ */
14
+ export function createDeploymentFlavorResolver(detectInstallation, onError) {
15
+ let memoized;
16
+ return () => {
17
+ memoized ??= detectInstallation().then(deploymentFlavorFromInstallation, (error) => {
18
+ onError?.(error);
19
+ return "stable";
20
+ });
21
+ return memoized;
22
+ };
23
+ }
24
+ /** Dev variants are served in place of the stock files, so URLs never change. */
25
+ const DEV_IDENTITY_ASSETS = {
26
+ "/favicon.svg": { fileName: "favicon-dev.svg", contentType: "image/svg+xml" },
27
+ "/apple-touch-icon.png": { fileName: "apple-touch-icon-dev.png", contentType: "image/png" },
28
+ "/pwa-icon-192.png": { fileName: "pwa-icon-dev-192.png", contentType: "image/png" },
29
+ "/pwa-icon-512.png": { fileName: "pwa-icon-dev-512.png", contentType: "image/png" },
30
+ };
31
+ export const DEPLOYMENT_IDENTITY_ASSET_PATHS = Object.keys(DEV_IDENTITY_ASSETS);
32
+ export const DEPLOYMENT_MANIFEST_PATH = "/manifest.webmanifest";
33
+ export const DEPLOYMENT_MANIFEST_CONTENT_TYPE = "application/manifest+json";
34
+ const DEV_MANIFEST_NAME = "PI WEB (dev)";
35
+ /** A dark purple tint (the dark theme's purple surface) for the PWA title bar. */
36
+ const DEV_MANIFEST_THEME_COLOR = "#21132f";
37
+ /**
38
+ * The dev variant of a brand asset for a request path, or undefined when the
39
+ * default static file should be served (stable flavor or unrelated path).
40
+ */
41
+ export function deploymentIdentityAssetForPath(pathname, flavor) {
42
+ if (flavor !== "dev")
43
+ return undefined;
44
+ return DEV_IDENTITY_ASSETS[pathname];
45
+ }
46
+ export function isDeploymentIdentityAssetPath(pathname) {
47
+ return pathname in DEV_IDENTITY_ASSETS;
48
+ }
49
+ /**
50
+ * Rewrite the PWA manifest for a dev deployment so an installed PWA is labeled
51
+ * and tinted differently from a stable install. Icon URLs stay untouched: the
52
+ * dev artwork is served in place of the stock icon files.
53
+ */
54
+ export function deploymentManifestForFlavor(manifestJson, flavor) {
55
+ if (flavor !== "dev")
56
+ return manifestJson;
57
+ const manifest = JSON.parse(manifestJson);
58
+ if (typeof manifest !== "object" || manifest === null || Array.isArray(manifest))
59
+ return manifestJson;
60
+ return JSON.stringify({
61
+ ...manifest,
62
+ name: DEV_MANIFEST_NAME,
63
+ short_name: DEV_MANIFEST_NAME,
64
+ theme_color: DEV_MANIFEST_THEME_COLOR,
65
+ });
66
+ }
67
+ //# sourceMappingURL=deploymentIdentity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploymentIdentity.js","sourceRoot":"","sources":["../../src/server/deploymentIdentity.ts"],"names":[],"mappings":"AAUA,iFAAiF;AACjF,MAAM,UAAU,gCAAgC,CAAC,YAA+C;IAC9F,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAChD,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChG,OAAO,YAAY,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,kBAAwD,EACxD,OAAkC;IAElC,IAAI,QAAoD,CAAC;IACzD,OAAO,GAAG,EAAE;QACV,QAAQ,KAAK,kBAAkB,EAAE,CAAC,IAAI,CAAC,gCAAgC,EAAE,CAAC,KAAc,EAAE,EAAE;YAC1F,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACjB,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAOD,iFAAiF;AACjF,MAAM,mBAAmB,GAA0D;IACjF,cAAc,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE;IAC7E,uBAAuB,EAAE,EAAE,QAAQ,EAAE,0BAA0B,EAAE,WAAW,EAAE,WAAW,EAAE;IAC3F,mBAAmB,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,WAAW,EAAE,WAAW,EAAE;IACnF,mBAAmB,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,WAAW,EAAE,WAAW,EAAE;CACpF,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAsB,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAEnG,MAAM,CAAC,MAAM,wBAAwB,GAAG,uBAAuB,CAAC;AAChE,MAAM,CAAC,MAAM,gCAAgC,GAAG,2BAA2B,CAAC;AAE5E,MAAM,iBAAiB,GAAG,cAAc,CAAC;AACzC,kFAAkF;AAClF,MAAM,wBAAwB,GAAG,SAAS,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAAC,QAAgB,EAAE,MAA6B;IAC5F,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,QAAgB;IAC5D,OAAO,QAAQ,IAAI,mBAAmB,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,YAAoB,EAAE,MAA6B;IAC7F,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,YAAY,CAAC;IAC1C,MAAM,QAAQ,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,YAAY,CAAC;IACtG,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,GAAG,QAAQ;QACX,IAAI,EAAE,iBAAiB;QACvB,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,wBAAwB;KACtC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { DEPLOYMENT_IDENTITY_ASSET_PATHS, DEPLOYMENT_MANIFEST_CONTENT_TYPE, DEPLOYMENT_MANIFEST_PATH, deploymentIdentityAssetForPath, deploymentManifestForFlavor } from "./deploymentIdentity.js";
4
+ /**
5
+ * Serve dev brand assets in place of the stock files when the deployment is a
6
+ * dev flavor. Explicit routes take precedence over the fastify-static wildcard,
7
+ * so the stable path just delegates back to `sendFile` with the original name.
8
+ * Register after fastify-static so the `sendFile` decorator exists.
9
+ */
10
+ export function registerDeploymentIdentityAssetRoutes(app, options) {
11
+ for (const pathname of DEPLOYMENT_IDENTITY_ASSET_PATHS) {
12
+ app.get(pathname, async (_request, reply) => {
13
+ const asset = deploymentIdentityAssetForPath(pathname, await options.flavor());
14
+ return reply.sendFile(asset === undefined ? pathname.slice(1) : asset.fileName);
15
+ });
16
+ }
17
+ app.get(DEPLOYMENT_MANIFEST_PATH, async (_request, reply) => {
18
+ const manifest = await readFile(join(options.clientDist, DEPLOYMENT_MANIFEST_PATH.slice(1)), "utf8");
19
+ return reply.type(DEPLOYMENT_MANIFEST_CONTENT_TYPE).send(deploymentManifestForFlavor(manifest, await options.flavor()));
20
+ });
21
+ }
22
+ //# sourceMappingURL=deploymentIdentityRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploymentIdentityRoutes.js","sourceRoot":"","sources":["../../src/server/deploymentIdentityRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,+BAA+B,EAAE,gCAAgC,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,2BAA2B,EAA8B,MAAM,yBAAyB,CAAC;AAQ/N;;;;;GAKG;AACH,MAAM,UAAU,qCAAqC,CAAC,GAAoB,EAAE,OAAuC;IACjH,KAAK,MAAM,QAAQ,IAAI,+BAA+B,EAAE,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,8BAA8B,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/E,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;QAC1D,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACrG,OAAO,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1H,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { dirname, join } from "node:path";
2
+ import { fileURLToPath } from "node:url";
3
+ export const KNOWN_AUTO_INSTALLABLE_PI_PACKAGES = [
4
+ {
5
+ id: "@jmfederico/pi-relay",
6
+ label: "中继",
7
+ description: "提供与工具无关的 Relay 方法、约定式 Relay Runner 配置,以及由人工确认后派发的独立 Pi 会话链提示词。",
8
+ shippedPathSegments: ["dist", "pi-packages", "relays"],
9
+ },
10
+ ];
11
+ export const KNOWN_AUTO_INSTALLABLE_PI_PACKAGE_IDS = KNOWN_AUTO_INSTALLABLE_PI_PACKAGES.map((known) => known.id);
12
+ export function isKnownAutoInstallablePiPackageId(id) {
13
+ return KNOWN_AUTO_INSTALLABLE_PI_PACKAGE_IDS.includes(id);
14
+ }
15
+ /**
16
+ * Running `@jmfederico/pi-web` package root; {@link resolveShippedPiPackagePath}
17
+ * resolves shipped package paths relative to this by default. Resolution is
18
+ * anchored to this module's own on-disk location (`src/server/`, one level
19
+ * under the package root) rather than the caller's, so every caller gets the
20
+ * same package root regardless of how deeply nested the caller module is.
21
+ */
22
+ export function defaultPiWebPackageRoot() {
23
+ const moduleDir = dirname(fileURLToPath(import.meta.url));
24
+ return join(moduleDir, "..", "..");
25
+ }
26
+ /** Resolves a known auto-installable package's shipped local install source path. */
27
+ export function resolveShippedPiPackagePath(known, packageRoot = defaultPiWebPackageRoot()) {
28
+ return join(packageRoot, ...known.shippedPathSegments);
29
+ }
30
+ //# sourceMappingURL=knownAutoInstallPiPackages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knownAutoInstallPiPackages.js","sourceRoot":"","sources":["../../src/server/knownAutoInstallPiPackages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAyBzC,MAAM,CAAC,MAAM,kCAAkC,GAA6C;IAC1F;QACE,EAAE,EAAE,sBAAsB;QAC1B,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,gEAAgE;QAC7E,mBAAmB,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC;KACvD;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qCAAqC,GAAsB,kCAAkC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAEpI,MAAM,UAAU,iCAAiC,CAAC,EAAU;IAC1D,OAAO,qCAAqC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,2BAA2B,CAAC,KAAoC,EAAE,WAAW,GAAG,uBAAuB,EAAE;IACvH,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACzD,CAAC"}
@@ -1,6 +1,6 @@
1
- import { createHmac, randomBytes, timingSafeEqual } from "node:crypto";
1
+ import { createHash, createHmac, randomBytes, timingSafeEqual } from "node:crypto";
2
2
  import { homedir } from "node:os";
3
- import { mkdir, realpath, writeFile } from "node:fs/promises";
3
+ import { mkdir, readFile, realpath, writeFile } from "node:fs/promises";
4
4
  import { join, relative, resolve, sep, isAbsolute } from "node:path";
5
5
  import { isRecord } from "../shared/piWebConfigParsing.js";
6
6
  import { createFixedTtlSessionStore, readCookie } from "./httpSessions.js";
@@ -15,6 +15,8 @@ const DEFAULT_MANAGEMENT_TOKEN_ISSUER = "telecom-portal";
15
15
  const DEFAULT_MANAGEMENT_TOKEN_AUDIENCE = "dify-external-portal";
16
16
  const MANAGEMENT_SESSION_COOKIE = "pi_web_management_session";
17
17
  const MANAGEMENT_SESSION_TTL_MS = 24 * 60 * 60 * 1000;
18
+ const MANAGED_AGENTS_MARKER_PREFIX = "<!-- pi-web-managed-agents:";
19
+ const MANAGED_AGENTS_MARKER_SUFFIX = " -->";
18
20
  const workbenchHandles = new WeakMap();
19
21
  export function attachWorkbenchAccessHandle(context, handle) {
20
22
  if (handle !== undefined && handle !== "")
@@ -129,7 +131,7 @@ export async function projectFromManagedEmbedContext(projectRoot, context, proje
129
131
  ? await defaultManagedProjectPath(projectRoot, context.user.id, options)
130
132
  : await pathForManagedProjectEntry(projectRoot, context, entry, options);
131
133
  if (options.create !== false)
132
- await ensureManagedProjectAgentsFile(path, entry.agentsInstructions);
134
+ await ensureManagedProjectAgentsFile(path, entry);
133
135
  return { id: entry.id, name: entry.name !== "" ? entry.name : entry.id, path, createdAt: new Date(0).toISOString() };
134
136
  }
135
137
  export async function projectsFromManagedEmbedContext(projectRoot, context) {
@@ -181,6 +183,15 @@ function toolAllowedByAllowList(context, tool) {
181
183
  export function encodeManagementContext(context) {
182
184
  return Buffer.from(JSON.stringify(context), "utf8").toString("base64url");
183
185
  }
186
+ export function managementHeaders(context, runtime) {
187
+ if (context === undefined)
188
+ return undefined;
189
+ const handle = runtime?.resourceHandle?.(context);
190
+ return {
191
+ [MANAGEMENT_EMBED_CONTEXT_HEADER]: encodeManagementContext(context),
192
+ ...(handle === undefined ? {} : { [WORKBENCH_ACCESS_HANDLE_HEADER]: handle }),
193
+ };
194
+ }
184
195
  export function decodeManagementContext(value) {
185
196
  if (value === undefined || value === "")
186
197
  return undefined;
@@ -282,17 +293,37 @@ function parseProjectEntry(value) {
282
293
  if (!isRecord(value))
283
294
  throw new Error("Management embed project entry is invalid");
284
295
  const agentsInstructions = optionalContentField(value, "agentsInstructions");
296
+ const agentsInstructionsPolicy = parseAgentsInstructionsPolicy(value["agentsInstructionsPolicy"]);
297
+ const agentsInstructionsRevision = optionalStringField(value, "agentsInstructionsRevision");
298
+ const agentsInstructionsReplaceIfMatches = Array.isArray(value["agentsInstructionsReplaceIfMatches"])
299
+ ? contentArray(value["agentsInstructionsReplaceIfMatches"])
300
+ : undefined;
285
301
  return {
286
302
  id: stringField(value, "id"),
287
303
  name: stringField(value, "name"),
288
304
  ...(typeof value["role"] === "string" ? { role: value["role"] } : {}),
289
305
  ...(typeof value["root"] === "string" ? { root: value["root"] } : {}),
290
306
  ...(agentsInstructions === undefined ? {} : { agentsInstructions }),
307
+ ...(agentsInstructionsPolicy === undefined ? {} : { agentsInstructionsPolicy }),
308
+ ...(agentsInstructionsRevision === undefined ? {} : { agentsInstructionsRevision }),
309
+ ...(agentsInstructionsReplaceIfMatches === undefined ? {} : { agentsInstructionsReplaceIfMatches }),
291
310
  };
292
311
  }
293
- async function ensureManagedProjectAgentsFile(projectPath, instructions) {
312
+ function parseAgentsInstructionsPolicy(value) {
313
+ if (value === undefined)
314
+ return undefined;
315
+ if (value === "create-if-missing" || value === "replace-managed")
316
+ return value;
317
+ throw new Error("Management embed project entry is invalid");
318
+ }
319
+ async function ensureManagedProjectAgentsFile(projectPath, project) {
320
+ const instructions = project.agentsInstructions;
294
321
  if (instructions === undefined || instructions.trim() === "")
295
322
  return;
323
+ if (project.agentsInstructionsPolicy === "replace-managed") {
324
+ await replaceManagedProjectAgentsFile(projectPath, instructions, project.agentsInstructionsRevision, project.agentsInstructionsReplaceIfMatches ?? []);
325
+ return;
326
+ }
296
327
  try {
297
328
  await writeFile(join(projectPath, "AGENTS.md"), instructions, { encoding: "utf8", flag: "wx" });
298
329
  }
@@ -302,6 +333,55 @@ async function ensureManagedProjectAgentsFile(projectPath, instructions) {
302
333
  throw error;
303
334
  }
304
335
  }
336
+ async function replaceManagedProjectAgentsFile(projectPath, instructions, revision, replaceIfMatches) {
337
+ const target = join(projectPath, "AGENTS.md");
338
+ const content = managedAgentsFileContent(instructions, revision);
339
+ try {
340
+ await writeFile(target, content, { encoding: "utf8", flag: "wx" });
341
+ return;
342
+ }
343
+ catch (error) {
344
+ if (!isNodeErrorWithCode(error, "EEXIST"))
345
+ throw error;
346
+ }
347
+ const existing = await readFile(target, "utf8");
348
+ if (!isManagedAgentsFile(existing) && !replaceIfMatches.some((baseline) => normalizeAgentsInstructions(baseline) === normalizeAgentsInstructions(existing)))
349
+ return;
350
+ if (existing === content)
351
+ return;
352
+ await backupManagedAgentsFile(projectPath, existing);
353
+ await writeFile(target, content, "utf8");
354
+ }
355
+ async function backupManagedAgentsFile(projectPath, content) {
356
+ const backupDir = join(projectPath, ".pi-web", "agents-backups");
357
+ await mkdir(backupDir, { recursive: true });
358
+ const timestamp = new Date().toISOString().replace(/[-:]/g, "").replace(/\.\d{3}Z$/, "Z");
359
+ const fingerprint = createHash("sha256").update(content).digest("hex").slice(0, 12);
360
+ for (let attempt = 0; attempt < 10; attempt += 1) {
361
+ const suffix = attempt === 0 ? "" : `-${String(attempt)}`;
362
+ try {
363
+ await writeFile(join(backupDir, `AGENTS.${timestamp}.${fingerprint}${suffix}.md`), content, { encoding: "utf8", flag: "wx" });
364
+ return;
365
+ }
366
+ catch (error) {
367
+ if (!isNodeErrorWithCode(error, "EEXIST"))
368
+ throw error;
369
+ }
370
+ }
371
+ await writeFile(join(backupDir, `AGENTS.${timestamp}.${fingerprint}-${randomBytes(4).toString("hex")}.md`), content, { encoding: "utf8", flag: "wx" });
372
+ }
373
+ function managedAgentsFileContent(instructions, revision) {
374
+ const normalizedInstructions = normalizeAgentsInstructions(instructions);
375
+ const resolvedRevision = revision ?? createHash("sha256").update(normalizedInstructions).digest("hex").slice(0, 16);
376
+ return `${MANAGED_AGENTS_MARKER_PREFIX}${JSON.stringify({ source: "management-embed", revision: resolvedRevision })}${MANAGED_AGENTS_MARKER_SUFFIX}\n${normalizedInstructions}`;
377
+ }
378
+ function normalizeAgentsInstructions(instructions) {
379
+ return instructions.endsWith("\n") ? instructions : `${instructions}\n`;
380
+ }
381
+ function isManagedAgentsFile(content) {
382
+ const firstLine = content.split(/\r?\n/, 1)[0]?.trim() ?? "";
383
+ return firstLine.startsWith(MANAGED_AGENTS_MARKER_PREFIX) && firstLine.endsWith(MANAGED_AGENTS_MARKER_SUFFIX);
384
+ }
305
385
  async function ensureRealDirectory(path) {
306
386
  await mkdir(path, { recursive: true });
307
387
  return realpath(path);
@@ -394,6 +474,9 @@ function numberField(value, key) {
394
474
  function stringArray(value) {
395
475
  return Array.isArray(value) ? value.filter((item) => typeof item === "string" && item.trim() !== "").map((item) => item.trim()) : [];
396
476
  }
477
+ function contentArray(value) {
478
+ return Array.isArray(value) ? value.filter((item) => typeof item === "string" && item.trim() !== "") : [];
479
+ }
397
480
  function stringRecord(value) {
398
481
  return Object.fromEntries(Object.entries(value).filter((entry) => typeof entry[1] === "string"));
399
482
  }
@@ -1 +1 @@
1
- {"version":3,"file":"managementEmbed.js","sourceRoot":"","sources":["../../src/server/managementEmbed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"managementEmbed.js","sourceRoot":"","sources":["../../src/server/managementEmbed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { MANAGEMENT_EMBED_CONTEXT_HEADER } from "../managementEmbed.js";
2
+ /** Internal sessiond HTTP adapter for the normal-mode current notice snapshot. */
3
+ export function registerServerNoticeRoutes(app, notices, prefix = "") {
4
+ app.get(`${prefix}/notices`, (request, reply) => {
5
+ if (request.headers[MANAGEMENT_EMBED_CONTEXT_HEADER] !== undefined) {
6
+ return reply.code(403).send({ error: "Server notices are unavailable in management embed mode" });
7
+ }
8
+ return notices.snapshot();
9
+ });
10
+ app.post(`${prefix}/notices/dismiss`, (request, reply) => {
11
+ if (request.headers[MANAGEMENT_EMBED_CONTEXT_HEADER] !== undefined) {
12
+ return reply.code(403).send({ error: "Server notices are unavailable in management embed mode" });
13
+ }
14
+ try {
15
+ const body = requireRecord(request.body);
16
+ const dismissal = {
17
+ daemonInstanceId: requireNonEmptyString(body["daemonInstanceId"], "daemonInstanceId"),
18
+ noticeId: requireNonEmptyString(body["noticeId"], "noticeId"),
19
+ };
20
+ return notices.dismiss(dismissal);
21
+ }
22
+ catch (error) {
23
+ return reply.code(400).send({ error: errorMessage(error) });
24
+ }
25
+ });
26
+ }
27
+ function requireRecord(value) {
28
+ if (!isRecord(value))
29
+ throw new Error("request body must be an object");
30
+ return value;
31
+ }
32
+ function isRecord(value) {
33
+ return typeof value === "object" && value !== null && !Array.isArray(value);
34
+ }
35
+ function requireNonEmptyString(value, field) {
36
+ if (typeof value !== "string" || value.trim() === "")
37
+ throw new Error(`${field} field must not be empty`);
38
+ return value;
39
+ }
40
+ function errorMessage(error) {
41
+ return error instanceof Error ? error.message : String(error);
42
+ }
43
+ //# sourceMappingURL=serverNoticeRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverNoticeRoutes.js","sourceRoot":"","sources":["../../../src/server/notices/serverNoticeRoutes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAGxE,kFAAkF;AAClF,MAAM,UAAU,0BAA0B,CACxC,GAAoB,EACpB,OAAiC,EACjC,MAAM,GAAG,EAAE;IAEX,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAC9C,IAAI,OAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC,KAAK,SAAS,EAAE,CAAC;YACnE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yDAAyD,EAAE,CAAC,CAAC;QACpG,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAoB,GAAG,MAAM,kBAAkB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAC1E,IAAI,OAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC,KAAK,SAAS,EAAE,CAAC;YACnE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yDAAyD,EAAE,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,SAAS,GAA+B;gBAC5C,gBAAgB,EAAE,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;gBACrF,QAAQ,EAAE,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;aAC9D,CAAC;YACF,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACxE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc,EAAE,KAAa;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,0BAA0B,CAAC,CAAC;IAC1G,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,26 @@
1
+ /** Sessiond adapter that publishes every changed current snapshot globally. */
2
+ export class ServerNoticeService {
3
+ constructor(store, events) {
4
+ this.store = store;
5
+ this.events = events;
6
+ }
7
+ record(input) {
8
+ const result = this.store.record(input);
9
+ this.publish(result.snapshot);
10
+ return result.notice;
11
+ }
12
+ snapshot() {
13
+ return this.store.snapshot();
14
+ }
15
+ dismiss(request) {
16
+ const result = this.store.dismiss(request.daemonInstanceId, request.noticeId);
17
+ if (result.dismissed)
18
+ this.publish(result.snapshot);
19
+ return result.snapshot;
20
+ }
21
+ publish(snapshot) {
22
+ const event = { type: "notices.updated", snapshot };
23
+ this.events.publishGlobal(event);
24
+ }
25
+ }
26
+ //# sourceMappingURL=serverNoticeService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverNoticeService.js","sourceRoot":"","sources":["../../../src/server/notices/serverNoticeService.ts"],"names":[],"mappings":"AAaA,+EAA+E;AAC/E,MAAM,OAAO,mBAAmB;IAC9B,YACmB,KAAwB,EACxB,MAA8C;QAD9C,UAAK,GAAL,KAAK,CAAmB;QACxB,WAAM,GAAN,MAAM,CAAwC;IAC9D,CAAC;IAEJ,MAAM,CAAC,KAAwB;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,OAAmC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9E,IAAI,MAAM,CAAC,SAAS;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEO,OAAO,CAAC,QAA8B;QAC5C,MAAM,KAAK,GAAuB,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACF"}
@@ -0,0 +1,78 @@
1
+ import { randomUUID } from "node:crypto";
2
+ /**
3
+ * Current server-owned application notices for one session-daemon instance.
4
+ *
5
+ * The store intentionally has no deduplication or history: every record call
6
+ * is one event occurrence, and dismissal removes only the requested id.
7
+ */
8
+ export class ServerNoticeStore {
9
+ constructor(options = {}) {
10
+ this.notices = new Map();
11
+ this.revision = 0;
12
+ this.daemonInstanceId = options.daemonInstanceId ?? randomUUID();
13
+ this.now = options.now ?? (() => new Date());
14
+ this.createNoticeId = options.createNoticeId ?? randomUUID;
15
+ }
16
+ record(input) {
17
+ requireSeverity(input.severity);
18
+ if (input.message.trim() === "")
19
+ throw new Error("Notice message must not be empty");
20
+ const notice = Object.freeze({
21
+ id: `${this.daemonInstanceId}:${this.createNoticeId()}`,
22
+ severity: input.severity,
23
+ message: input.message,
24
+ createdAt: this.now().toISOString(),
25
+ ...(input.source === undefined ? {} : { source: input.source }),
26
+ ...(input.context === undefined ? {} : { context: copyJsonObject(input.context) }),
27
+ });
28
+ this.notices.set(notice.id, notice);
29
+ this.revision = incrementSafe(this.revision, "Notice revision exhausted");
30
+ return { notice, snapshot: this.snapshot() };
31
+ }
32
+ snapshot() {
33
+ return {
34
+ daemonInstanceId: this.daemonInstanceId,
35
+ revision: this.revision,
36
+ // Newest notices are presented first, while the map remains the simple
37
+ // insertion-ordered ownership structure for exact-id deletion.
38
+ notices: [...this.notices.values()].reverse().map(copyNotice),
39
+ };
40
+ }
41
+ dismiss(daemonInstanceId, noticeId) {
42
+ if (daemonInstanceId !== this.daemonInstanceId || !this.notices.delete(noticeId)) {
43
+ return { snapshot: this.snapshot(), dismissed: false };
44
+ }
45
+ this.revision = incrementSafe(this.revision, "Notice revision exhausted");
46
+ return { snapshot: this.snapshot(), dismissed: true };
47
+ }
48
+ }
49
+ function requireSeverity(value) {
50
+ if (value !== "info" && value !== "warning" && value !== "error")
51
+ throw new Error("Invalid notice severity");
52
+ }
53
+ function copyNotice(notice) {
54
+ return {
55
+ ...notice,
56
+ ...(notice.context === undefined ? {} : { context: copyJsonObject(notice.context) }),
57
+ };
58
+ }
59
+ function copyJsonObject(value) {
60
+ return Object.freeze(Object.fromEntries(Object.entries(value).map(([key, item]) => [key, copyJsonValue(item)])));
61
+ }
62
+ function copyJsonValue(value) {
63
+ if (Array.isArray(value))
64
+ return value.map(copyJsonValue);
65
+ if (isJsonObject(value))
66
+ return copyJsonObject(value);
67
+ return value;
68
+ }
69
+ function isJsonObject(value) {
70
+ return typeof value === "object" && value !== null && !Array.isArray(value);
71
+ }
72
+ function incrementSafe(value, message) {
73
+ const next = value + 1;
74
+ if (!Number.isSafeInteger(next))
75
+ throw new Error(message);
76
+ return next;
77
+ }
78
+ //# sourceMappingURL=serverNoticeStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverNoticeStore.js","sourceRoot":"","sources":["../../../src/server/notices/serverNoticeStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ /**
4
+ * Reads the declared `name` field from the `package.json` at an installed Pi
5
+ * package's path. Returns `undefined` on any read/parse failure or malformed
6
+ * `name` field: identity resolution is best-effort and must never throw into
7
+ * a package-mutation or startup-reconciliation path.
8
+ */
9
+ export async function resolveDeclaredPiPackageName(installedPath) {
10
+ try {
11
+ const content = await readFile(join(installedPath, "package.json"), "utf8");
12
+ const parsed = JSON.parse(content);
13
+ if (!isRecord(parsed))
14
+ return undefined;
15
+ const name = parsed["name"];
16
+ return typeof name === "string" ? name : undefined;
17
+ }
18
+ catch {
19
+ return undefined;
20
+ }
21
+ }
22
+ function isRecord(value) {
23
+ return typeof value === "object" && value !== null && !Array.isArray(value);
24
+ }
25
+ //# sourceMappingURL=piPackageIdentity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"piPackageIdentity.js","sourceRoot":"","sources":["../../src/server/piPackageIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,aAAqB;IACtE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,SAAS,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}