@cleocode/cleo 2026.9.23 → 2026.9.25
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/dist/cli/index.js +1783 -580
- package/package.json +13 -13
- package/studio-dist/client/_app/immutable/chunks/BeqrF76J.js +3 -0
- package/studio-dist/client/_app/immutable/chunks/{DlnXUEcN.js → CcEmirN4.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/DRFhIGr1.js +1 -0
- package/studio-dist/client/_app/immutable/chunks/{VqMa-FR_.js → Dj9Ite4c.js} +1 -1
- package/studio-dist/client/_app/immutable/entry/{app.CXLixB0X.js → app.tPQyYZoK.js} +2 -2
- package/studio-dist/client/_app/immutable/entry/start.TCOC0qnN.js +1 -0
- package/studio-dist/client/_app/immutable/nodes/{0.D34GfsBr.js → 0.BVYdqJjU.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{1.COzO-K-Z.js → 1.DJbQn5Aq.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{15.CkLwS1y2.js → 15.DFLciLwG.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{16.C2MFh329.js → 16.BgshH5yX.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{17.CLdLJ6ju.js → 17.BQZJRQ5A.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{18.ClGsX0an.js → 18.B_YK1P9Z.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{20.vQtazQa0.js → 20.Dls8MCe1.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{24.DLwR4-7S.js → 24.IXvinnru.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{25.DUuYls4x.js → 25.BEebPQVq.js} +2 -2
- package/studio-dist/client/_app/immutable/nodes/{26.BZ-Sb3tl.js → 26.B7CS0G5p.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{3.CYwLXdQ4.js → 3.CdayxXUQ.js} +1 -1
- package/studio-dist/client/_app/version.json +1 -1
- package/studio-dist/server/chunks/{0-BlM3YDpC.js → 0-AF3xrUkn.js} +5 -4
- package/studio-dist/server/chunks/1-DcpAzosv.js +9 -0
- package/studio-dist/server/chunks/{15-D4Y9me2S.js → 15-D0fpXhAY.js} +3 -3
- package/studio-dist/server/chunks/{16-BNVAfz5X.js → 16-DvOEuR2L.js} +3 -3
- package/studio-dist/server/chunks/{17-ByJg8VAI.js → 17-B0jymkfA.js} +3 -3
- package/studio-dist/server/chunks/{18-mcGKywiH.js → 18-s4VnOMua.js} +3 -3
- package/studio-dist/server/chunks/{20-D4RXMRdA.js → 20-B1I-AIgl.js} +5 -4
- package/studio-dist/server/chunks/{23-D2H9OSJf.js → 23-D194DGVi.js} +3 -2
- package/studio-dist/server/chunks/{24-BZesRs_l.js → 24-Cd9TIy6S.js} +5 -4
- package/studio-dist/server/chunks/{25-BPtkcHWk.js → 25-CqxPBOK6.js} +4 -4
- package/studio-dist/server/chunks/{26-D7qW4CZ3.js → 26-CSVz9wrd.js} +3 -3
- package/studio-dist/server/chunks/{3-Csrn9tNa.js → 3-CnvKWYCF.js} +5 -5
- package/studio-dist/server/chunks/{_layout.svelte-DtqTR50-.js → _layout.svelte-DHaVs7sR.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-DTqKOclg.js → _page.svelte-3f1I0RBM.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-DESqb1iT.js → _page.svelte-B4hpnUVn.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-CyGNoYGs.js → _page.svelte-BQ3d309E.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-Ce2_fPzl.js → _page.svelte-Birr_Gmr.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-BkrxW4NS.js → _page.svelte-C2xIuyWy.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-BlDOqWK_.js → _page.svelte-CHQ7E1xk.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-DxctlP-t.js → _page.svelte-CW--O2H7.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-Dj05GrDh.js → _page.svelte-DHso8H-7.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-C9lhMoUX.js → _page.svelte-Do5ujrFm.js} +5 -5
- package/studio-dist/server/chunks/{_server.ts-B23PRUg6.js → _server.ts-10Z9UtEP.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-BPzV5a4O.js → _server.ts-BF8dYynr.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-BLEs7rDo.js → _server.ts-BNaQ_u-J.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-BhoAYR43.js → _server.ts-CFMss8Ec.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-CyXruf03.js → _server.ts-CUDHRtqK.js} +2 -2
- package/studio-dist/server/chunks/{_server.ts-BCPpAOST.js → _server.ts-CVQlKiss.js} +3 -2
- package/studio-dist/server/chunks/{_server.ts-DUgUi5r_.js → _server.ts-CmOf90SL.js} +2 -2
- package/studio-dist/server/chunks/{_server.ts-D7JwQTun.js → _server.ts-DRFQht0c.js} +3 -2
- package/studio-dist/server/chunks/{_server.ts-D64WqH4h.js → _server.ts-DfzvMeMr.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-D9JYb9Nh.js → _server.ts-DrRXPeYo.js} +3 -3
- package/studio-dist/server/chunks/{_server.ts-BtgcmXG8.js → _server.ts-DvaFTJ0E.js} +2 -2
- package/studio-dist/server/chunks/{_server.ts-CjJYkLJH.js → _server.ts-YrmdROs2.js} +3 -2
- package/studio-dist/server/chunks/{_server.ts-ChoGyX5C.js → _server.ts-ZCA_Uz1x.js} +3 -2
- package/studio-dist/server/chunks/{_server.ts-5euivmMj.js → _server.ts-mGj6h26U.js} +3 -2
- package/studio-dist/server/chunks/{brain-DLXOLooR.js → brain-4-tWVd6k.js} +2 -2
- package/studio-dist/server/chunks/{client-D4Rhd5ed.js → client-CPa0CHb-.js} +2 -2
- package/studio-dist/server/chunks/{dist-DafBXQH9.js → dist-b2dqLZbk.js} +178 -23
- package/studio-dist/server/chunks/{error.svelte-BLd3ZRbJ.js → error.svelte-B4-aI-CN.js} +3 -3
- package/studio-dist/server/chunks/{hooks.server-CWBRp8NI.js → hooks.server-D2qbf3Zp.js} +3 -2
- package/studio-dist/server/chunks/{http-C-8-8Oq_.js → http-C8NM9yzE.js} +2 -2
- package/studio-dist/server/chunks/{internal-DxboZxyS.js → internal-Ba4D4YGm.js} +3 -3
- package/studio-dist/server/chunks/{project-context-BAXQmgch.js → project-context-CX-nfwL2.js} +7 -5
- package/studio-dist/server/chunks/{src-RK_h29uK.js → src-CeLZUrEE.js} +218 -24
- package/studio-dist/server/chunks/{stores-DFVE4LvP.js → stores-DsgjOOHe.js} +2 -2
- package/studio-dist/server/index.js +1 -1
- package/studio-dist/server/manifest.js +27 -27
- package/studio-dist/client/_app/immutable/chunks/CyNL2FJl.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/DJ4ceMnt.js +0 -3
- package/studio-dist/client/_app/immutable/entry/start.C_VLyotS.js +0 -1
- package/studio-dist/server/chunks/1-DROdkBtZ.js +0 -9
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { j as json } from './exports-Dg-gdPPq.js';
|
|
2
|
-
import { g as getActiveProjectId, r as resolveProjectContext, a as resolveDefaultProjectContext } from './project-context-
|
|
2
|
+
import { g as getActiveProjectId, r as resolveProjectContext, a as resolveDefaultProjectContext } from './project-context-CX-nfwL2.js';
|
|
3
3
|
import { createHash } from 'node:crypto';
|
|
4
4
|
import './utils-g564cUMV.js';
|
|
5
5
|
import './cleo-home-_XIqkZaL.js';
|
|
@@ -10,6 +10,7 @@ import '@cleocode/core/paths.js';
|
|
|
10
10
|
import '@cleocode/core/store/dual-scope-db';
|
|
11
11
|
import '@cleocode/core';
|
|
12
12
|
import '@cleocode/core/store/open-cleo-db';
|
|
13
|
+
import '@cleocode/core/nexus/project-activity.js';
|
|
13
14
|
|
|
14
15
|
//#region src/lib/server/csrf.ts
|
|
15
16
|
/**
|
|
@@ -154,4 +155,4 @@ var handle = async ({ event, resolve }) => {
|
|
|
154
155
|
};
|
|
155
156
|
|
|
156
157
|
export { handle };
|
|
157
|
-
//# sourceMappingURL=hooks.server-
|
|
158
|
+
//# sourceMappingURL=hooks.server-D2qbf3Zp.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { O as OPERATIONS$1 } from './dist-
|
|
1
|
+
import { O as OPERATIONS$1 } from './dist-b2dqLZbk.js';
|
|
2
2
|
import '@cleocode/core';
|
|
3
3
|
import 'path';
|
|
4
4
|
|
|
@@ -107,4 +107,4 @@ function createSseStream(source, signal) {
|
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
export { SSE_HEADERS as S, encodeStreamEvent as a, createSseStream as c, encodeSseFrame as e };
|
|
110
|
-
//# sourceMappingURL=http-
|
|
110
|
+
//# sourceMappingURL=http-C8NM9yzE.js.map
|
|
@@ -1430,7 +1430,7 @@ var options = {
|
|
|
1430
1430
|
app: ({ head, body, assets, nonce, env }) => "<!doctype html>\n<html lang=\"en\" data-theme=\"dark\">\n <head>\n <meta charset=\"utf-8\" />\n <link rel=\"icon\" href=\"" + assets + "/favicon.png\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <meta name=\"color-scheme\" content=\"dark\" />\n <title>CLEO Studio</title>\n " + head + "\n </head>\n <body class=\"cleo-root\" data-sveltekit-preload-data=\"hover\">\n <div style=\"display: contents\">" + body + "</div>\n </body>\n</html>\n",
|
|
1431
1431
|
error: ({ status, message }) => "<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <title>" + message + "</title>\n\n <style>\n body {\n --bg: white;\n --fg: #222;\n --divider: #ccc;\n background: var(--bg);\n color: var(--fg);\n font-family:\n system-ui,\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n Oxygen,\n Ubuntu,\n Cantarell,\n 'Open Sans',\n 'Helvetica Neue',\n sans-serif;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100vh;\n margin: 0;\n }\n\n .error {\n display: flex;\n align-items: center;\n max-width: 32rem;\n margin: 0 1rem;\n }\n\n .status {\n font-weight: 200;\n font-size: 3rem;\n line-height: 1;\n position: relative;\n top: -0.05rem;\n }\n\n .message {\n border-left: 1px solid var(--divider);\n padding: 0 0 0 1rem;\n margin: 0 0 0 1rem;\n min-height: 2.5rem;\n display: flex;\n align-items: center;\n }\n\n .message h1 {\n font-weight: 400;\n font-size: 1em;\n margin: 0;\n }\n\n @media (prefers-color-scheme: dark) {\n body {\n --bg: #222;\n --fg: #ddd;\n --divider: #666;\n }\n }\n </style>\n </head>\n <body>\n <div class=\"error\">\n <span class=\"status\">" + status + "</span>\n <div class=\"message\">\n <h1>" + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
|
|
1432
1432
|
},
|
|
1433
|
-
version_hash: "
|
|
1433
|
+
version_hash: "ysvwz5"
|
|
1434
1434
|
};
|
|
1435
1435
|
async function get_hooks() {
|
|
1436
1436
|
let handle;
|
|
@@ -1438,7 +1438,7 @@ async function get_hooks() {
|
|
|
1438
1438
|
let handleError;
|
|
1439
1439
|
let handleValidationError;
|
|
1440
1440
|
let init;
|
|
1441
|
-
({handle, handleFetch, handleError, handleValidationError, init} = await import('./hooks.server-
|
|
1441
|
+
({handle, handleFetch, handleError, handleValidationError, init} = await import('./hooks.server-D2qbf3Zp.js'));
|
|
1442
1442
|
let reroute;
|
|
1443
1443
|
let transport;
|
|
1444
1444
|
return {
|
|
@@ -1453,4 +1453,4 @@ async function get_hooks() {
|
|
|
1453
1453
|
}
|
|
1454
1454
|
|
|
1455
1455
|
export { stringify as A, make_trackable as B, stringify$1 as C, read_implementation as D, split_remote_key as E, set_read_implementation as F, IN_WEBCONTAINER as I, NULL_BODY_STATUS as N, TRAILING_SLASH_PARAM as T, get_message as a, get_hooks as b, coalesce_to_error as c, INVALIDATED_PARAM as d, decode_pathname as e, find_route as f, get_status as g, normalize_path as h, disable_search as i, validate_layout_exports as j, validate_page_server_exports as k, validate_page_exports as l, merge_tracing as m, noop as n, options as o, parse as p, noop_span as q, create_remote_key as r, hash as s, compact as t, once as u, validate_layout_server_exports as v, with_request_store as w, normalize_error as x, resolve as y, parse_remote_arg as z };
|
|
1456
|
-
//# sourceMappingURL=internal-
|
|
1456
|
+
//# sourceMappingURL=internal-Ba4D4YGm.js.map
|
package/studio-dist/server/chunks/{project-context-BAXQmgch.js → project-context-CX-nfwL2.js}
RENAMED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { g as getNexusDbPath, a as getTasksDbPath, b as getCleoProjectDir, w as withStudioProjectScope } from './cleo-home-_XIqkZaL.js';
|
|
2
2
|
import { existsSync } from 'node:fs';
|
|
3
|
-
import { dirname, join
|
|
4
|
-
import { getProjectInfoSync } from '@cleocode/core';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
import { getProjectDisplayName, getProjectInfoSync } from '@cleocode/core';
|
|
5
5
|
import { openCleoDbSnapshot } from '@cleocode/core/store/open-cleo-db';
|
|
6
|
+
import { projectLastActivitySqlText } from '@cleocode/core/nexus/project-activity.js';
|
|
6
7
|
|
|
7
8
|
//#region src/lib/server/project-context.ts
|
|
8
9
|
/**
|
|
@@ -106,7 +107,7 @@ function resolveDefaultProjectContext() {
|
|
|
106
107
|
if (!info && existsSync(join(projectDir, "project-info.json"))) throw new Error(`Cannot read Studio project identity at ${projectDir}/project-info.json`);
|
|
107
108
|
return {
|
|
108
109
|
projectId: info?.projectId || info?.projectHash || "",
|
|
109
|
-
name:
|
|
110
|
+
name: getProjectDisplayName(projectPath) || "default",
|
|
110
111
|
projectPath,
|
|
111
112
|
brainDbPath,
|
|
112
113
|
tasksDbPath,
|
|
@@ -134,6 +135,7 @@ function listRegisteredProjects() {
|
|
|
134
135
|
applyPragmas: false
|
|
135
136
|
});
|
|
136
137
|
try {
|
|
138
|
+
const columns = new Set(snap.db.prepare("SELECT name FROM pragma_table_info('nexus_project_registry')").all().map((c) => c.name));
|
|
137
139
|
const rows = snap.db.prepare(`SELECT
|
|
138
140
|
project_id,
|
|
139
141
|
name,
|
|
@@ -144,7 +146,7 @@ function listRegisteredProjects() {
|
|
|
144
146
|
last_seen,
|
|
145
147
|
health_status
|
|
146
148
|
FROM nexus_project_registry
|
|
147
|
-
ORDER BY
|
|
149
|
+
ORDER BY ${projectLastActivitySqlText(columns)} DESC`).all();
|
|
148
150
|
/**
|
|
149
151
|
* Strict server-side exclusion: any project whose path contains a `.temp/`
|
|
150
152
|
* segment is filtered out before reaching the client. This rule is
|
|
@@ -185,4 +187,4 @@ function listRegisteredProjects() {
|
|
|
185
187
|
}
|
|
186
188
|
|
|
187
189
|
export { resolveDefaultProjectContext as a, clearActiveProjectId as c, getActiveProjectId as g, listRegisteredProjects as l, resolveProjectContext as r, setActiveProjectId as s };
|
|
188
|
-
//# sourceMappingURL=project-context-
|
|
190
|
+
//# sourceMappingURL=project-context-CX-nfwL2.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';
|
|
2
|
-
import { existsSync, realpathSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { existsSync, statSync, realpathSync, readFileSync } from 'node:fs';
|
|
3
3
|
import path, { join, dirname, resolve, isAbsolute } from 'node:path';
|
|
4
4
|
import { applyPerfPragmas } from '@cleocode/core/store/sqlite-pragmas.js';
|
|
5
5
|
import 'node:crypto';
|
|
@@ -177,25 +177,40 @@ function createPlatformPathsResolver(appName, homeEnvVar, configEnvVar) {
|
|
|
177
177
|
//#endregion
|
|
178
178
|
//#region ../paths/dist/portable-project-id.js
|
|
179
179
|
/**
|
|
180
|
-
* The tracked, write-once portable project identity
|
|
180
|
+
* The tracked, write-once portable project identity.
|
|
181
181
|
*
|
|
182
182
|
* Every other project identifier CLEO computes hashes the absolute path, and
|
|
183
183
|
* the random `projectId` in `.cleo/project-info.json` is gitignored (ADR-013
|
|
184
|
-
* §9), so a fresh clone used to mint a brand-new identity at `cleo init`.
|
|
185
|
-
*
|
|
186
|
-
* once, commits nothing else beside it, and never rewrites it. Because nothing
|
|
187
|
-
* ever writes it a second time, git has nothing to overwrite — the geometry
|
|
188
|
-
* that made ADR-013 untrack the mutable state files does not apply
|
|
189
|
-
* (ADR-094, T12325).
|
|
184
|
+
* §9), so a fresh clone used to mint a brand-new identity at `cleo init`. The
|
|
185
|
+
* tracked identity travels with the repository instead. Two files carry it:
|
|
190
186
|
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
187
|
+
* - `.cleo/project.json` — canonical since T12716: `{schemaVersion, id, name}`.
|
|
188
|
+
* The id is write-once; the name is the project's committed display name and
|
|
189
|
+
* changes only through `cleo project rename`.
|
|
190
|
+
* - `.cleo/project-id` — the ADR-094 id-only file (T12325). Kept as a legacy
|
|
191
|
+
* mirror so builds that know only this file keep resolving the same id.
|
|
192
|
+
*
|
|
193
|
+
* {@link readPortableProjectId} is the ONE resolver over both: `project.json`
|
|
194
|
+
* wins, `project-id` is the fallback. Because nothing rewrites the id, git has
|
|
195
|
+
* nothing to overwrite — the geometry that made ADR-013 untrack the mutable
|
|
196
|
+
* state files does not apply (ADR-094, T12325; ADR-096, T12716).
|
|
197
|
+
*
|
|
198
|
+
* This module only READS. Writing (create-only), renaming and migration live
|
|
199
|
+
* in `@cleocode/core` (`scaffold/project-identity.ts`, `project-manifest.ts`,
|
|
200
|
+
* `doctor/project-identity.ts`).
|
|
193
201
|
*
|
|
194
202
|
* @packageDocumentation
|
|
195
203
|
* @task T12325
|
|
204
|
+
* @task T12716
|
|
205
|
+
*/
|
|
206
|
+
/**
|
|
207
|
+
* Basename of the legacy id-only identity file inside a project's `.cleo/`
|
|
208
|
+
* (ADR-094). Superseded by {@link PROJECT_MANIFEST_FILE}; still read as a
|
|
209
|
+
* fallback and kept as a mirror for older builds (T12716).
|
|
196
210
|
*/
|
|
197
|
-
/** Basename of the tracked portable identity file inside a project's `.cleo/`. */
|
|
198
211
|
var PORTABLE_PROJECT_ID_FILE = "project-id";
|
|
212
|
+
/** Basename of the canonical tracked identity manifest inside `.cleo/` (T12716). */
|
|
213
|
+
var PROJECT_MANIFEST_FILE = "project.json";
|
|
199
214
|
/**
|
|
200
215
|
* Accepted identity shape: every id CLEO has ever minted (UUIDv4, 12-hex,
|
|
201
216
|
* the 29-char legacy form) fits, and nothing that could smuggle a path
|
|
@@ -258,24 +273,178 @@ function parsePortableProjectId(content) {
|
|
|
258
273
|
};
|
|
259
274
|
}
|
|
260
275
|
/**
|
|
261
|
-
* Read the
|
|
276
|
+
* Read ONLY the legacy `.cleo/project-id` file, synchronously.
|
|
277
|
+
*
|
|
278
|
+
* Callers that need the project's id use {@link readPortableProjectId}, which
|
|
279
|
+
* prefers `project.json`. This is for code that manages the legacy file
|
|
280
|
+
* itself (the doctor, the mirror writer, identity retirement).
|
|
262
281
|
*
|
|
263
282
|
* @param projectRoot - Absolute project root (the directory containing `.cleo/`).
|
|
264
|
-
* @returns `absent
|
|
265
|
-
*
|
|
283
|
+
* @returns `absent`, `valid` with the id, or `invalid` with a reason.
|
|
284
|
+
*
|
|
285
|
+
* @example
|
|
286
|
+
* ```ts
|
|
287
|
+
* readProjectIdFile('/repo'); // { status: 'valid', projectId: 'c78d09c3a8ee', file: 'project-id' }
|
|
288
|
+
* ```
|
|
289
|
+
*
|
|
290
|
+
* @public
|
|
291
|
+
* @task T12716
|
|
292
|
+
*/
|
|
293
|
+
function readProjectIdFile(projectRoot) {
|
|
294
|
+
const content = readTextFile(portableProjectIdPath(projectRoot));
|
|
295
|
+
if (content.status !== "read") return withFile(content, PORTABLE_PROJECT_ID_FILE);
|
|
296
|
+
return withFile(parsePortableProjectId(content.content), PORTABLE_PROJECT_ID_FILE);
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Whether a string is an acceptable display name: 1-{@link PROJECT_DISPLAY_NAME_MAX}
|
|
300
|
+
* characters after trimming, no path separator, no leading `~`, no control
|
|
301
|
+
* character. A name is a label, never a path.
|
|
302
|
+
*
|
|
303
|
+
* @param name - Candidate name.
|
|
304
|
+
* @returns `true` when the name is acceptable as-is (already trimmed).
|
|
305
|
+
*
|
|
306
|
+
* @example
|
|
307
|
+
* ```ts
|
|
308
|
+
* isValidProjectDisplayName('cleocode'); // true
|
|
309
|
+
* isValidProjectDisplayName('../x'); // false
|
|
310
|
+
* ```
|
|
311
|
+
*
|
|
312
|
+
* @public
|
|
313
|
+
* @task T12716
|
|
314
|
+
*/
|
|
315
|
+
function isValidProjectDisplayName(name) {
|
|
316
|
+
return name.length > 0 && name === name.trim() && name.length <= 120 && !name.startsWith("~") && !/[/\\\u0000-\u001f\u007f]/.test(name);
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Absolute path of the canonical identity manifest for a project root.
|
|
320
|
+
*
|
|
321
|
+
* @param projectRoot - Absolute project root (the directory containing `.cleo/`).
|
|
322
|
+
* @returns `<projectRoot>/.cleo/project.json`.
|
|
323
|
+
*
|
|
324
|
+
* @public
|
|
325
|
+
* @task T12716
|
|
326
|
+
*/
|
|
327
|
+
function projectManifestPath(projectRoot) {
|
|
328
|
+
return join(projectRoot, ".cleo", PROJECT_MANIFEST_FILE);
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Parse the body of `.cleo/project.json`.
|
|
332
|
+
*
|
|
333
|
+
* Strict on the three fields: `schemaVersion` must be
|
|
334
|
+
* {@link PROJECT_MANIFEST_SCHEMA_VERSION} (a newer format is `invalid`, so an
|
|
335
|
+
* old build never guesses at it), `id` must pass
|
|
336
|
+
* {@link isValidPortableProjectId}, and `name` must pass
|
|
337
|
+
* {@link isValidProjectDisplayName}. Unknown extra keys are ignored.
|
|
338
|
+
*
|
|
339
|
+
* @param content - Raw file content.
|
|
340
|
+
* @returns `valid` with the manifest, or `invalid` with a reason.
|
|
341
|
+
*
|
|
342
|
+
* @public
|
|
343
|
+
* @task T12716
|
|
344
|
+
*/
|
|
345
|
+
function parseProjectManifest(content) {
|
|
346
|
+
let data;
|
|
347
|
+
try {
|
|
348
|
+
data = JSON.parse(content);
|
|
349
|
+
} catch (error) {
|
|
350
|
+
return {
|
|
351
|
+
status: "invalid",
|
|
352
|
+
reason: `not JSON: ${error instanceof Error ? error.message : String(error)}`
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
if (data === null || typeof data !== "object" || Array.isArray(data)) return {
|
|
356
|
+
status: "invalid",
|
|
357
|
+
reason: "expected a JSON object"
|
|
358
|
+
};
|
|
359
|
+
const record = data;
|
|
360
|
+
if (record["schemaVersion"] !== 1) return {
|
|
361
|
+
status: "invalid",
|
|
362
|
+
reason: `unsupported schemaVersion ${JSON.stringify(record["schemaVersion"])} (this build reads 1)`
|
|
363
|
+
};
|
|
364
|
+
const id = record["id"];
|
|
365
|
+
if (typeof id !== "string" || !isValidPortableProjectId(id)) return {
|
|
366
|
+
status: "invalid",
|
|
367
|
+
reason: `malformed id ${JSON.stringify(id)?.slice(0, 64)}`
|
|
368
|
+
};
|
|
369
|
+
const name = record["name"];
|
|
370
|
+
if (typeof name !== "string" || !isValidProjectDisplayName(name)) return {
|
|
371
|
+
status: "invalid",
|
|
372
|
+
reason: `malformed name ${JSON.stringify(name)?.slice(0, 64)}`
|
|
373
|
+
};
|
|
374
|
+
return {
|
|
375
|
+
status: "valid",
|
|
376
|
+
manifest: {
|
|
377
|
+
schemaVersion: 1,
|
|
378
|
+
id,
|
|
379
|
+
name
|
|
380
|
+
}
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Read `.cleo/project.json`, synchronously.
|
|
385
|
+
*
|
|
386
|
+
* @param projectRoot - Absolute project root (the directory containing `.cleo/`).
|
|
387
|
+
* @returns `absent`, `valid` with the manifest, or `invalid` with a reason.
|
|
388
|
+
*
|
|
389
|
+
* @example
|
|
390
|
+
* ```ts
|
|
391
|
+
* const read = readProjectManifest('/repo');
|
|
392
|
+
* if (read.status === 'valid') console.log(read.manifest.name);
|
|
393
|
+
* ```
|
|
394
|
+
*
|
|
395
|
+
* @public
|
|
396
|
+
* @task T12716
|
|
397
|
+
*/
|
|
398
|
+
function readProjectManifest(projectRoot) {
|
|
399
|
+
const content = readTextFile(projectManifestPath(projectRoot));
|
|
400
|
+
if (content.status !== "read") return content;
|
|
401
|
+
return parseProjectManifest(content.content);
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Read the tracked portable identity of a project, synchronously — the ONE
|
|
405
|
+
* resolver over the tracked files (T12716).
|
|
406
|
+
*
|
|
407
|
+
* Precedence: `.cleo/project.json`, then the legacy `.cleo/project-id`. A
|
|
408
|
+
* malformed `project.json` is `invalid` and does NOT fall through to
|
|
409
|
+
* `project-id`: a broken canonical file is restored from version control,
|
|
410
|
+
* never papered over. When both files are valid and disagree, `project.json`
|
|
411
|
+
* wins here and `cleo doctor project-identity` reports the mirror conflict.
|
|
412
|
+
*
|
|
413
|
+
* @param projectRoot - Absolute project root (the directory containing `.cleo/`).
|
|
414
|
+
* @returns `absent` when neither file exists, `valid` with the id (and the
|
|
415
|
+
* `file` it came from, plus the `name` when `project.json` supplied it), or
|
|
416
|
+
* `invalid` with a reason and the unusable `file`.
|
|
266
417
|
*
|
|
267
418
|
* @example
|
|
268
419
|
* ```ts
|
|
269
420
|
* const read = readPortableProjectId('/repo');
|
|
270
|
-
* if (read.status === 'valid') console.log(read.projectId);
|
|
421
|
+
* if (read.status === 'valid') console.log(read.projectId, read.file);
|
|
271
422
|
* ```
|
|
272
423
|
*
|
|
273
424
|
* @public
|
|
274
425
|
*/
|
|
275
426
|
function readPortableProjectId(projectRoot) {
|
|
276
|
-
|
|
427
|
+
const manifest = readProjectManifest(projectRoot);
|
|
428
|
+
if (manifest.status === "valid") return {
|
|
429
|
+
status: "valid",
|
|
430
|
+
projectId: manifest.manifest.id,
|
|
431
|
+
file: PROJECT_MANIFEST_FILE,
|
|
432
|
+
name: manifest.manifest.name
|
|
433
|
+
};
|
|
434
|
+
if (manifest.status === "invalid") return {
|
|
435
|
+
status: "invalid",
|
|
436
|
+
reason: manifest.reason,
|
|
437
|
+
file: PROJECT_MANIFEST_FILE
|
|
438
|
+
};
|
|
439
|
+
return readProjectIdFile(projectRoot);
|
|
440
|
+
}
|
|
441
|
+
/** Read a small text file; `absent` on ENOENT, `invalid` on any other error. */
|
|
442
|
+
function readTextFile(path) {
|
|
277
443
|
try {
|
|
278
|
-
|
|
444
|
+
return {
|
|
445
|
+
status: "read",
|
|
446
|
+
content: readFileSync(path, "utf-8")
|
|
447
|
+
};
|
|
279
448
|
} catch (error) {
|
|
280
449
|
if (error instanceof Error && "code" in error && error.code === "ENOENT") return { status: "absent" };
|
|
281
450
|
return {
|
|
@@ -283,7 +452,14 @@ function readPortableProjectId(projectRoot) {
|
|
|
283
452
|
reason: `unreadable: ${error instanceof Error ? error.message : String(error)}`
|
|
284
453
|
};
|
|
285
454
|
}
|
|
286
|
-
|
|
455
|
+
}
|
|
456
|
+
/** Tag a read outcome with the file it came from (absent stays untagged). */
|
|
457
|
+
function withFile(read, file) {
|
|
458
|
+
if (read.status === "absent") return read;
|
|
459
|
+
return {
|
|
460
|
+
...read,
|
|
461
|
+
file
|
|
462
|
+
};
|
|
287
463
|
}
|
|
288
464
|
//#endregion
|
|
289
465
|
//#region ../paths/dist/cleo-paths.js
|
|
@@ -324,11 +500,15 @@ function _readProjectInfoId(projectRoot) {
|
|
|
324
500
|
}
|
|
325
501
|
}
|
|
326
502
|
/**
|
|
327
|
-
* Read the identity a project root DECLARES, in precedence order (T12470
|
|
503
|
+
* Read the identity a project root DECLARES, in precedence order (T12470,
|
|
504
|
+
* T12716):
|
|
328
505
|
*
|
|
329
|
-
* 1. the tracked, write-once `.cleo/project
|
|
330
|
-
*
|
|
506
|
+
* 1. the tracked, write-once id: `.cleo/project.json`, else the legacy
|
|
507
|
+
* `.cleo/project-id` ({@link readPortableProjectId}, ADR-094);
|
|
508
|
+
* 2. the `projectId` cached in `.cleo/project-info.json`.
|
|
331
509
|
*
|
|
510
|
+
* The tracked id always wins; a disagreeing cache is reported by
|
|
511
|
+
* `cleo doctor project-identity` and re-keyed only by its `--resolve`.
|
|
332
512
|
* A malformed tracked file is skipped here (it is reported by
|
|
333
513
|
* `cleo doctor project-identity`) and never replaced by a derived value.
|
|
334
514
|
* Nothing about the path — its spelling, realpath, git root or remote — takes
|
|
@@ -351,6 +531,8 @@ function readDeclaredProjectIdentity(projectRoot) {
|
|
|
351
531
|
if (tracked.status === "valid") return {
|
|
352
532
|
projectId: tracked.projectId,
|
|
353
533
|
source: "tracked",
|
|
534
|
+
...tracked.file !== void 0 && { trackedFile: tracked.file },
|
|
535
|
+
...tracked.name !== void 0 && { name: tracked.name },
|
|
354
536
|
...infoProjectId !== void 0 && { infoProjectId }
|
|
355
537
|
};
|
|
356
538
|
if (infoProjectId !== void 0) return {
|
|
@@ -361,6 +543,18 @@ function readDeclaredProjectIdentity(projectRoot) {
|
|
|
361
543
|
return null;
|
|
362
544
|
}
|
|
363
545
|
/**
|
|
546
|
+
* Whether `<dir>/.git` is a DIRECTORY (a git toplevel). A linked worktree's
|
|
547
|
+
* `.git` is a gitlink FILE: a tracked-only `.cleo/` there is not a project
|
|
548
|
+
* root, matching core's `validateProjectRoot` (T12716 review finding 8).
|
|
549
|
+
*/
|
|
550
|
+
function _isGitDirectory(dir) {
|
|
551
|
+
try {
|
|
552
|
+
return statSync(join(dir, ".git")).isDirectory();
|
|
553
|
+
} catch {
|
|
554
|
+
return false;
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
/**
|
|
364
558
|
* Canonicalize a filesystem path across operating systems — resolve symlinks
|
|
365
559
|
* and mount/alias divergence (macOS `/var` → `/private/var`, Windows
|
|
366
560
|
* drive-letter case + 8.3 short names, Linux bind-mounts) via
|
|
@@ -464,7 +658,7 @@ function resolveProjectByCwd(cwd) {
|
|
|
464
658
|
if (existsSync(join(current, ".cleo"))) {
|
|
465
659
|
const declared = readDeclaredProjectIdentity(current);
|
|
466
660
|
const trackedOnly = declared?.source === "tracked" && declared.infoProjectId === void 0;
|
|
467
|
-
if (declared !== null && (!trackedOnly ||
|
|
661
|
+
if (declared !== null && (!trackedOnly || _isGitDirectory(current))) return {
|
|
468
662
|
projectId: declared.projectId,
|
|
469
663
|
projectRoot: canonicalizePath(current),
|
|
470
664
|
...declared.infoProjectId !== void 0 && { legacyUUID: declared.infoProjectId },
|
|
@@ -572,7 +766,7 @@ function resolveCanonicalCleoDir(projectId) {
|
|
|
572
766
|
*
|
|
573
767
|
* Resolution order:
|
|
574
768
|
* 1. {@link resolveProjectByCwd} — reads the declared `projectId`
|
|
575
|
-
* (`.cleo/project-id`, then `project-info.json`) and the checkout root. The
|
|
769
|
+
* (`.cleo/project.json` / legacy `.cleo/project-id`, then `project-info.json`) and the checkout root. The
|
|
576
770
|
* registry path from {@link resolveCanonicalCleoDir} is used only when it
|
|
577
771
|
* names this same checkout (T12470); otherwise `<projectRoot>/.cleo`.
|
|
578
772
|
* 2. Fallback: `CLEO_ROOT` env var or `process.cwd()` + `'.cleo'` for
|
|
@@ -1603,4 +1797,4 @@ function getAllSubstrates(options = {}) {
|
|
|
1603
1797
|
}
|
|
1604
1798
|
|
|
1605
1799
|
export { getAgentRegistryDb as a, getNexusDb as b, getConduitDb as c, getTasksDb as d, getBrainDb as e, getAllSubstrates as g };
|
|
1606
|
-
//# sourceMappingURL=src-
|
|
1800
|
+
//# sourceMappingURL=src-CeLZUrEE.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { g as getContext } from './dev-Br5zieNA.js';
|
|
2
2
|
import 'node:module';
|
|
3
|
-
import './client-
|
|
3
|
+
import './client-CPa0CHb-.js';
|
|
4
4
|
|
|
5
5
|
//#region ../../node_modules/.pnpm/@sveltejs+kit@2.57.1_@opentelemetry+api@1.9.0_@sveltejs+vite-plugin-svelte@5.1.1_svelte_e94e6db60b0c5f7146157d0facbe8042/node_modules/@sveltejs/kit/src/runtime/app/stores.js
|
|
6
6
|
/**
|
|
@@ -30,4 +30,4 @@ var page = { subscribe(fn) {
|
|
|
30
30
|
} };
|
|
31
31
|
|
|
32
32
|
export { page as p };
|
|
33
|
-
//# sourceMappingURL=stores-
|
|
33
|
+
//# sourceMappingURL=stores-DsgjOOHe.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { _ as __commonJSMin } from './chunks/index-server-BgfA6C0S.js';
|
|
2
|
-
import { c as coalesce_to_error, g as get_status, a as get_message, w as with_request_store, p as parse, o as options, I as IN_WEBCONTAINER, b as get_hooks, n as noop, T as TRAILING_SLASH_PARAM, d as INVALIDATED_PARAM, e as decode_pathname, f as find_route, h as normalize_path, i as disable_search, m as merge_tracing, v as validate_layout_server_exports, j as validate_layout_exports, k as validate_page_server_exports, l as validate_page_exports, q as noop_span, r as create_remote_key, s as hash, t as compact, u as once, x as normalize_error, y as resolve, z as parse_remote_arg, A as stringify, B as make_trackable, C as stringify$1, D as read_implementation, E as split_remote_key, N as NULL_BODY_STATUS, F as set_read_implementation } from './chunks/internal-
|
|
2
|
+
import { c as coalesce_to_error, g as get_status, a as get_message, w as with_request_store, p as parse, o as options, I as IN_WEBCONTAINER, b as get_hooks, n as noop, T as TRAILING_SLASH_PARAM, d as INVALIDATED_PARAM, e as decode_pathname, f as find_route, h as normalize_path, i as disable_search, m as merge_tracing, v as validate_layout_server_exports, j as validate_layout_exports, k as validate_page_server_exports, l as validate_page_exports, q as noop_span, r as create_remote_key, s as hash, t as compact, u as once, x as normalize_error, y as resolve, z as parse_remote_arg, A as stringify, B as make_trackable, C as stringify$1, D as read_implementation, E as split_remote_key, N as NULL_BODY_STATUS, F as set_read_implementation } from './chunks/internal-Ba4D4YGm.js';
|
|
3
3
|
import { H as HttpError, a as text_decoder, S as SvelteKitError, h as has_resolution_suffix, c as has_data_suffix, s as strip_resolution_suffix, d as strip_data_suffix, e as add_data_suffix, f as add_resolution_suffix, R as Redirect, t as text_encoder, A as ActionFailure, g as get_relative_path, i as base64_encode } from './chunks/utils-g564cUMV.js';
|
|
4
4
|
import { j as json, t as text, e as error, i as isRedirect } from './chunks/exports-Dg-gdPPq.js';
|
|
5
5
|
import { u as uneval, aa as writable, ab as readable } from './chunks/dev-Br5zieNA.js';
|
|
@@ -10,12 +10,12 @@ return {
|
|
|
10
10
|
assets: new Set(["favicon.png"]),
|
|
11
11
|
mimeTypes: {".png":"image/png"},
|
|
12
12
|
_: {
|
|
13
|
-
client: {start:"_app/immutable/entry/start.
|
|
13
|
+
client: {start:"_app/immutable/entry/start.TCOC0qnN.js",app:"_app/immutable/entry/app.tPQyYZoK.js",imports:["_app/immutable/entry/start.TCOC0qnN.js","_app/immutable/chunks/BeqrF76J.js","_app/immutable/chunks/DGftG5oL.js","_app/immutable/entry/app.tPQyYZoK.js","_app/immutable/chunks/DGftG5oL.js","_app/immutable/chunks/C6jhAnil.js","_app/immutable/chunks/B8WnZMYa.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
|
|
14
14
|
nodes: [
|
|
15
|
-
__memo(() => import('./chunks/0-
|
|
16
|
-
__memo(() => import('./chunks/1-
|
|
15
|
+
__memo(() => import('./chunks/0-AF3xrUkn.js')),
|
|
16
|
+
__memo(() => import('./chunks/1-DcpAzosv.js')),
|
|
17
17
|
__memo(() => import('./chunks/2-DQaIET_o.js')),
|
|
18
|
-
__memo(() => import('./chunks/3-
|
|
18
|
+
__memo(() => import('./chunks/3-CnvKWYCF.js')),
|
|
19
19
|
__memo(() => import('./chunks/4-C9BMSh4K.js')),
|
|
20
20
|
__memo(() => import('./chunks/5-C0CF4WKG.js')),
|
|
21
21
|
__memo(() => import('./chunks/6-BWyOJust.js')),
|
|
@@ -27,18 +27,18 @@ return {
|
|
|
27
27
|
__memo(() => import('./chunks/12-WE1u104t.js')),
|
|
28
28
|
__memo(() => import('./chunks/13-joBDoxhK.js')),
|
|
29
29
|
__memo(() => import('./chunks/14-Doj5F4uJ.js')),
|
|
30
|
-
__memo(() => import('./chunks/15-
|
|
31
|
-
__memo(() => import('./chunks/16-
|
|
32
|
-
__memo(() => import('./chunks/17-
|
|
33
|
-
__memo(() => import('./chunks/18-
|
|
30
|
+
__memo(() => import('./chunks/15-D0fpXhAY.js')),
|
|
31
|
+
__memo(() => import('./chunks/16-DvOEuR2L.js')),
|
|
32
|
+
__memo(() => import('./chunks/17-B0jymkfA.js')),
|
|
33
|
+
__memo(() => import('./chunks/18-s4VnOMua.js')),
|
|
34
34
|
__memo(() => import('./chunks/19-BAQHPrMB.js')),
|
|
35
|
-
__memo(() => import('./chunks/20-
|
|
35
|
+
__memo(() => import('./chunks/20-B1I-AIgl.js')),
|
|
36
36
|
__memo(() => import('./chunks/21-qhGjkW41.js')),
|
|
37
37
|
__memo(() => import('./chunks/22-Byy16hFA.js')),
|
|
38
|
-
__memo(() => import('./chunks/23-
|
|
39
|
-
__memo(() => import('./chunks/24-
|
|
40
|
-
__memo(() => import('./chunks/25-
|
|
41
|
-
__memo(() => import('./chunks/26-
|
|
38
|
+
__memo(() => import('./chunks/23-D194DGVi.js')),
|
|
39
|
+
__memo(() => import('./chunks/24-Cd9TIy6S.js')),
|
|
40
|
+
__memo(() => import('./chunks/25-CqxPBOK6.js')),
|
|
41
|
+
__memo(() => import('./chunks/26-CSVz9wrd.js')),
|
|
42
42
|
__memo(() => import('./chunks/27-Cqzlh9gZ.js')),
|
|
43
43
|
__memo(() => import('./chunks/28-DeYe2rpm.js')),
|
|
44
44
|
__memo(() => import('./chunks/29-d_lZvJg3.js')),
|
|
@@ -61,35 +61,35 @@ return {
|
|
|
61
61
|
pattern: /^\/api\/brain\/?$/,
|
|
62
62
|
params: [],
|
|
63
63
|
page: null,
|
|
64
|
-
endpoint: __memo(() => import('./chunks/_server.ts-
|
|
64
|
+
endpoint: __memo(() => import('./chunks/_server.ts-CFMss8Ec.js'))
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
67
|
id: "/api/brain/chunks",
|
|
68
68
|
pattern: /^\/api\/brain\/chunks\/?$/,
|
|
69
69
|
params: [],
|
|
70
70
|
page: null,
|
|
71
|
-
endpoint: __memo(() => import('./chunks/_server.ts-
|
|
71
|
+
endpoint: __memo(() => import('./chunks/_server.ts-DfzvMeMr.js'))
|
|
72
72
|
},
|
|
73
73
|
{
|
|
74
74
|
id: "/api/brain/node/[id]",
|
|
75
75
|
pattern: /^\/api\/brain\/node\/([^/]+?)\/?$/,
|
|
76
76
|
params: [{"name":"id","optional":false,"rest":false,"chained":false}],
|
|
77
77
|
page: null,
|
|
78
|
-
endpoint: __memo(() => import('./chunks/_server.ts-
|
|
78
|
+
endpoint: __memo(() => import('./chunks/_server.ts-CUDHRtqK.js'))
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
81
|
id: "/api/brain/stream",
|
|
82
82
|
pattern: /^\/api\/brain\/stream\/?$/,
|
|
83
83
|
params: [],
|
|
84
84
|
page: null,
|
|
85
|
-
endpoint: __memo(() => import('./chunks/_server.ts-
|
|
85
|
+
endpoint: __memo(() => import('./chunks/_server.ts-10Z9UtEP.js'))
|
|
86
86
|
},
|
|
87
87
|
{
|
|
88
88
|
id: "/api/brain/substrate/[name]",
|
|
89
89
|
pattern: /^\/api\/brain\/substrate\/([^/]+?)\/?$/,
|
|
90
90
|
params: [{"name":"name","optional":false,"rest":false,"chained":false}],
|
|
91
91
|
page: null,
|
|
92
|
-
endpoint: __memo(() => import('./chunks/_server.ts-
|
|
92
|
+
endpoint: __memo(() => import('./chunks/_server.ts-CmOf90SL.js'))
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
95
|
id: "/api/credentials",
|
|
@@ -110,7 +110,7 @@ return {
|
|
|
110
110
|
pattern: /^\/api\/health\/?$/,
|
|
111
111
|
params: [],
|
|
112
112
|
page: null,
|
|
113
|
-
endpoint: __memo(() => import('./chunks/_server.ts-
|
|
113
|
+
endpoint: __memo(() => import('./chunks/_server.ts-DvaFTJ0E.js'))
|
|
114
114
|
},
|
|
115
115
|
{
|
|
116
116
|
id: "/api/memory/decision-store",
|
|
@@ -292,7 +292,7 @@ return {
|
|
|
292
292
|
pattern: /^\/api\/project\/reindex-all\/?$/,
|
|
293
293
|
params: [],
|
|
294
294
|
page: null,
|
|
295
|
-
endpoint: __memo(() => import('./chunks/_server.ts-
|
|
295
|
+
endpoint: __memo(() => import('./chunks/_server.ts-DRFQht0c.js'))
|
|
296
296
|
},
|
|
297
297
|
{
|
|
298
298
|
id: "/api/project/scan",
|
|
@@ -306,7 +306,7 @@ return {
|
|
|
306
306
|
pattern: /^\/api\/project\/switch\/?$/,
|
|
307
307
|
params: [],
|
|
308
308
|
page: null,
|
|
309
|
-
endpoint: __memo(() => import('./chunks/_server.ts-
|
|
309
|
+
endpoint: __memo(() => import('./chunks/_server.ts-mGj6h26U.js'))
|
|
310
310
|
},
|
|
311
311
|
{
|
|
312
312
|
id: "/api/project/[id]",
|
|
@@ -320,21 +320,21 @@ return {
|
|
|
320
320
|
pattern: /^\/api\/project\/([^/]+?)\/index\/?$/,
|
|
321
321
|
params: [{"name":"id","optional":false,"rest":false,"chained":false}],
|
|
322
322
|
page: null,
|
|
323
|
-
endpoint: __memo(() => import('./chunks/_server.ts-
|
|
323
|
+
endpoint: __memo(() => import('./chunks/_server.ts-YrmdROs2.js'))
|
|
324
324
|
},
|
|
325
325
|
{
|
|
326
326
|
id: "/api/project/[id]/reindex",
|
|
327
327
|
pattern: /^\/api\/project\/([^/]+?)\/reindex\/?$/,
|
|
328
328
|
params: [{"name":"id","optional":false,"rest":false,"chained":false}],
|
|
329
329
|
page: null,
|
|
330
|
-
endpoint: __memo(() => import('./chunks/_server.ts-
|
|
330
|
+
endpoint: __memo(() => import('./chunks/_server.ts-ZCA_Uz1x.js'))
|
|
331
331
|
},
|
|
332
332
|
{
|
|
333
333
|
id: "/api/search",
|
|
334
334
|
pattern: /^\/api\/search\/?$/,
|
|
335
335
|
params: [],
|
|
336
336
|
page: null,
|
|
337
|
-
endpoint: __memo(() => import('./chunks/_server.ts-
|
|
337
|
+
endpoint: __memo(() => import('./chunks/_server.ts-CVQlKiss.js'))
|
|
338
338
|
},
|
|
339
339
|
{
|
|
340
340
|
id: "/api/setup/section/[name]",
|
|
@@ -355,7 +355,7 @@ return {
|
|
|
355
355
|
pattern: /^\/api\/tasks\/events\/?$/,
|
|
356
356
|
params: [],
|
|
357
357
|
page: null,
|
|
358
|
-
endpoint: __memo(() => import('./chunks/_server.ts-
|
|
358
|
+
endpoint: __memo(() => import('./chunks/_server.ts-BNaQ_u-J.js'))
|
|
359
359
|
},
|
|
360
360
|
{
|
|
361
361
|
id: "/api/tasks/graph",
|
|
@@ -390,7 +390,7 @@ return {
|
|
|
390
390
|
pattern: /^\/api\/tasks\/subscribe\/?$/,
|
|
391
391
|
params: [],
|
|
392
392
|
page: null,
|
|
393
|
-
endpoint: __memo(() => import('./chunks/_server.ts-
|
|
393
|
+
endpoint: __memo(() => import('./chunks/_server.ts-BF8dYynr.js'))
|
|
394
394
|
},
|
|
395
395
|
{
|
|
396
396
|
id: "/api/tasks/tree/[epicId]",
|
|
@@ -425,7 +425,7 @@ return {
|
|
|
425
425
|
pattern: /^\/api\/tasks\/([^/]+?)\/stream\/?$/,
|
|
426
426
|
params: [{"name":"id","optional":false,"rest":false,"chained":false}],
|
|
427
427
|
page: null,
|
|
428
|
-
endpoint: __memo(() => import('./chunks/_server.ts-
|
|
428
|
+
endpoint: __memo(() => import('./chunks/_server.ts-DrRXPeYo.js'))
|
|
429
429
|
},
|
|
430
430
|
{
|
|
431
431
|
id: "/api/tasks/[id]/transition",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./DJ4ceMnt.js";
|