trellis 3.1.12 → 3.1.15
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 +8 -0
- package/LICENSE +2 -0
- package/README.md +12 -9
- package/bin/trellis.mjs +10 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +245 -241
- package/dist/cli/repo-path.d.ts +12 -0
- package/dist/cli/repo-path.d.ts.map +1 -0
- package/dist/cms/client.d.ts +1 -0
- package/dist/cms/client.d.ts.map +1 -1
- package/dist/cms/index.js +29 -9
- package/dist/cms/types.d.ts +5 -0
- package/dist/cms/types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Published package version (from package.json at repo root). */
|
|
2
|
+
export declare function cliVersion(): string;
|
|
3
|
+
/** Walk up from path (or cwd) and return the nearest Trellis repo root, if any. */
|
|
4
|
+
export declare function findRepoRoot(pathOpt?: string): string | undefined;
|
|
5
|
+
/**
|
|
6
|
+
* Resolve a Trellis repo root from an explicit path or cwd.
|
|
7
|
+
* Walks up parent directories when the starting path is inside a repo
|
|
8
|
+
* (e.g. packages/opencode under a monorepo root with .trellis).
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveRepoRoot(pathOpt?: string): string;
|
|
11
|
+
export declare function failNotRepo(start: string, pathOpt?: string): never;
|
|
12
|
+
//# sourceMappingURL=repo-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-path.d.ts","sourceRoot":"","sources":["../../src/cli/repo-path.ts"],"names":[],"mappings":"AAQA,kEAAkE;AAClE,wBAAgB,UAAU,IAAI,MAAM,CASnC;AAED,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CASjE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAalE"}
|
package/dist/cms/client.d.ts
CHANGED
|
@@ -54,6 +54,7 @@ export declare class CmsClient {
|
|
|
54
54
|
_get<T>(path: string): Promise<T | undefined>;
|
|
55
55
|
/** @internal */
|
|
56
56
|
_entities(): Promise<RawEntity[]>;
|
|
57
|
+
_facts(): Promise<RawFact[]>;
|
|
57
58
|
/** @internal */
|
|
58
59
|
_entryById(id: string, schemaFacts?: RawFact[]): Promise<Entry | null>;
|
|
59
60
|
}
|
package/dist/cms/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/cms/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,KAAK,EACL,qBAAqB,EACrB,eAAe,EACf,UAAU,EACV,WAAW,EACX,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,eAAe,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAQL,KAAK,SAAS,EACd,KAAK,OAAO,EAEb,MAAM,eAAe,CAAC;AA4BvB,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG1B;gBAEQ,IAAI,EAAE,gBAAgB;IAYlC,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,GAAG,EAAE,MAAM,GACV,aAAa,CAAC,CAAC,CAAC;IAInB,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,EAAE,EAAE,MAAM,GACT,QAAQ,CAAC,CAAC,CAAC;IAId,sDAAsD;IAChD,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAiD1C,KAAK,IAAI,IAAI;IAQb;;;;;;OAMG;IACH,MAAM,CAAC,CAAC,EACN,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAC5B,MAAM,GAAE;QACN,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;QACnD,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;KAC7B,GACL,WAAW;IAmDd,gBAAgB;IACV,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/cms/client.ts"],"names":[],"mappings":"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"}
|
package/dist/cms/index.js
CHANGED
|
@@ -288,7 +288,7 @@ class CmsClient {
|
|
|
288
288
|
async collections() {
|
|
289
289
|
const [entities, facts] = await Promise.all([
|
|
290
290
|
this._entities(),
|
|
291
|
-
this.
|
|
291
|
+
this._facts()
|
|
292
292
|
]);
|
|
293
293
|
const factsByEntity = groupFactsByEntity(facts ?? []);
|
|
294
294
|
const counts = new Map;
|
|
@@ -400,7 +400,16 @@ class CmsClient {
|
|
|
400
400
|
return;
|
|
401
401
|
if (!res.ok)
|
|
402
402
|
throw new Error(`Trellis CMS request failed (${res.status}) ${u.pathname}`);
|
|
403
|
-
|
|
403
|
+
const kind = res.headers.get("content-type") ?? "";
|
|
404
|
+
const text = await res.text();
|
|
405
|
+
if (!kind.toLowerCase().includes("application/json")) {
|
|
406
|
+
throw new Error(`Trellis CMS expected JSON (${res.status}) ${u.pathname}: ${text.slice(0, 120)}`);
|
|
407
|
+
}
|
|
408
|
+
try {
|
|
409
|
+
return JSON.parse(text);
|
|
410
|
+
} catch (err) {
|
|
411
|
+
throw new Error(`Trellis CMS invalid JSON (${res.status}) ${u.pathname}: ${text.slice(0, 120)}`, { cause: err });
|
|
412
|
+
}
|
|
404
413
|
}
|
|
405
414
|
async _entities() {
|
|
406
415
|
const out = [];
|
|
@@ -413,13 +422,24 @@ class CmsClient {
|
|
|
413
422
|
offset += MAX_ENTITIES_PER_FETCH;
|
|
414
423
|
}
|
|
415
424
|
}
|
|
425
|
+
async _facts() {
|
|
426
|
+
const out = [];
|
|
427
|
+
let offset = 0;
|
|
428
|
+
while (true) {
|
|
429
|
+
const page = await this._get(`/facts?limit=${MAX_FACTS_PER_FETCH}&offset=${offset}`) ?? [];
|
|
430
|
+
out.push(...page);
|
|
431
|
+
if (page.length < MAX_FACTS_PER_FETCH)
|
|
432
|
+
return out;
|
|
433
|
+
offset += MAX_FACTS_PER_FETCH;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
416
436
|
async _entryById(id, schemaFacts) {
|
|
417
437
|
const detail = await this._get(`/entity/${encodeURIComponent(id)}`);
|
|
418
438
|
if (!detail)
|
|
419
439
|
return null;
|
|
420
440
|
const typeFact = detail.facts.find((f) => f.a === "type");
|
|
421
441
|
const type = typeof typeFact?.v === "string" ? typeFact.v : "unknown";
|
|
422
|
-
const facts = schemaFacts ?? await this.
|
|
442
|
+
const facts = schemaFacts ?? await this._facts() ?? [];
|
|
423
443
|
return applyFormulas(entryFromFacts({ id: detail.id, type }, detail.facts, detail.links), schemaFields(facts, [type]));
|
|
424
444
|
}
|
|
425
445
|
}
|
|
@@ -437,7 +457,7 @@ class CollectionRef {
|
|
|
437
457
|
const wantsExpand = opts.expand && opts.expand.length > 0;
|
|
438
458
|
const [allEntities, facts, links] = await Promise.all([
|
|
439
459
|
this.client._entities(),
|
|
440
|
-
this.client.
|
|
460
|
+
this.client._facts(),
|
|
441
461
|
this.client._get(`/links`)
|
|
442
462
|
]);
|
|
443
463
|
if (!allEntities)
|
|
@@ -478,7 +498,7 @@ class CollectionRef {
|
|
|
478
498
|
return this.client._share(key, () => this.list(listOpts), callback, { onError, equals });
|
|
479
499
|
}
|
|
480
500
|
async schema() {
|
|
481
|
-
const facts = await this.client.
|
|
501
|
+
const facts = await this.client._facts();
|
|
482
502
|
return schemaFields(facts ?? [], [this.key]);
|
|
483
503
|
}
|
|
484
504
|
}
|
|
@@ -539,7 +559,7 @@ const off = collection.subscribe(
|
|
|
539
559
|
(entries) => {
|
|
540
560
|
console.log("Updated:", entries);
|
|
541
561
|
},
|
|
542
|
-
{${exp}},
|
|
562
|
+
{${exp} onError: (err) => console.error("CMS subscription failed", err), },
|
|
543
563
|
);
|
|
544
564
|
// off(); // call to stop receiving updates
|
|
545
565
|
`;
|
|
@@ -555,7 +575,7 @@ const cms = ${clientLiteral(url, opts.directory)};
|
|
|
555
575
|
export function use${pascal(opts.collection)}() {
|
|
556
576
|
const [entries, setEntries] = useState<Entry[]>([]);
|
|
557
577
|
useEffect(() => {
|
|
558
|
-
const off = cms.collection("${opts.collection}").subscribe(setEntries, {${exp}});
|
|
578
|
+
const off = cms.collection("${opts.collection}").subscribe(setEntries, {${exp} onError: (err) => console.error("CMS subscription failed", err), });
|
|
559
579
|
return off;
|
|
560
580
|
}, []);
|
|
561
581
|
return entries;
|
|
@@ -576,7 +596,7 @@ const cms = ${clientLiteral(url, opts.directory)};
|
|
|
576
596
|
|
|
577
597
|
export function create${pascal(opts.collection)}() {
|
|
578
598
|
const [entries, setEntries] = createSignal<Entry[]>([]);
|
|
579
|
-
const off = cms.collection("${opts.collection}").subscribe(setEntries, {${exp}});
|
|
599
|
+
const off = cms.collection("${opts.collection}").subscribe(setEntries, {${exp} onError: (err) => console.error("CMS subscription failed", err), });
|
|
580
600
|
onCleanup(off);
|
|
581
601
|
return entries;
|
|
582
602
|
}
|
|
@@ -598,7 +618,7 @@ export function use${pascal(opts.collection)}() {
|
|
|
598
618
|
const entries = ref<Entry[]>([]);
|
|
599
619
|
const off = cms.collection("${opts.collection}").subscribe((next) => {
|
|
600
620
|
entries.value = next;
|
|
601
|
-
}, {${exp}});
|
|
621
|
+
}, {${exp} onError: (err) => console.error("CMS subscription failed", err), });
|
|
602
622
|
onUnmounted(off);
|
|
603
623
|
return entries;
|
|
604
624
|
}
|
package/dist/cms/types.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export type EntryStatus = 'draft' | 'published';
|
|
7
7
|
export type FieldKind = 'text' | 'rich_text' | 'number' | 'boolean' | 'date' | 'email' | 'url' | 'color' | 'select' | 'multiselect' | 'file' | 'formula' | 'reference' | 'image' | 'video' | 'audio';
|
|
8
|
+
export type DateRepeat = 'none' | 'daily' | 'weekly' | 'monthly' | 'yearly';
|
|
8
9
|
export type FieldDefinition = {
|
|
9
10
|
key: string;
|
|
10
11
|
label?: string;
|
|
@@ -14,6 +15,10 @@ export type FieldDefinition = {
|
|
|
14
15
|
options?: string[];
|
|
15
16
|
formula?: string;
|
|
16
17
|
target?: string;
|
|
18
|
+
min?: number;
|
|
19
|
+
max?: number;
|
|
20
|
+
step?: number;
|
|
21
|
+
repeat?: DateRepeat;
|
|
17
22
|
};
|
|
18
23
|
export type Entry<T extends Record<string, unknown> = Record<string, unknown>> = {
|
|
19
24
|
/** Stable entity id (e.g. "blog_post:abc123" or "BlogPost:abc"). */
|
package/dist/cms/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cms/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAEhD,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,WAAW,GACX,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,GACP,KAAK,GACL,OAAO,GACP,QAAQ,GACR,aAAa,GACb,MAAM,GACN,SAAS,GACT,WAAW,GACX,OAAO,GACP,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cms/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;AAEhD,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,WAAW,GACX,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,GACP,KAAK,GACL,OAAO,GACP,QAAQ,GACR,aAAa,GACb,MAAM,GACN,SAAS,GACT,WAAW,GACX,OAAO,GACP,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE5E,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC3E;IACE,oEAAoE;IACpE,EAAE,EAAE,MAAM,CAAC;IACX,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,MAAM,EAAE,WAAW,CAAC;IACpB,4FAA4F;IAC5F,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AAEJ,MAAM,MAAM,WAAW,GAAG;IACxB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC;IAC7B,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,eAAe,CAAC;AACjE,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,eAAe,CAAC;AAEjE,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AACrC,MAAM,MAAM,cAAc,CACxB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACzD,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;AAClC,MAAM,MAAM,eAAe,CACzB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACzD,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;AAErC,MAAM,MAAM,UAAU,GAAG;IACvB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,wFAAwF;IACxF,QAAQ,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iGAAiG;IACjG,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sFAAsF;IACtF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "trellis",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.15",
|
|
4
4
|
"description": "Agentic State Engine — event-sourced causal graph with branching, decision traces, and realtime sync for AI-native applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
"mcp:docs": "bun run src/mcp/docs.ts",
|
|
118
118
|
"build": "bun build src/index.ts src/core/index.ts src/vcs/index.ts src/embeddings/index.ts src/links/index.ts src/decisions/index.ts src/server/index.ts src/client/index.ts src/react/index.ts src/db/index.ts src/cli/index.ts src/cms/index.ts src/core/persist/sqljs-backend.ts src/core/persist/factory.ts src/server/node-adapter.ts --outdir dist --target bun --splitting --format esm --root src --external @xenova/transformers --external @huggingface/transformers --external react --external sql.js --external ws && mkdir -p dist/ui && cp src/ui/client.html dist/ui/client.html && tsc -p tsconfig.build.json --emitDeclarationOnly --noEmit false --noEmitOnError false && bun run build:inspector",
|
|
119
119
|
"build:inspector": "vite build --config vite.inspector.config.ts",
|
|
120
|
-
"test": "bun test test/core test/cms test/vcs test/git test/p2 test/p3 test/p4 test/p5 test/p6 test/p7 test/engine.test.ts",
|
|
120
|
+
"test": "bun test test/core test/cms test/vcs test/git test/p2 test/p3 test/p4 test/p5 test/p6 test/p7 test/engine.test.ts test/cli",
|
|
121
121
|
"test:all": "bun test",
|
|
122
122
|
"prepublishOnly": "npm run test && npm run build"
|
|
123
123
|
},
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
"chalk": "^5.4.1",
|
|
128
128
|
"commander": "^13.1.0",
|
|
129
129
|
"opencode-ai": "^1.3.5",
|
|
130
|
-
"turtlecode": "^0.3.
|
|
130
|
+
"turtlecode": "^0.3.23",
|
|
131
131
|
"zod": "3"
|
|
132
132
|
},
|
|
133
133
|
"optionalDependencies": {
|