@ai-dossier/cli 0.81.0 → 0.83.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -6
- package/dist/batch-compose.d.ts +35 -7
- package/dist/batch-compose.d.ts.map +1 -1
- package/dist/batch-compose.js +82 -12
- package/dist/batch-compose.js.map +1 -1
- package/dist/batch-readiness.d.ts +51 -0
- package/dist/batch-readiness.d.ts.map +1 -0
- package/dist/batch-readiness.js +187 -0
- package/dist/batch-readiness.js.map +1 -0
- package/dist/commands/batch.d.ts +11 -0
- package/dist/commands/batch.d.ts.map +1 -1
- package/dist/commands/batch.js +110 -9
- package/dist/commands/batch.js.map +1 -1
- package/dist/commands/install-skill.d.ts.map +1 -1
- package/dist/commands/install-skill.js +287 -77
- package/dist/commands/install-skill.js.map +1 -1
- package/dist/opencode-sync.d.ts +2 -2
- package/dist/opencode-sync.d.ts.map +1 -1
- package/dist/opencode-sync.js +9 -3
- package/dist/opencode-sync.js.map +1 -1
- package/dist/prescreen.d.ts +12 -2
- package/dist/prescreen.d.ts.map +1 -1
- package/dist/prescreen.js +186 -34
- package/dist/prescreen.js.map +1 -1
- package/dist/skill-sync.d.ts +67 -0
- package/dist/skill-sync.d.ts.map +1 -0
- package/dist/skill-sync.js +162 -0
- package/dist/skill-sync.js.map +1 -0
- package/dist/workspace-layout.d.ts +57 -0
- package/dist/workspace-layout.d.ts.map +1 -0
- package/dist/workspace-layout.js +192 -0
- package/dist/workspace-layout.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Workspace layout of a target repo, read from its own workspace config (#801) instead of guessed
|
|
4
|
+
* from path shapes. `batch compose` ranks backfill by "shares a workspace package"; the old path
|
|
5
|
+
* heuristic (`…/packages/<x>/…` → `packages/<x>`, else the first path segment) collapsed every path
|
|
6
|
+
* outside `packages/` on imboard's nested layout (`main/packages/…`, `main/scripts/…`) into a
|
|
7
|
+
* pseudo-package `main` that nearly every issue "shared".
|
|
8
|
+
*
|
|
9
|
+
* Pure and dependency-light (only `yaml`): no `gh`, network or fs. The command layer supplies a
|
|
10
|
+
* {@link WorkspaceFileReader} over `gh api repos/<r>/contents/…` (target repo not local) or the
|
|
11
|
+
* local checkout, so discovery is unit-testable with an in-memory reader.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.parseWorkspaceConfig = parseWorkspaceConfig;
|
|
15
|
+
exports.discoverWorkspaceLayout = discoverWorkspaceLayout;
|
|
16
|
+
exports.packageOfPath = packageOfPath;
|
|
17
|
+
const yaml_1 = require("yaml");
|
|
18
|
+
/** Config files probed in each candidate directory, in precedence order. */
|
|
19
|
+
const CONFIG_FILES = ['pnpm-workspace.yaml', 'package.json', 'lerna.json'];
|
|
20
|
+
/** Top-level directories never probed for a nested workspace root — docs/tooling, not code roots. */
|
|
21
|
+
const SKIP_DIRS = new Set([
|
|
22
|
+
'node_modules',
|
|
23
|
+
'docs',
|
|
24
|
+
'doc',
|
|
25
|
+
'scripts',
|
|
26
|
+
'test',
|
|
27
|
+
'tests',
|
|
28
|
+
'examples',
|
|
29
|
+
'vendor',
|
|
30
|
+
'dist',
|
|
31
|
+
'build',
|
|
32
|
+
'terraform',
|
|
33
|
+
'infra',
|
|
34
|
+
]);
|
|
35
|
+
/** Nested roots probed at most (each costs up to three `gh api` reads: pnpm, package.json, lerna). */
|
|
36
|
+
const MAX_PROBED_DIRS = 8;
|
|
37
|
+
/** Globs kept per root — the config is untrusted-ish network text, keep the output bounded. */
|
|
38
|
+
const MAX_GLOBS = 64;
|
|
39
|
+
/** Split declared patterns into includes and `!` excludes; drops non-strings, blanks, and `./` prefixes. */
|
|
40
|
+
function toPatterns(value) {
|
|
41
|
+
if (!Array.isArray(value))
|
|
42
|
+
return null;
|
|
43
|
+
const globs = [];
|
|
44
|
+
const excludes = [];
|
|
45
|
+
for (const raw of value) {
|
|
46
|
+
if (typeof raw !== 'string')
|
|
47
|
+
continue;
|
|
48
|
+
const trimmed = raw.trim().replace(/^\.\//, '').replace(/\/+$/, '');
|
|
49
|
+
if (trimmed === '' || trimmed === '!')
|
|
50
|
+
continue;
|
|
51
|
+
if (trimmed.startsWith('!'))
|
|
52
|
+
excludes.push(trimmed.slice(1).replace(/^\.\//, ''));
|
|
53
|
+
else
|
|
54
|
+
globs.push(trimmed);
|
|
55
|
+
}
|
|
56
|
+
return globs.length > 0
|
|
57
|
+
? { globs: globs.slice(0, MAX_GLOBS), excludes: excludes.slice(0, MAX_GLOBS) }
|
|
58
|
+
: null;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Workspace patterns declared by one config file's text, or null when it declares none.
|
|
62
|
+
* `package.json` accepts both `workspaces: [...]` and the Yarn `workspaces: { packages: [...] }` shape.
|
|
63
|
+
*/
|
|
64
|
+
function parseWorkspaceConfig(file, text) {
|
|
65
|
+
try {
|
|
66
|
+
if (file === 'pnpm-workspace.yaml') {
|
|
67
|
+
const doc = (0, yaml_1.parse)(text);
|
|
68
|
+
return toPatterns(doc?.packages);
|
|
69
|
+
}
|
|
70
|
+
const doc = JSON.parse(text);
|
|
71
|
+
if (file === 'lerna.json')
|
|
72
|
+
return toPatterns(doc?.packages);
|
|
73
|
+
const ws = doc?.workspaces;
|
|
74
|
+
return toPatterns(Array.isArray(ws) ? ws : ws?.packages);
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function probeRoot(prefix, reader) {
|
|
81
|
+
for (const file of CONFIG_FILES) {
|
|
82
|
+
const text = reader.readFile(prefix === '' ? file : `${prefix}/${file}`);
|
|
83
|
+
if (text === null)
|
|
84
|
+
continue;
|
|
85
|
+
const patterns = parseWorkspaceConfig(file, text);
|
|
86
|
+
if (patterns !== null)
|
|
87
|
+
return { prefix, file, ...patterns };
|
|
88
|
+
}
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Find the workspace root(s) of a repo: the repo root when it declares workspaces, otherwise each
|
|
93
|
+
* top-level directory that does (imboard's `main/`). Null when no config is found anywhere — the
|
|
94
|
+
* caller then falls back to path heuristics and says so.
|
|
95
|
+
*/
|
|
96
|
+
function discoverWorkspaceLayout(reader) {
|
|
97
|
+
const root = probeRoot('', reader);
|
|
98
|
+
if (root !== null)
|
|
99
|
+
return { roots: [root] };
|
|
100
|
+
const dirs = (reader.topLevelDirs() ?? [])
|
|
101
|
+
.filter((d) => !d.startsWith('.') && !SKIP_DIRS.has(d))
|
|
102
|
+
.sort()
|
|
103
|
+
.slice(0, MAX_PROBED_DIRS);
|
|
104
|
+
const roots = dirs.map((d) => probeRoot(d, reader)).filter((r) => r !== null);
|
|
105
|
+
return roots.length > 0 ? { roots } : null;
|
|
106
|
+
}
|
|
107
|
+
// --- path → package ----------------------------------------------------------------------------
|
|
108
|
+
/** One glob segment as a regex: `*` matches within the segment, everything else literally. */
|
|
109
|
+
function segmentMatches(pattern, segment) {
|
|
110
|
+
if (pattern === segment)
|
|
111
|
+
return true;
|
|
112
|
+
if (!pattern.includes('*'))
|
|
113
|
+
return false;
|
|
114
|
+
const re = pattern
|
|
115
|
+
.split('*')
|
|
116
|
+
.map((part) => part.replace(/[.+?^${}()|[\]\\]/g, '\\$&'))
|
|
117
|
+
.join('[^/]*');
|
|
118
|
+
return new RegExp(`^${re}$`).test(segment);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Number of leading path segments a glob claims as the package directory, or null when the path
|
|
122
|
+
* is not under it. A trailing `**` claims the first segment beneath its literal prefix; a `**`
|
|
123
|
+
* elsewhere is treated as `*` (package dirs are one level per pattern segment).
|
|
124
|
+
*/
|
|
125
|
+
function globMatch(glob, segments) {
|
|
126
|
+
const parts = glob.split('/').filter((p) => p !== '');
|
|
127
|
+
let claimed = 0;
|
|
128
|
+
for (let i = 0; i < parts.length; i++) {
|
|
129
|
+
if (i >= segments.length)
|
|
130
|
+
return null;
|
|
131
|
+
if (parts[i] === '**') {
|
|
132
|
+
if (i === parts.length - 1)
|
|
133
|
+
return segments.length > i ? i + 1 : null;
|
|
134
|
+
claimed = i + 1;
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
if (!segmentMatches(parts[i], segments[i]))
|
|
138
|
+
return null;
|
|
139
|
+
claimed = i + 1;
|
|
140
|
+
}
|
|
141
|
+
return claimed;
|
|
142
|
+
}
|
|
143
|
+
/** A trailing segment that looks like a file, so `packages/README.md` is not read as package `README.md`. */
|
|
144
|
+
const FILE_LIKE_RE = /\.[A-Za-z0-9]{1,6}$/;
|
|
145
|
+
function packageDirIn(root, relative) {
|
|
146
|
+
let best = null;
|
|
147
|
+
for (const glob of root.globs) {
|
|
148
|
+
const n = globMatch(glob, relative);
|
|
149
|
+
if (n === null || (n === relative.length && FILE_LIKE_RE.test(relative[n - 1])))
|
|
150
|
+
continue;
|
|
151
|
+
if (best === null || n > best)
|
|
152
|
+
best = n;
|
|
153
|
+
}
|
|
154
|
+
if (best === null)
|
|
155
|
+
return null;
|
|
156
|
+
const dir = relative.slice(0, best);
|
|
157
|
+
for (const glob of root.excludes) {
|
|
158
|
+
if (globMatch(glob, dir) === dir.length)
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
return dir.join('/');
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* The declared workspace package a repo-relative path belongs to, or null when it is outside every
|
|
165
|
+
* declared workspace (root scripts, docs, CI — deliberately NOT a pseudo-package). A path may name
|
|
166
|
+
* the workspace root's directory (`main/packages/x/…`) or omit it (`packages/x/…`, how issue text
|
|
167
|
+
* usually spells it). With more than one root the package is prefixed with its root's directory.
|
|
168
|
+
*/
|
|
169
|
+
function packageOfPath(path, layout) {
|
|
170
|
+
const segments = path
|
|
171
|
+
.replace(/^\.\//, '')
|
|
172
|
+
.split('/')
|
|
173
|
+
.filter((s) => s !== '');
|
|
174
|
+
const qualify = (root, dir) => layout.roots.length > 1 && root.prefix !== '' ? `${root.prefix}/${dir}` : dir;
|
|
175
|
+
// Pass 1: a root whose directory the path names. This wins outright, so root ORDER never
|
|
176
|
+
// matters (`main/packages/x` is `main`'s, even when another root's glob would also match it).
|
|
177
|
+
for (const root of layout.roots) {
|
|
178
|
+
const prefixSegments = root.prefix === '' ? [] : root.prefix.split('/');
|
|
179
|
+
if (prefixSegments.length === 0 || !prefixSegments.every((p, i) => segments[i] === p))
|
|
180
|
+
continue;
|
|
181
|
+
const dir = packageDirIn(root, segments.slice(prefixSegments.length));
|
|
182
|
+
if (dir !== null)
|
|
183
|
+
return qualify(root, dir);
|
|
184
|
+
}
|
|
185
|
+
// Pass 2: a root-relative spelling (`packages/x/…`, how issue text usually writes it). Ambiguous
|
|
186
|
+
// across roots (`a` and `b` both declare `packages/*`) means unknown, not "the first root".
|
|
187
|
+
const hits = layout.roots
|
|
188
|
+
.map((root) => [root, packageDirIn(root, segments)])
|
|
189
|
+
.filter((h) => h[1] !== null);
|
|
190
|
+
return hits.length === 1 ? qualify(hits[0][0], hits[0][1]) : null;
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=workspace-layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-layout.js","sourceRoot":"","sources":["../src/workspace-layout.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-dossier/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.83.0",
|
|
4
4
|
"description": "Create, verify, sign, publish, and run dossiers — portable, signed, versioned skills for any LLM tool. The dossier ⇄ Claude Code skill bridge (install-skill / skill-export).",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"bin": {
|