persona-harness 0.8.42 → 0.9.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.
- package/CHANGELOG.md +14 -0
- package/README.md +56 -20
- package/dist/cli/attach-staging.d.ts +1 -1
- package/dist/cli/attach-staging.js +2 -2
- package/dist/cli/attach-staging.js.map +1 -1
- package/dist/cli/attach.js +72 -4
- package/dist/cli/attach.js.map +1 -1
- package/dist/cli/bootstrap-contract.d.ts +1 -1
- package/dist/cli/bootstrap-contract.js +6 -0
- package/dist/cli/bootstrap-contract.js.map +1 -1
- package/dist/cli/bootstrap-runner.js +1 -1
- package/dist/cli/bootstrap-runner.js.map +1 -1
- package/dist/cli/host-skill-materializer.d.ts +25 -0
- package/dist/cli/host-skill-materializer.js +147 -0
- package/dist/cli/host-skill-materializer.js.map +1 -0
- package/dist/cli/init-output.js +1 -1
- package/dist/cli/init-output.js.map +1 -1
- package/dist/cli/init-ownership.js +9 -1
- package/dist/cli/init-ownership.js.map +1 -1
- package/dist/cli/init-plan.js +8 -6
- package/dist/cli/init-plan.js.map +1 -1
- package/dist/cli/init-source.js +2 -0
- package/dist/cli/init-source.js.map +1 -1
- package/dist/cli/init.js +10 -1
- package/dist/cli/init.js.map +1 -1
- package/dist/index.js +0 -34
- package/dist/index.js.map +1 -1
- package/dist/portable-skill.d.ts +3 -1
- package/dist/portable-skill.js +2 -1
- package/dist/portable-skill.js.map +1 -1
- package/dist/runtime/host-capability-manifest.d.ts +48 -0
- package/dist/runtime/host-capability-manifest.js +172 -0
- package/dist/runtime/host-capability-manifest.js.map +1 -0
- package/dist/runtime/opencode-skill-adapter.js +25 -2
- package/dist/runtime/opencode-skill-adapter.js.map +1 -1
- package/dist/runtime/persona-shared-skill-catalog.d.ts +1 -0
- package/dist/runtime/persona-shared-skill-catalog.js +13 -6
- package/dist/runtime/persona-shared-skill-catalog.js.map +1 -1
- package/dist/runtime/portable-skill-adapters.d.ts +4 -1
- package/dist/runtime/portable-skill-adapters.js +3 -1
- package/dist/runtime/portable-skill-adapters.js.map +1 -1
- package/dist/runtime/portable-skill-contract.d.ts +8 -5
- package/dist/runtime/portable-skill-contract.js +15 -17
- package/dist/runtime/portable-skill-contract.js.map +1 -1
- package/docs/START-HERE.md +26 -8
- package/docs/current/README.md +2 -2
- package/docs/current/canonical-docs-index.md +3 -2
- package/docs/current/docs-inventory.md +1 -0
- package/docs/current/java-backend-mvp-install-guide.md +5 -0
- package/docs/current/persona-harness-detailed-usage.md +9 -3
- package/docs/current/persona-shared-skills-core.md +48 -14
- package/docs/current/portable-host-adapters.md +135 -0
- package/docs/current/release/consumer-authority-current-acceptance.json +1 -1
- package/docs/current/release/v0.9.0-release-notes.md +56 -0
- package/docs/current/release/v0.9.1-release-notes.md +32 -0
- package/package.json +3 -2
- package/packages/shared-skills/README.md +20 -0
- package/packages/shared-skills/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,20 @@ preparation alone does not establish stable support or channel state.
|
|
|
14
14
|
explicit subsequent `ph update enable --yes` can opt in; malformed, foreign,
|
|
15
15
|
symlinked, or user-diverged state remains fail-closed and unchanged.
|
|
16
16
|
|
|
17
|
+
## [0.9.1] - 2026-08-31
|
|
18
|
+
|
|
19
|
+
- Publish the canonical portable-host guide for the static adapters generated
|
|
20
|
+
by `ph init` in Codex, Claude Code, OpenCode, and Antigravity projects.
|
|
21
|
+
It distinguishes package-created discovery files from a live host session's
|
|
22
|
+
selection or delivery of a skill.
|
|
23
|
+
- Document safe adapter ownership and update behavior: a later `ph init` may
|
|
24
|
+
refresh only unchanged Persona-owned files, while modified, user-owned, or
|
|
25
|
+
symlinked targets remain fail-closed. `ph update enable` remains the separate
|
|
26
|
+
optional OpenCode plugin-pin path.
|
|
27
|
+
- Keep Context and legacy runtime injection default-off, and state that current
|
|
28
|
+
Context delivery is an optional OpenCode-specific runtime boundary rather
|
|
29
|
+
than a portable-host claim.
|
|
30
|
+
|
|
17
31
|
## [0.8.31] - 2026-08-25
|
|
18
32
|
|
|
19
33
|
- Clarify `ph workflow finish implement` source-read runtime failures with a
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
# Persona Harness
|
|
8
8
|
|
|
9
|
-
**Evidence-first
|
|
9
|
+
**Evidence-first workflow gates and portable skill adapters for AI coding agents building Java/Spring backends.**
|
|
10
10
|
|
|
11
11
|
[](https://www.npmjs.com/package/persona-harness)
|
|
12
12
|
[](https://www.npmjs.com/package/persona-harness)
|
|
@@ -44,8 +44,11 @@ ignored and `finish` exits `1`; the opt-in TDD rail blocked green-only
|
|
|
44
44
|
completion in 5/5 measured runs. Runtime injection did not improve the paired
|
|
45
45
|
OpenCode measurements and added cost, so it remains default-off.
|
|
46
46
|
|
|
47
|
-
**Built for:** Java/Spring/Gradle projects
|
|
48
|
-
|
|
47
|
+
**Built for:** Java/Spring/Gradle projects with explicit workflow gates and
|
|
48
|
+
evidence checks. `ph init` materializes portable, project-local skill adapters
|
|
49
|
+
for Codex, Claude Code, OpenCode, and Antigravity. Static adapter installation
|
|
50
|
+
is package behavior; a host's live skill selection and delivery are separate
|
|
51
|
+
observation boundaries.
|
|
49
52
|
|
|
50
53
|
**Not a promise of:** automatic implementation, generated-app quality,
|
|
51
54
|
production readiness, token savings, or broad security guarantees.
|
|
@@ -103,8 +106,9 @@ Persona Harness exposes two deliberately separate tracks:
|
|
|
103
106
|
verification authority.
|
|
104
107
|
- **Isolation:** Context-only paths do not execute project commands or contact
|
|
105
108
|
GitHub/network.
|
|
106
|
-
- **Host:**
|
|
107
|
-
delivery
|
|
109
|
+
- **Host:** `ph init` installs static skill adapters for Codex, Claude Code,
|
|
110
|
+
OpenCode, and Antigravity. Context delivery is currently implemented only by
|
|
111
|
+
the optional OpenCode adapter and remains a separate, unobserved boundary.
|
|
108
112
|
- **Evidence:** Context usefulness remains `INCONCLUSIVE` until independent
|
|
109
113
|
external evidence exists.
|
|
110
114
|
- **Product focus:** the productized workflow focus is Java/Spring. The
|
|
@@ -199,8 +203,8 @@ catalog, access the network, execute shell commands, or write workflow,
|
|
|
199
203
|
evidence, or authority records. The adapter's actual behavior in a live
|
|
200
204
|
OpenCode release remains a separate host-observation boundary.
|
|
201
205
|
|
|
202
|
-
|
|
203
|
-
|
|
206
|
+
`ph init` materializes the bundled Persona-owned shared-skill catalog at each
|
|
207
|
+
host's project-local discovery path. Product ideas start with a one-question
|
|
204
208
|
interview and explicit brief approval; adapters advise only and never create
|
|
205
209
|
workflow state or invoke host agents automatically. See [Persona Shared Skills
|
|
206
210
|
Core](docs/current/persona-shared-skills-core.md).
|
|
@@ -212,18 +216,22 @@ earned by measurement first — see [MEASURED-CLAIMS](docs/MEASURED-CLAIMS.md).
|
|
|
212
216
|
|
|
213
217
|
## Install
|
|
214
218
|
|
|
215
|
-
Requires Node.js ^20.17.0 || >=22.9.0 (Node 21 is unsupported)
|
|
219
|
+
Requires Node.js ^20.17.0 || >=22.9.0 (Node 21 is unsupported). Java 21+ /
|
|
220
|
+
Gradle are required for the Java/Spring workflow rail. Install the coding-agent
|
|
221
|
+
host you already use separately; OpenCode is optional unless you want its
|
|
222
|
+
plugin-only Context delivery.
|
|
216
223
|
|
|
217
224
|
```bash
|
|
218
|
-
#
|
|
219
|
-
curl -fsSL https://opencode.ai/install | bash # or: npm install -g opencode-ai
|
|
220
|
-
opencode auth login
|
|
221
|
-
|
|
222
|
-
# Persona Harness
|
|
225
|
+
# Any supported host project
|
|
223
226
|
npm install -D persona-harness
|
|
224
|
-
npx ph
|
|
227
|
+
npx ph init
|
|
228
|
+
npx ph doctor
|
|
225
229
|
```
|
|
226
230
|
|
|
231
|
+
`ph init` installs host-native discovery files without requiring a
|
|
232
|
+
Persona-specific launch command. See the [portable host adapter guide](docs/current/portable-host-adapters.md)
|
|
233
|
+
for the generated paths, host-specific limits, and safe update procedure.
|
|
234
|
+
|
|
227
235
|
## Quick Start
|
|
228
236
|
|
|
229
237
|
For a clean project directory (not the Persona Harness repo itself):
|
|
@@ -237,6 +245,12 @@ npx ph bootstrap backend # AGENTS.md, profile, plan, report templates
|
|
|
237
245
|
npx ph go "Add a task creation endpoint."
|
|
238
246
|
```
|
|
239
247
|
|
|
248
|
+
`ph init` writes manifest-owned shared-skill adapters beneath `.agents/skills`,
|
|
249
|
+
`.claude/skills`, and `.opencode/skills`. It refuses a modified, user-owned, or
|
|
250
|
+
symlinked generated target instead of overwriting it. The generated files make
|
|
251
|
+
the catalog discoverable to the host; they do not prove that a running session
|
|
252
|
+
selected a skill or grant a workflow command any authority.
|
|
253
|
+
|
|
240
254
|
For an existing Java/Spring/Gradle project, inspect the inferred draft first,
|
|
241
255
|
then accept it explicitly:
|
|
242
256
|
|
|
@@ -302,6 +316,11 @@ OpenCode configuration and never overwrites changed rules, profiles, workflow
|
|
|
302
316
|
state, or `.gitignore`; malformed, symlinked, foreign, or ordinary projects are
|
|
303
317
|
left unchanged.
|
|
304
318
|
|
|
319
|
+
This automatic update path is OpenCode-plugin-specific. It does not rewrite the
|
|
320
|
+
portable host adapter trees. After upgrading the npm package, run `npx ph init`
|
|
321
|
+
to refresh only unchanged Persona-owned adapters; modified, user-owned, or
|
|
322
|
+
symlinked adapter files stay blocked rather than being overwritten.
|
|
323
|
+
|
|
305
324
|
> [!NOTE]
|
|
306
325
|
> If `workflow finish` fails, the agent must fix the reported blocker before claiming completion. **That failure is the product working, not a bug.**
|
|
307
326
|
|
|
@@ -390,6 +409,23 @@ do not change the P0-3 root CLI discovery contract.
|
|
|
390
409
|
|
|
391
410
|
## Platform And Host Support
|
|
392
411
|
|
|
412
|
+
### Portable host adapters
|
|
413
|
+
|
|
414
|
+
`ph init` materializes the same catalog into each host's project-local discovery
|
|
415
|
+
layout. This proves the installed package produced safe static files, not that a
|
|
416
|
+
specific live session loaded or followed one.
|
|
417
|
+
|
|
418
|
+
| Host | Project-local adapter path | What the package establishes |
|
|
419
|
+
| --- | --- | --- |
|
|
420
|
+
| Codex and Antigravity | `.agents/skills/persona-harness-<skill-id>/SKILL.md` | Manifest-owned, host-neutral skill discovery metadata. |
|
|
421
|
+
| Claude Code | `.claude/skills/persona-harness-claude-<skill-id>/SKILL.md` | Manifest-owned, host-neutral skill discovery metadata. |
|
|
422
|
+
| OpenCode | `.opencode/skills/persona-harness-opencode-<skill-id>/SKILL.md` | Manifest-owned discovery metadata; the optional plugin remains a separate runtime boundary. |
|
|
423
|
+
|
|
424
|
+
The `.agents` and `.claude` adapters explicitly opt out of OpenCode automatic
|
|
425
|
+
discovery so an OpenCode project receives one native candidate rather than
|
|
426
|
+
duplicates. For the full ownership, upgrade, and non-claim boundary, read the
|
|
427
|
+
[portable host adapter guide](docs/current/portable-host-adapters.md).
|
|
428
|
+
|
|
393
429
|
### Node runtime floor
|
|
394
430
|
|
|
395
431
|
The packaged CLI and its product-owned Sigstore authority verifiers require
|
|
@@ -418,12 +454,11 @@ or provide a credential fallback. When more than one repository is enrolled,
|
|
|
418
454
|
pass the selected enrolled `owner/repository` to `fetch github`. Neither
|
|
419
455
|
command publishes a package, moves a channel, or consumes Finish authority.
|
|
420
456
|
|
|
421
|
-
|
|
|
457
|
+
| CLI/runtime surface | Status | Evidence boundary |
|
|
422
458
|
| --- | --- | --- |
|
|
423
|
-
| Linux
|
|
424
|
-
| macOS
|
|
459
|
+
| Linux CLI/package | Product: Node ^20.17.0 || >=22.9.0; source checks: Node 20.19.0 | Required Verify repository aggregates PR fast feedback and main package integration. Pull requests run policy, typecheck, build, and the two Vitest projects; main pushes additionally run Linux Node 20.19.0 source-built, packed-tarball, and fresh local-tarball installed checks. The dispatch-only support matrix retains exact product-floor Linux Node 20.17.0 and 22.9.0 imports plus latest Linux Node 20, 22, and 24 on demand. |
|
|
460
|
+
| macOS CLI/package | Manual limited smoke | The dispatch-only support matrix retains macOS Node 22 smoke only; this is not a promise of macOS Node 20/24 coverage. |
|
|
425
461
|
| Windows | Unverified / nonblocking | No Windows matrix job or support claim. Lock identity device/inode behavior and stale-lock/concurrency conclusions are not measured or verified. |
|
|
426
|
-
| Codex adapter | Planned | No current Codex adapter or Codex product evidence; this is a planned adapter only. |
|
|
427
462
|
|
|
428
463
|
Automatic CI boundary: Verify repository is the required PR/main aggregate. Pull requests require only the fast feedback lanes; main pushes also require Linux Node 20.19.0 package integration. The dispatch-only support matrix is deferred multi-runtime evidence, not a required PR/main gate. It is distinct from the canonical clean-CI builder's main-push signed evidence and the ordinary path-filtered diagnostic selftest.
|
|
429
464
|
|
|
@@ -433,8 +468,8 @@ Evidence answers one bounded question — *"What did this PH workflow observe fo
|
|
|
433
468
|
this defined gate?"* — and nothing more. PH does **not** promise app-quality
|
|
434
469
|
certification, token savings, Clean Code guarantees, broad AST/linter
|
|
435
470
|
enforcement, a full TDD framework, closure guarantees, strong anti-forgery
|
|
436
|
-
integrity before P3, or a
|
|
437
|
-
is in [MEASURED-CLAIMS](docs/MEASURED-CLAIMS.md).
|
|
471
|
+
integrity before P3, or a proven live workflow route on every host. The
|
|
472
|
+
canonical list is in [MEASURED-CLAIMS](docs/MEASURED-CLAIMS.md).
|
|
438
473
|
|
|
439
474
|
> [!WARNING]
|
|
440
475
|
> `ph bearshell` is **not a sandbox**. It limits runtime and output size, but commands still run on your machine with your permissions. See [SECURITY](SECURITY.md).
|
|
@@ -442,6 +477,7 @@ is in [MEASURED-CLAIMS](docs/MEASURED-CLAIMS.md).
|
|
|
442
477
|
## Docs
|
|
443
478
|
|
|
444
479
|
- **New users** → [Start Here](docs/START-HERE.md) · [Quick Demo](docs/QUICK-DEMO.md) · [Measured Claims](docs/MEASURED-CLAIMS.md)
|
|
480
|
+
- **Codex, Claude Code, OpenCode, or Antigravity** → [portable host adapter guide](docs/current/portable-host-adapters.md)
|
|
445
481
|
- **Agent not following the rail?** → [Troubleshooting](docs/troubleshooting/README.md)
|
|
446
482
|
- **Install & backend shape** → [MVP install guide](docs/current/java-backend-mvp-install-guide.md)
|
|
447
483
|
- **Contributors** → [CONTRIBUTING](CONTRIBUTING.md) · [ROADMAP](ROADMAP.md) · [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function copyAttachContext(projectDir: string, stagingDir: string): void;
|
|
1
|
+
export declare function copyAttachContext(projectDir: string, stagingDir: string, ownedHostSkillAdapterPaths?: readonly string[]): void;
|
|
@@ -10,8 +10,8 @@ const STAGING_CONTEXT = [
|
|
|
10
10
|
".gitignore",
|
|
11
11
|
".opencode/opencode.json",
|
|
12
12
|
];
|
|
13
|
-
export function copyAttachContext(projectDir, stagingDir) {
|
|
14
|
-
for (const relativePath of STAGING_CONTEXT) {
|
|
13
|
+
export function copyAttachContext(projectDir, stagingDir, ownedHostSkillAdapterPaths = []) {
|
|
14
|
+
for (const relativePath of [...STAGING_CONTEXT, ...ownedHostSkillAdapterPaths]) {
|
|
15
15
|
const source = join(projectDir, relativePath);
|
|
16
16
|
if (existsSync(source)) {
|
|
17
17
|
const target = join(stagingDir, relativePath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach-staging.js","sourceRoot":"","sources":["../../src/cli/attach-staging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,eAAe,GAAG;IACtB,WAAW;IACX,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,qBAAqB;IACrB,KAAK;IACL,YAAY;IACZ,yBAAyB;CACjB,CAAA;AAEV,MAAM,UAAU,iBAAiB,
|
|
1
|
+
{"version":3,"file":"attach-staging.js","sourceRoot":"","sources":["../../src/cli/attach-staging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,eAAe,GAAG;IACtB,WAAW;IACX,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,qBAAqB;IACrB,KAAK;IACL,YAAY;IACZ,yBAAyB;CACjB,CAAA;AAEV,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,UAAkB,EAClB,6BAAgD,EAAE;IAElD,KAAK,MAAM,YAAY,IAAI,CAAC,GAAG,eAAe,EAAE,GAAG,0BAA0B,CAAC,EAAE,CAAC;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;QAC7C,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;YAC7C,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC/C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/cli/attach.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cpSync, existsSync, mkdtempSync, readFileSync, rmSync, realpathSync, writeFileSync, } from "node:fs";
|
|
1
|
+
import { cpSync, existsSync, lstatSync, mkdtempSync, readFileSync, rmSync, realpathSync, writeFileSync, } from "node:fs";
|
|
2
2
|
import { tmpdir } from "node:os";
|
|
3
3
|
import { join, resolve } from "node:path";
|
|
4
4
|
import process from "node:process";
|
|
@@ -10,8 +10,76 @@ import { copyAttachContext } from "./attach-staging.js";
|
|
|
10
10
|
import { commitAttachTree } from "./attach-transaction.js";
|
|
11
11
|
import { attachBlocked, attachUsage, parseAttachArgs, } from "./attach-command-contract.js";
|
|
12
12
|
import { runBootstrapCommand } from "./bootstrap.js";
|
|
13
|
+
import { isHostSkillAdapterTarget } from "./host-skill-materializer.js";
|
|
14
|
+
import { InitManifestError, readInitManifest } from "./init-manifest.js";
|
|
13
15
|
import { runInstructionsCommand } from "./instructions-infer.js";
|
|
14
16
|
import { readWorkflowDiagnosis } from "./workflow-diagnostics.js";
|
|
17
|
+
const ATTACH_ROOTS = [".gitignore", ".opencode/opencode.json", ".persona", "AGENTS.md"];
|
|
18
|
+
function hostSkillAdapterPaths(projectDir) {
|
|
19
|
+
try {
|
|
20
|
+
const manifest = readInitManifest(projectDir);
|
|
21
|
+
if (manifest === null) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
return manifest.files
|
|
25
|
+
.map((entry) => entry.path)
|
|
26
|
+
.filter((path) => isHostSkillAdapterTarget(path));
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
if (error instanceof InitManifestError) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function assertSafeHostSkillAdapterTarget(projectDir, relativePath) {
|
|
36
|
+
let current = resolve(projectDir);
|
|
37
|
+
const segments = relativePath.split("/");
|
|
38
|
+
for (const [index, segment] of segments.entries()) {
|
|
39
|
+
current = join(current, segment);
|
|
40
|
+
if (!existsSync(current)) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const stat = lstatSync(current);
|
|
44
|
+
if (stat.isSymbolicLink()) {
|
|
45
|
+
throw new Error(`Attach host skill adapter contains a symbolic link: ${relativePath}`);
|
|
46
|
+
}
|
|
47
|
+
if (index < segments.length - 1 && !stat.isDirectory()) {
|
|
48
|
+
throw new Error(`Attach host skill adapter parent is not a directory: ${relativePath}`);
|
|
49
|
+
}
|
|
50
|
+
if (index === segments.length - 1 && !stat.isFile()) {
|
|
51
|
+
throw new Error(`Attach host skill adapter is not a regular file: ${relativePath}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function assertHostSkillAdapterTargetsAreSafe(projectDir, stagingDir) {
|
|
56
|
+
const paths = hostSkillAdapterPaths(stagingDir);
|
|
57
|
+
if (paths === null) {
|
|
58
|
+
throw new Error("Attach staging is missing the init ownership manifest");
|
|
59
|
+
}
|
|
60
|
+
for (const relativePath of paths) {
|
|
61
|
+
assertSafeHostSkillAdapterTarget(projectDir, relativePath);
|
|
62
|
+
const targetPath = join(projectDir, relativePath);
|
|
63
|
+
if (!existsSync(targetPath)) {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const expected = readFileSync(join(stagingDir, relativePath));
|
|
67
|
+
if (!readFileSync(targetPath).equals(expected)) {
|
|
68
|
+
throw new Error(`Attach host skill adapter conflicts at ${relativePath}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return paths;
|
|
72
|
+
}
|
|
73
|
+
function attachCommitRoots(projectDir, stagingDir) {
|
|
74
|
+
return [...ATTACH_ROOTS, ...assertHostSkillAdapterTargetsAreSafe(projectDir, stagingDir)];
|
|
75
|
+
}
|
|
76
|
+
function ownedHostSkillAdapterPaths(projectDir) {
|
|
77
|
+
const paths = hostSkillAdapterPaths(projectDir) ?? [];
|
|
78
|
+
for (const relativePath of paths) {
|
|
79
|
+
assertSafeHostSkillAdapterTarget(projectDir, relativePath);
|
|
80
|
+
}
|
|
81
|
+
return paths;
|
|
82
|
+
}
|
|
15
83
|
function writeManagedAgents(stagingDir) {
|
|
16
84
|
writeFileSync(join(stagingDir, "AGENTS.md"), managedBackendAgentInstructions());
|
|
17
85
|
}
|
|
@@ -58,7 +126,7 @@ function runFreshAttach(projectDir, options) {
|
|
|
58
126
|
return attachBlocked(inference.stderr.trim() || "instruction inference failed.", "Resolve the reported project inference problem, then retry attach.", "npx ph attach --yes");
|
|
59
127
|
}
|
|
60
128
|
writeManagedAgents(stagingDir);
|
|
61
|
-
commitAttachTree(projectDir, stagingDir,
|
|
129
|
+
commitAttachTree(projectDir, stagingDir, attachCommitRoots(projectDir, stagingDir), { onAfterCommitFile: options.onAfterCommitFile });
|
|
62
130
|
return {
|
|
63
131
|
status: 0,
|
|
64
132
|
stdout: [
|
|
@@ -90,7 +158,7 @@ function runRepair(projectDir, options) {
|
|
|
90
158
|
}
|
|
91
159
|
const stagingDir = mkdtempSync(join(tmpdir(), "persona-attach-repair-"));
|
|
92
160
|
try {
|
|
93
|
-
copyAttachContext(projectDir, stagingDir);
|
|
161
|
+
copyAttachContext(projectDir, stagingDir, ownedHostSkillAdapterPaths(projectDir));
|
|
94
162
|
cpSync(join(projectDir, ".persona"), join(stagingDir, ".persona"), { recursive: true });
|
|
95
163
|
const bootstrap = runBootstrapCommand(["backend"], {
|
|
96
164
|
attachStagingOwnership: { kind: "repair", projectRealPath: realpathSync(projectDir) },
|
|
@@ -109,7 +177,7 @@ function runRepair(projectDir, options) {
|
|
|
109
177
|
writeFileSync(join(stagingDir, "AGENTS.md"), existsSync(agentsPath)
|
|
110
178
|
? repairManagedBackendAgentInstructions(readFileSync(agentsPath, "utf8"))
|
|
111
179
|
: managedBackendAgentInstructions());
|
|
112
|
-
commitAttachTree(projectDir, stagingDir,
|
|
180
|
+
commitAttachTree(projectDir, stagingDir, attachCommitRoots(projectDir, stagingDir), {
|
|
113
181
|
onAfterCommitFile: options.onAfterCommitFile,
|
|
114
182
|
});
|
|
115
183
|
return {
|
package/dist/cli/attach.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../src/cli/attach.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../src/cli/attach.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,7 +39,7 @@ export declare const POLICY_OVERLAY_PATH = ".persona/policies/overlay.jsonc";
|
|
|
39
39
|
export declare const ROOT_AGENT_INSTRUCTIONS_PATH = "AGENTS.md";
|
|
40
40
|
export declare const BOOTSTRAP_PERSONA_FILES: readonly [".ph-init-manifest.json", "harness.jsonc", "project-profile.jsonc", "policies/overlay.jsonc", "policies/company/backend.md", "policies/personal/backend.md"];
|
|
41
41
|
export declare const BOOTSTRAP_WORKFLOW_FILES: readonly ["plan.md", "implementation-report.md", "review-report.md", "roles.md", "workflow-loop-state.json", "ralph-loop-state.json"];
|
|
42
|
-
export declare const BOOTSTRAP_TRANSACTION_OUTPUT_MANIFEST: readonly [".gitignore", ".opencode/opencode.json", "AGENTS.md", ".persona/.ph-init-manifest.json", ".persona/harness.jsonc", ".persona/conventions/**", ".persona/rules/**", ".persona/project-profile.jsonc", ".persona/policies/overlay.jsonc", ".persona/policies/company/backend.md", ".persona/policies/personal/backend.md", ".persona/workflow/plan.md", ".persona/workflow/implementation-report.md", ".persona/workflow/review-report.md", ".persona/workflow/roles.md", ".persona/workflow/workflow-loop-state.json", ".persona/workflow/ralph-loop-state.json", "temporary: .<leaf>.<uuid>.tmp", "temporary: Persona staging directory"];
|
|
42
|
+
export declare const BOOTSTRAP_TRANSACTION_OUTPUT_MANIFEST: readonly [".gitignore", ".agents/skills/**", ".claude/skills/**", ".opencode/opencode.json", ".opencode/skills/**", "AGENTS.md", ".persona/.ph-init-manifest.json", ".persona/harness.jsonc", ".persona/conventions/**", ".persona/rules/**", ".persona/project-profile.jsonc", ".persona/policies/overlay.jsonc", ".persona/policies/company/backend.md", ".persona/policies/personal/backend.md", ".persona/workflow/plan.md", ".persona/workflow/implementation-report.md", ".persona/workflow/review-report.md", ".persona/workflow/roles.md", ".persona/workflow/workflow-loop-state.json", ".persona/workflow/ralph-loop-state.json", "temporary: .<leaf>.<uuid>.tmp", "temporary: Persona staging directory"];
|
|
43
43
|
export declare function strictModeSummaryLines(): readonly string[];
|
|
44
44
|
export declare function runtimeInjectionPreviewSummaryLines(): readonly string[];
|
|
45
45
|
export declare function multiAgentPreviewSummaryLines(): readonly string[];
|
|
@@ -26,7 +26,10 @@ export const BOOTSTRAP_WORKFLOW_FILES = [
|
|
|
26
26
|
];
|
|
27
27
|
export const BOOTSTRAP_TRANSACTION_OUTPUT_MANIFEST = [
|
|
28
28
|
".gitignore",
|
|
29
|
+
".agents/skills/**",
|
|
30
|
+
".claude/skills/**",
|
|
29
31
|
".opencode/opencode.json",
|
|
32
|
+
".opencode/skills/**",
|
|
30
33
|
"AGENTS.md",
|
|
31
34
|
".persona/.ph-init-manifest.json",
|
|
32
35
|
".persona/harness.jsonc",
|
|
@@ -120,7 +123,10 @@ export function bootstrapUsage(invocation = "ph") {
|
|
|
120
123
|
`- ${HARNESS_CONFIG_PATH}`,
|
|
121
124
|
`- ${CONVENTIONS_DIR_PATH}`,
|
|
122
125
|
`- ${RULES_DIR_PATH}`,
|
|
126
|
+
"- .agents/skills/persona-harness-*/",
|
|
127
|
+
"- .claude/skills/persona-harness-claude-*/",
|
|
123
128
|
`- ${OPENCODE_CONFIG_PATH}`,
|
|
129
|
+
"- .opencode/skills/persona-harness-opencode-*/",
|
|
124
130
|
`- ${GITIGNORE_PATH}`,
|
|
125
131
|
`- ${ROOT_AGENT_INSTRUCTIONS_PATH}`,
|
|
126
132
|
`- ${PROFILE_PATH}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-contract.js","sourceRoot":"","sources":["../../src/cli/bootstrap-contract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bootstrap-contract.js","sourceRoot":"","sources":["../../src/cli/bootstrap-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,7 @@ export function runBackendBootstrap(options, flags) {
|
|
|
30
30
|
if (!existsSync(join(projectDir, PERSONA_DIR))) {
|
|
31
31
|
const initialized = initializeFreshBootstrapPersonaHarness({ projectDir, packageRoot: options.packageRoot });
|
|
32
32
|
bootstrapWriteBoundary = initialized.boundary;
|
|
33
|
-
actions.push("initialized .persona and OpenCode plugin config");
|
|
33
|
+
actions.push("initialized .persona, portable host skill adapters, and OpenCode plugin config");
|
|
34
34
|
}
|
|
35
35
|
else {
|
|
36
36
|
if (readInitManifest(projectDir) === null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-runner.js","sourceRoot":"","sources":["../../src/cli/bootstrap-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,OAAO,MAAM,cAAc,CAAA;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAA;AAC7E,OAAO,EACL,2BAA2B,GAE5B,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAA;AAC3E,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,GAE9B,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EACL,WAAW,EACX,mBAAmB,GAGpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,EACjC,gCAAgC,EAChC,YAAY,EACZ,6BAA6B,GAC9B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAA;AACtG,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,sCAAsC,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC5G,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,+BAA+B,EAAE,MAAM,WAAW,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,MAAM,UAAU,mBAAmB,CACjC,OAAyB,EACzB,KAA4B;IAE5B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC/D,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,IAAI,sBAA0D,CAAA;IAC9D,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,WAAW,GAAG,sCAAsC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;YAC5G,sBAAsB,GAAG,WAAW,CAAC,QAAQ,CAAA;YAC7C,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"bootstrap-runner.js","sourceRoot":"","sources":["../../src/cli/bootstrap-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { InitTarget } from "./init-transaction.js";
|
|
2
|
+
export type HostSkillLayout = {
|
|
3
|
+
readonly id: "agents" | "claude" | "opencode";
|
|
4
|
+
readonly namePrefix: string;
|
|
5
|
+
readonly openCodeAutoinvoke: boolean;
|
|
6
|
+
readonly root: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const HOST_SKILL_LAYOUTS: readonly [{
|
|
9
|
+
readonly id: "agents";
|
|
10
|
+
readonly namePrefix: "persona-harness";
|
|
11
|
+
readonly openCodeAutoinvoke: false;
|
|
12
|
+
readonly root: ".agents/skills";
|
|
13
|
+
}, {
|
|
14
|
+
readonly id: "claude";
|
|
15
|
+
readonly namePrefix: "persona-harness-claude";
|
|
16
|
+
readonly openCodeAutoinvoke: false;
|
|
17
|
+
readonly root: ".claude/skills";
|
|
18
|
+
}, {
|
|
19
|
+
readonly id: "opencode";
|
|
20
|
+
readonly namePrefix: "persona-harness-opencode";
|
|
21
|
+
readonly openCodeAutoinvoke: true;
|
|
22
|
+
readonly root: ".opencode/skills";
|
|
23
|
+
}];
|
|
24
|
+
export declare function isHostSkillAdapterTarget(relativePath: string): boolean;
|
|
25
|
+
export declare function buildHostSkillAdapterTargets(packageRoot: string): readonly InitTarget[];
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { lstatSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join, relative, resolve, sep } from "node:path";
|
|
3
|
+
import { listPersonaSharedSkillsFromPackageRoot, } from "../runtime/persona-shared-skill-catalog.js";
|
|
4
|
+
import { InitManifestError } from "./init-manifest.js";
|
|
5
|
+
export const HOST_SKILL_LAYOUTS = [
|
|
6
|
+
{
|
|
7
|
+
id: "agents",
|
|
8
|
+
namePrefix: "persona-harness",
|
|
9
|
+
openCodeAutoinvoke: false,
|
|
10
|
+
root: ".agents/skills",
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
id: "claude",
|
|
14
|
+
namePrefix: "persona-harness-claude",
|
|
15
|
+
openCodeAutoinvoke: false,
|
|
16
|
+
root: ".claude/skills",
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: "opencode",
|
|
20
|
+
namePrefix: "persona-harness-opencode",
|
|
21
|
+
openCodeAutoinvoke: true,
|
|
22
|
+
root: ".opencode/skills",
|
|
23
|
+
},
|
|
24
|
+
];
|
|
25
|
+
const HOST_SKILL_ROOTS = HOST_SKILL_LAYOUTS.map((layout) => `${layout.root}/`);
|
|
26
|
+
const SHARED_SKILLS_ROOT = "packages/shared-skills";
|
|
27
|
+
function isRecord(value) {
|
|
28
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
29
|
+
}
|
|
30
|
+
function sourceStat(path) {
|
|
31
|
+
try {
|
|
32
|
+
return lstatSync(path);
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
throw new InitManifestError("Persona shared-skill source is unavailable; no files were changed.");
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function assertSafeSourceFile(packageRoot, relativePath) {
|
|
39
|
+
const root = resolve(packageRoot);
|
|
40
|
+
const path = resolve(root, relativePath);
|
|
41
|
+
const escaped = relative(root, path);
|
|
42
|
+
if (escaped === ".." || escaped.startsWith(`..${sep}`) || escaped.startsWith(sep)) {
|
|
43
|
+
throw new InitManifestError("Persona shared-skill source escapes the package root; no files were changed.");
|
|
44
|
+
}
|
|
45
|
+
const rootStat = sourceStat(root);
|
|
46
|
+
if (!rootStat.isDirectory() || rootStat.isSymbolicLink()) {
|
|
47
|
+
throw new InitManifestError("Persona shared-skill package root is unsafe; no files were changed.");
|
|
48
|
+
}
|
|
49
|
+
const segments = relativePath.split("/");
|
|
50
|
+
let current = root;
|
|
51
|
+
for (const [index, segment] of segments.entries()) {
|
|
52
|
+
current = join(current, segment);
|
|
53
|
+
const stat = sourceStat(current);
|
|
54
|
+
if (stat.isSymbolicLink()) {
|
|
55
|
+
throw new InitManifestError("Persona shared-skill source contains a symbolic link; no files were changed.");
|
|
56
|
+
}
|
|
57
|
+
if (index < segments.length - 1 && !stat.isDirectory()) {
|
|
58
|
+
throw new InitManifestError("Persona shared-skill source parent is invalid; no files were changed.");
|
|
59
|
+
}
|
|
60
|
+
if (index === segments.length - 1 && !stat.isFile()) {
|
|
61
|
+
throw new InitManifestError("Persona shared-skill source is not a regular file; no files were changed.");
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return path;
|
|
65
|
+
}
|
|
66
|
+
function readPackageVersion(packageRoot) {
|
|
67
|
+
const source = readFileSync(assertSafeSourceFile(packageRoot, "package.json"), "utf8");
|
|
68
|
+
let parsed;
|
|
69
|
+
try {
|
|
70
|
+
parsed = JSON.parse(source);
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
throw new InitManifestError("Persona shared-skill package binding is malformed; no files were changed.");
|
|
74
|
+
}
|
|
75
|
+
if (!isRecord(parsed) || parsed.name !== "persona-harness" || typeof parsed.version !== "string") {
|
|
76
|
+
throw new InitManifestError("Persona shared-skill package binding is unavailable; no files were changed.");
|
|
77
|
+
}
|
|
78
|
+
return parsed.version;
|
|
79
|
+
}
|
|
80
|
+
function readCanonicalSkillSource(packageRoot, skill) {
|
|
81
|
+
const source = readFileSync(assertSafeSourceFile(packageRoot, `${SHARED_SKILLS_ROOT}/${skill.entry}`), "utf8");
|
|
82
|
+
if (!source.startsWith("---\n")) {
|
|
83
|
+
throw new InitManifestError("Persona shared-skill source front matter is malformed; no files were changed.");
|
|
84
|
+
}
|
|
85
|
+
const closing = source.indexOf("\n---\n", 4);
|
|
86
|
+
if (closing < 4) {
|
|
87
|
+
throw new InitManifestError("Persona shared-skill source front matter is malformed; no files were changed.");
|
|
88
|
+
}
|
|
89
|
+
const frontMatter = source.slice(4, closing);
|
|
90
|
+
const descriptionLine = frontMatter.split("\n").find((line) => line.startsWith("description: "));
|
|
91
|
+
const description = descriptionLine?.slice("description: ".length).trim();
|
|
92
|
+
const body = source.slice(closing + "\n---\n".length).trim();
|
|
93
|
+
if (description === undefined || description.length === 0 || body.length === 0) {
|
|
94
|
+
throw new InitManifestError("Persona shared-skill source metadata is incomplete; no files were changed.");
|
|
95
|
+
}
|
|
96
|
+
return { body, description };
|
|
97
|
+
}
|
|
98
|
+
function renderHostSkillAdapter(layout, skill, source, packageVersion) {
|
|
99
|
+
const name = `${layout.namePrefix}-${skill.id}`;
|
|
100
|
+
return Buffer.from([
|
|
101
|
+
"---",
|
|
102
|
+
`name: ${name}`,
|
|
103
|
+
`description: ${JSON.stringify(source.description)}`,
|
|
104
|
+
'license: "Apache-2.0"',
|
|
105
|
+
`compatibility: ${JSON.stringify(layout.id === "agents" ? "Codex and Antigravity" : layout.id === "claude" ? "Claude Code" : "OpenCode")}`,
|
|
106
|
+
"metadata:",
|
|
107
|
+
` persona-harness/canonical-skill: ${skill.id}`,
|
|
108
|
+
` persona-harness/adapter-layout: ${layout.id}`,
|
|
109
|
+
` persona-harness/adapter-version: ${packageVersion}`,
|
|
110
|
+
` opencode/autoinvoke: \"${layout.openCodeAutoinvoke ? "true" : "false"}\"`,
|
|
111
|
+
"---",
|
|
112
|
+
"",
|
|
113
|
+
`# Persona Harness Adapter: ${skill.title}`,
|
|
114
|
+
"",
|
|
115
|
+
"This adapter exposes the canonical Persona Harness skill to this host only. Discovery alone does not authorize workflow, shell, network, GitHub, authority, evidence, or external actions.",
|
|
116
|
+
"",
|
|
117
|
+
source.body,
|
|
118
|
+
"",
|
|
119
|
+
].join("\n"), "utf8");
|
|
120
|
+
}
|
|
121
|
+
export function isHostSkillAdapterTarget(relativePath) {
|
|
122
|
+
return HOST_SKILL_ROOTS.some((root) => relativePath.startsWith(root));
|
|
123
|
+
}
|
|
124
|
+
export function buildHostSkillAdapterTargets(packageRoot) {
|
|
125
|
+
assertSafeSourceFile(packageRoot, `${SHARED_SKILLS_ROOT}/catalog.json`);
|
|
126
|
+
const packageVersion = readPackageVersion(packageRoot);
|
|
127
|
+
let skills;
|
|
128
|
+
try {
|
|
129
|
+
skills = listPersonaSharedSkillsFromPackageRoot(packageRoot);
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
throw new InitManifestError("Persona shared-skill catalog is unavailable; no files were changed.");
|
|
133
|
+
}
|
|
134
|
+
const targets = [];
|
|
135
|
+
for (const layout of HOST_SKILL_LAYOUTS) {
|
|
136
|
+
for (const skill of skills) {
|
|
137
|
+
const source = readCanonicalSkillSource(packageRoot, skill);
|
|
138
|
+
const name = `${layout.namePrefix}-${skill.id}`;
|
|
139
|
+
targets.push({
|
|
140
|
+
relativePath: `${layout.root}/${name}/SKILL.md`,
|
|
141
|
+
nextBytes: renderHostSkillAdapter(layout, skill, source, packageVersion),
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return targets.sort((left, right) => left.relativePath.localeCompare(right.relativePath));
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=host-skill-materializer.js.map
|