@hasna/skills 0.10.6 → 0.10.9
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/bin/index.js +2500 -2393
- package/bin/mcp.js +1120 -1896
- package/bin/migrate.js +5 -4
- package/bin/server.js +1182 -194
- package/bin/worker.js +1135 -147
- package/dist/cli/commands/runtime-copyfile.d.ts +25 -0
- package/dist/index.js +675 -1453
- package/dist/lib/codex-hook-rpc.d.ts +1 -1
- package/dist/lib/infra-identifiers.d.ts +1 -2
- package/dist/lib/release-review-linkage.d.ts +104 -0
- package/dist/lib/selection-cache.d.ts +1 -1
- package/dist/sdk/index.js +1792 -1583
- package/package.json +5 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const SUPPORTED_CODEX_HOOK_VERSIONS: readonly ["codex-cli 0.153.0", "codex-cli 0.154.0", "codex-cli 0.155.0", "codex-cli 0.155.1", "codex-cli 0.156.1"];
|
|
1
|
+
export declare const SUPPORTED_CODEX_HOOK_VERSIONS: readonly ["codex-cli 0.153.0", "codex-cli 0.154.0", "codex-cli 0.155.0", "codex-cli 0.155.1", "codex-cli 0.156.1", "codex-cli 0.157.0", "codex-cli 0.157.1"];
|
|
2
2
|
export interface CodexHookRpc {
|
|
3
3
|
version: string;
|
|
4
4
|
processId?: number;
|
|
@@ -9,8 +9,7 @@
|
|
|
9
9
|
* variables. At most one tracked line may name where that manifest lives.
|
|
10
10
|
*
|
|
11
11
|
* This module expresses that as a set of PROPERTIES rather than a blocklist of
|
|
12
|
-
* known-bad strings, so it survives renaming
|
|
13
|
-
* `widgets-stage-queue` is caught just the same) and catches semantic inversion
|
|
12
|
+
* known-bad strings, so it survives renaming a deployment resource and catches semantic inversion
|
|
14
13
|
* (re-hardcoding a value that used to be parameterized).
|
|
15
14
|
*
|
|
16
15
|
* The five properties:
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Release review linkage for @hasna/skills npm releases.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS
|
|
5
|
+
*
|
|
6
|
+
* @hasna/skills 0.10.5 and 0.10.6 reached npm without the release authority's
|
|
7
|
+
* required pre-upload linkage: an independent reviewer's GO in git-prs and the
|
|
8
|
+
* git-publishing intent thread, bound to the exact candidate AND to the packed
|
|
9
|
+
* tarball that was uploaded. A published version cannot be unpublished, so the only
|
|
10
|
+
* place a release can refuse is BEFORE the upload.
|
|
11
|
+
*
|
|
12
|
+
* The binding lives in the annotated release tag message, which is created
|
|
13
|
+
* before the tag is pushed and is covered by the same protected-main ancestry
|
|
14
|
+
* the release workflow already requires:
|
|
15
|
+
*
|
|
16
|
+
* @hasna/skills 0.10.7
|
|
17
|
+
*
|
|
18
|
+
* <release notes>
|
|
19
|
+
*
|
|
20
|
+
* Release-Review-Agent: <registered reviewer coding-agent identity>
|
|
21
|
+
* Git-Publishing-Thread: <release intent thread id>
|
|
22
|
+
* Git-Prs-GO: <message id of the independent GO in git-prs for this candidate>
|
|
23
|
+
* Packed-SHA256: <64 lowercase hex>
|
|
24
|
+
*
|
|
25
|
+
* "EXACTLY" is enforced, not implied: each of the four linkage keys must appear
|
|
26
|
+
* exactly once, the linkage namespace is closed (a fifth Release-Review-* /
|
|
27
|
+
* Git-Publishing-* / Git-Prs-* / Packed-* key is a failure, so a field can never be silently
|
|
28
|
+
* swapped for a look-alike), values are strictly shaped, and the recorded
|
|
29
|
+
* Packed-SHA256 must equal the SHA-256 of the tarball this checkout actually
|
|
30
|
+
* packs. There is no fallback: a missing, duplicated, malformed or mismatched
|
|
31
|
+
* field refuses the release.
|
|
32
|
+
*
|
|
33
|
+
* The reviewer's digest must be produced with the release toolchain at the exact
|
|
34
|
+
* commit (see scripts/RELEASE.md): `npm pack --ignore-scripts` in apps/skills
|
|
35
|
+
* after `bun run build`, hashed with SHA-256. A digest taken from a different
|
|
36
|
+
* toolchain, a different commit or a differently-built tree does not match by
|
|
37
|
+
* design, and the mismatch is the gate doing its job.
|
|
38
|
+
*
|
|
39
|
+
* This module is pure: git and npm I/O stay in scripts/verify-release-review.ts,
|
|
40
|
+
* and the release workflow runs `bun run verify:release-review` before it is
|
|
41
|
+
* allowed to publish.
|
|
42
|
+
*/
|
|
43
|
+
export declare const SKILLS_RELEASE_REPOSITORY = "hasna/skills";
|
|
44
|
+
export declare const SKILLS_RELEASE_REPOSITORY_URL = "https://github.com/hasna/skills.git";
|
|
45
|
+
export declare const SKILLS_RELEASE_PACKAGE_PATH = "apps/skills";
|
|
46
|
+
export declare const SKILLS_RELEASE_MANIFEST_PATH = "apps/skills/package.json";
|
|
47
|
+
export declare const SKILLS_RELEASE_PACKAGE_NAME = "@hasna/skills";
|
|
48
|
+
export declare const SKILLS_RELEASE_REGISTRY = "https://registry.npmjs.org";
|
|
49
|
+
export declare const SKILLS_RELEASE_TAG_PREFIX = "npm/skills/v";
|
|
50
|
+
/** Field names carried by the annotated release tag message, in required order. */
|
|
51
|
+
export declare const RELEASE_REVIEW_LINKAGE_FIELDS: {
|
|
52
|
+
readonly reviewerAgent: "Release-Review-Agent";
|
|
53
|
+
readonly goThreadId: "Git-Publishing-Thread";
|
|
54
|
+
readonly goMessageId: "Git-Prs-GO";
|
|
55
|
+
readonly packedSha256: "Packed-SHA256";
|
|
56
|
+
};
|
|
57
|
+
export type ReleaseReviewLinkageFailure = {
|
|
58
|
+
check: string;
|
|
59
|
+
message: string;
|
|
60
|
+
};
|
|
61
|
+
export type ReleaseReviewLinkage = {
|
|
62
|
+
/** The registered coding-agent identity that performed the independent review. */
|
|
63
|
+
reviewerAgent: string;
|
|
64
|
+
/** Release intent thread in the git-publishing lane. */
|
|
65
|
+
goThreadId: string;
|
|
66
|
+
/** Message id of the independent GO in git-prs bound to this exact candidate. */
|
|
67
|
+
goMessageId: string;
|
|
68
|
+
/** SHA-256 of the packed release tarball, lowercase hex. */
|
|
69
|
+
packedSha256: string;
|
|
70
|
+
};
|
|
71
|
+
export type ReleaseReviewLinkageInput = {
|
|
72
|
+
tagMessage: string;
|
|
73
|
+
tag: string;
|
|
74
|
+
/** `git cat-file -t refs/tags/<tag>`; must be `tag` for an annotated tag. */
|
|
75
|
+
tagType: string;
|
|
76
|
+
/** `git rev-parse refs/tags/<tag>^{commit}`. */
|
|
77
|
+
tagCommit: string;
|
|
78
|
+
/** The exact checkout being released. */
|
|
79
|
+
releaseCommit: string;
|
|
80
|
+
packageName: string;
|
|
81
|
+
packageVersion: string;
|
|
82
|
+
repositoryUrl: string | undefined;
|
|
83
|
+
repositoryDirectory: string | undefined;
|
|
84
|
+
registry: string | undefined;
|
|
85
|
+
access: string | undefined;
|
|
86
|
+
/** SHA-256 computed from the tarball this checkout packs, when packing ran. */
|
|
87
|
+
packedSha256: string | undefined;
|
|
88
|
+
};
|
|
89
|
+
/** Resolve the semver a release tag carries, or undefined for any other tag. */
|
|
90
|
+
export declare function parseSkillsReleaseTagVersion(tag: string): string | undefined;
|
|
91
|
+
/**
|
|
92
|
+
* Parse the four linkage fields out of the annotated release tag message.
|
|
93
|
+
* Prose (subject and release notes) is allowed; the linkage namespace is not.
|
|
94
|
+
*/
|
|
95
|
+
export declare function parseReleaseReviewLinkage(tagMessage: string): {
|
|
96
|
+
linkage: Partial<ReleaseReviewLinkage>;
|
|
97
|
+
failures: ReleaseReviewLinkageFailure[];
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* The complete preflight: tagged candidate identity, package binding and the
|
|
101
|
+
* packed digest recorded in the tag. Returns every failure it finds so one run
|
|
102
|
+
* names all of them; any failure refuses the release.
|
|
103
|
+
*/
|
|
104
|
+
export declare function validateReleaseReviewLinkage(input: ReleaseReviewLinkageInput): ReleaseReviewLinkageFailure[];
|
|
@@ -62,7 +62,7 @@ export declare function readSkillSessionSnapshot(sessionId: string, options?: Se
|
|
|
62
62
|
export declare function skillSessionSnapshotBinding(snapshot: SkillSessionSnapshot): SkillSessionParentBinding;
|
|
63
63
|
export declare function inspectSessionWriteLock(sessionId: string, options?: SelectionCacheOptions): {
|
|
64
64
|
sessionId: string;
|
|
65
|
-
schemaVersion:
|
|
65
|
+
schemaVersion: 1 | 2;
|
|
66
66
|
pid: number;
|
|
67
67
|
lockSha256: string;
|
|
68
68
|
lockMtime: string;
|