@primitive.ai/prim 0.1.0-alpha.93 → 0.1.0-alpha.94
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 +50 -8
- package/SKILL.md +5 -2
- package/dist/{chunk-X64HTHUF.js → chunk-AXQQMX2U.js} +200 -8
- package/dist/chunk-FXF4JWK2.js +162 -0
- package/dist/{chunk-C3VAA5CG.js → chunk-IMK4JKTA.js} +1 -1
- package/dist/{chunk-36TWVNBE.js → chunk-O7YAW7G6.js} +1 -1
- package/dist/{chunk-DCJN6LZH.js → chunk-WUXFLE7X.js} +684 -365
- package/dist/hook-runtime/hooks/post-commit.js +154 -38
- package/dist/hook-runtime/hooks/post-tool-use.js +55 -5
- package/dist/hook-runtime/hooks/pre-tool-use.js +55 -5
- package/dist/hook-runtime/hooks/prim-hook.js +55 -5
- package/dist/hook-runtime/hooks/session-end.js +53 -5
- package/dist/hook-runtime/hooks/session-start.js +843 -277
- package/dist/hook-runtime/index.js +2709 -1880
- package/dist/hooks/post-commit.js +4 -0
- package/dist/hooks/post-tool-use.js +3 -3
- package/dist/hooks/pre-tool-use.js +3 -3
- package/dist/hooks/prim-hook.js +3 -3
- package/dist/hooks/session-end.js +2 -2
- package/dist/hooks/session-start.js +28 -14
- package/dist/index.js +553 -339
- package/package.json +1 -1
|
@@ -426,6 +426,13 @@ function shellQuote(value) {
|
|
|
426
426
|
}
|
|
427
427
|
var STABLE_HOOK_ARGUMENTS_RE = /^[-A-Za-z0-9_ ]*$/u;
|
|
428
428
|
var STABLE_HOOK_BIN_RE = /^[A-Za-z0-9][A-Za-z0-9-]*$/u;
|
|
429
|
+
var PRIM_CONFIG_SHELL_RESOLVER = [
|
|
430
|
+
'prim_absolute() { case "$1" in [/]* ) ;; *) return 1 ;; esac; case "$1" in [[:space:]]*|*[[:space:]]|*[/][/]*|*[/].[/]*|*[/]..[/]*|*[/].|*[/]..|?*[/]) return 1 ;; esac; }; ',
|
|
431
|
+
'prim_config=${PRIM_CONFIG_DIR:-}; if ! prim_absolute "$prim_config"; then prim_config=${XDG_CONFIG_HOME:-}; if prim_absolute "$prim_config"; then ',
|
|
432
|
+
'case "$prim_config" in /) prim_config=/prim ;; *) prim_config="$prim_config/prim" ;; esac; ',
|
|
433
|
+
'else prim_home=${HOME:-}; prim_absolute "$prim_home" || exit 78; case "$prim_home" in /) prim_config=/.config/prim ;; *) prim_config="$prim_home/.config/prim" ;; esac; ',
|
|
434
|
+
"fi; fi; "
|
|
435
|
+
].join("");
|
|
429
436
|
function stableHookCommand(bin, args = "") {
|
|
430
437
|
if (!STABLE_HOOK_BIN_RE.test(bin) || !STABLE_HOOK_ARGUMENTS_RE.test(args)) {
|
|
431
438
|
throw new Error("invalid stable hook command");
|
|
@@ -435,11 +442,7 @@ function stableHookCommand(bin, args = "") {
|
|
|
435
442
|
// it as inert data during the rolling window so an older uninstall or
|
|
436
443
|
// reinstall can remove the stable entry without invoking npm or PATH.
|
|
437
444
|
`prim_legacy_reader='-p ${PKG_NAME}@stable prim-shim.sh ${bin} '; `,
|
|
438
|
-
|
|
439
|
-
'prim_config=${PRIM_CONFIG_DIR:-}; if ! prim_absolute "$prim_config"; then prim_config=${XDG_CONFIG_HOME:-}; if prim_absolute "$prim_config"; then ',
|
|
440
|
-
'case "$prim_config" in /) prim_config=/prim ;; *) prim_config="$prim_config/prim" ;; esac; ',
|
|
441
|
-
'else prim_home=${HOME:-}; prim_absolute "$prim_home" || exit 78; case "$prim_home" in /) prim_config=/.config/prim ;; *) prim_config="$prim_home/.config/prim" ;; esac; ',
|
|
442
|
-
"fi; fi; ",
|
|
445
|
+
PRIM_CONFIG_SHELL_RESOLVER,
|
|
443
446
|
`case "$prim_config" in /) prim_launcher=/${STABLE_HOOK_LAUNCHER_NAME} ;; *) prim_launcher="$prim_config/${STABLE_HOOK_LAUNCHER_NAME}" ;; esac; `,
|
|
444
447
|
'exec "$prim_launcher" "$@"'
|
|
445
448
|
].join("");
|
|
@@ -478,6 +481,51 @@ import { existsSync as existsSync2, mkdirSync as mkdirSync2, readFileSync as rea
|
|
|
478
481
|
import { dirname as dirname3, join as join5 } from "path";
|
|
479
482
|
var syncSleeper = new Int32Array(new SharedArrayBuffer(Int32Array.BYTES_PER_ELEMENT));
|
|
480
483
|
|
|
484
|
+
// src/lib/git-hook-contract.ts
|
|
485
|
+
var GIT_HOOK_ENTRYPOINT_CONTENT = `#!/bin/sh
|
|
486
|
+
# prim git hook entrypoint v1 \u2014 managed by prim; do not edit.
|
|
487
|
+
# Run by the "# >>> prim <hook> hook >>>" block in a Git hook file. Acts only
|
|
488
|
+
# where prim is active (git config prim.active true) and never fails the hook.
|
|
489
|
+
case "$0" in */*) prim_dir=\${0%/*} ;; *) exit 0 ;; esac
|
|
490
|
+
prim_launcher="$prim_dir/${STABLE_HOOK_LAUNCHER_NAME}"
|
|
491
|
+
[ -x "$prim_launcher" ] || exit 0
|
|
492
|
+
[ "$(git config --get prim.active 2>/dev/null)" = "true" ] || exit 0
|
|
493
|
+
prim_hook=\${1-}
|
|
494
|
+
if [ "$#" -gt 0 ]; then shift; fi
|
|
495
|
+
case "$prim_hook" in
|
|
496
|
+
pre-commit)
|
|
497
|
+
"$prim_launcher" prim-pre-commit "$@" || :
|
|
498
|
+
;;
|
|
499
|
+
post-commit)
|
|
500
|
+
prim_sha=$(git rev-parse --verify HEAD 2>/dev/null) || exit 0
|
|
501
|
+
case "$prim_sha" in *[!0-9a-f]* | "") exit 0 ;; esac
|
|
502
|
+
case "\${#prim_sha}" in 40 | 64) ;; *) exit 0 ;; esac
|
|
503
|
+
prim_branch=$(git symbolic-ref --quiet --short HEAD 2>/dev/null) || prim_branch=
|
|
504
|
+
prim_observed=$(mktemp "\${TMPDIR:-/tmp}/prim-post-commit-observed.XXXXXXXX" 2>/dev/null) || prim_observed=
|
|
505
|
+
(
|
|
506
|
+
trap '' HUP
|
|
507
|
+
trap 'if [ -n "$prim_observed" ]; then rm -f "$prim_observed"; fi' 0
|
|
508
|
+
PRIM_COMMIT_SHA=$prim_sha PRIM_COMMIT_BRANCH=$prim_branch PRIM_COMMIT_OBSERVED_FILE=$prim_observed "$prim_launcher" prim-post-commit
|
|
509
|
+
) </dev/null >/dev/null 2>&1 &
|
|
510
|
+
;;
|
|
511
|
+
post-rewrite)
|
|
512
|
+
case "\${1-}" in amend | rebase) prim_source=$1 ;; *) exit 0 ;; esac
|
|
513
|
+
prim_pairs=$(mktemp "\${TMPDIR:-/tmp}/prim-post-rewrite-pairs.XXXXXXXX" 2>/dev/null) || exit 0
|
|
514
|
+
if ! chmod 600 "$prim_pairs" 2>/dev/null || ! cat >"$prim_pairs"; then
|
|
515
|
+
rm -f "$prim_pairs"
|
|
516
|
+
exit 0
|
|
517
|
+
fi
|
|
518
|
+
prim_branch=$(git symbolic-ref --quiet --short HEAD 2>/dev/null) || prim_branch=
|
|
519
|
+
(
|
|
520
|
+
trap '' HUP
|
|
521
|
+
trap 'rm -f "$prim_pairs"' 0
|
|
522
|
+
PRIM_REWRITE_SOURCE=$prim_source PRIM_REWRITE_BRANCH=$prim_branch PRIM_REWRITE_PAIRS_FILE=$prim_pairs "$prim_launcher" prim-post-rewrite
|
|
523
|
+
) </dev/null >/dev/null 2>&1 &
|
|
524
|
+
;;
|
|
525
|
+
esac
|
|
526
|
+
exit 0
|
|
527
|
+
`;
|
|
528
|
+
|
|
481
529
|
// src/lib/hook-runtime.ts
|
|
482
530
|
var RELEASE_PREFIX = "release-";
|
|
483
531
|
var MAX_MANIFEST_BYTES = 64 * 1024;
|