@primitive.ai/prim 0.1.0-alpha.62 → 0.1.0-alpha.64
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/dist/{chunk-QGVHLP5J.js → chunk-7X7SFOPJ.js} +54 -5
- package/dist/{chunk-I3HIPAIR.js → chunk-CPX3BUOC.js} +7 -4
- package/dist/chunk-G5D3FF3D.js +853 -0
- package/dist/{chunk-S4LFRVGD.js → chunk-HIMWM526.js} +1 -1
- package/dist/{chunk-R4CUX6FY.js → chunk-KHZNYEUV.js} +1 -1
- package/dist/{chunk-KBFFVYBC.js → chunk-LNU44OJV.js} +3 -5
- package/dist/{chunk-LOGW54W5.js → chunk-MCPHIB4W.js} +18 -7
- package/dist/{chunk-DA4BMHEB.js → chunk-VYGY3OOX.js} +2 -2
- package/dist/{chunk-YITJ2H3B.js → chunk-WS3MCNFD.js} +1 -1
- package/dist/daemon/server.js +343 -44
- package/dist/hooks/post-commit.js +30 -6
- package/dist/hooks/post-tool-use.js +32 -20
- package/dist/hooks/pre-commit.js +2 -2
- package/dist/hooks/pre-tool-use.js +11 -3
- package/dist/hooks/prim-hook.js +7 -7
- package/dist/hooks/session-start.js +15 -14
- package/dist/index.js +236 -139
- package/dist/statusline-main.js +50 -40
- package/package.json +1 -1
- package/dist/chunk-GF5QII7T.js +0 -411
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
// src/lib/bin-cache.ts
|
|
2
|
-
import { chmodSync, mkdirSync, renameSync, writeFileSync } from "fs";
|
|
3
|
-
import { homedir } from "os";
|
|
4
|
-
import { join as join2 } from "path";
|
|
5
|
-
|
|
6
1
|
// src/lib/bin-path.ts
|
|
7
2
|
import { existsSync, readFileSync } from "fs";
|
|
8
3
|
import { dirname, isAbsolute, join } from "path";
|
|
@@ -76,6 +71,9 @@ function commandMatchesBin(command, bin) {
|
|
|
76
71
|
}
|
|
77
72
|
|
|
78
73
|
// src/lib/bin-cache.ts
|
|
74
|
+
import { chmodSync, mkdirSync, renameSync, writeFileSync } from "fs";
|
|
75
|
+
import { homedir } from "os";
|
|
76
|
+
import { join as join2 } from "path";
|
|
79
77
|
var CACHED_BINS = [
|
|
80
78
|
"prim",
|
|
81
79
|
"prim-hook",
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
getClient,
|
|
9
9
|
withFileLock
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-CPX3BUOC.js";
|
|
11
11
|
|
|
12
12
|
// src/commands/skill.ts
|
|
13
13
|
import { randomUUID } from "crypto";
|
|
@@ -649,6 +649,7 @@ if [ "$(git config --get prim.active 2>/dev/null)" = "true" ]; then
|
|
|
649
649
|
case "$prim_commit_sha" in *[!0-9a-f]*|"") prim_commit_sha= ;; esac
|
|
650
650
|
case "\${#prim_commit_sha}" in 40|64) ;; *) prim_commit_sha= ;; esac
|
|
651
651
|
if [ -n "$prim_commit_sha" ]; then
|
|
652
|
+
prim_commit_observed_file=$(mktemp "\${TMPDIR:-/tmp}/prim-post-commit-observed.XXXXXXXX" 2>/dev/null) || prim_commit_observed_file=
|
|
652
653
|
prim_commit_branch=$(git symbolic-ref --quiet --short HEAD 2>/dev/null) || prim_commit_branch=
|
|
653
654
|
prim_cache_dir="\${XDG_CACHE_HOME:-$HOME/.cache}/prim/bin"
|
|
654
655
|
prim_post_commit_ran=0
|
|
@@ -656,18 +657,23 @@ if [ "$(git config --get prim.active 2>/dev/null)" = "true" ]; then
|
|
|
656
657
|
prim_node=$(cat "$prim_cache_dir/node")
|
|
657
658
|
prim_entry=$(cat "$prim_cache_dir/prim-post-commit")
|
|
658
659
|
if [ -x "$prim_node" ] && [ -f "$prim_entry" ]; then
|
|
659
|
-
( trap '' HUP; export PRIM_COMMIT_SHA="$prim_commit_sha" PRIM_COMMIT_BRANCH="$prim_commit_branch"; "$prim_node" "$prim_entry" ) </dev/null >/dev/null 2>&1 &
|
|
660
|
+
( trap '' HUP; trap 'if [ -n "$prim_commit_observed_file" ]; then rm -f "$prim_commit_observed_file"; fi' 0; export PRIM_COMMIT_SHA="$prim_commit_sha" PRIM_COMMIT_BRANCH="$prim_commit_branch" PRIM_COMMIT_OBSERVED_FILE="$prim_commit_observed_file"; "$prim_node" "$prim_entry" ) </dev/null >/dev/null 2>&1 &
|
|
660
661
|
prim_post_commit_ran=1
|
|
661
662
|
fi
|
|
662
663
|
fi
|
|
663
664
|
if [ "$prim_post_commit_ran" -eq 0 ]; then
|
|
664
665
|
if [ -x "./node_modules/.bin/prim-post-commit" ]; then
|
|
665
|
-
( trap '' HUP; export PRIM_COMMIT_SHA="$prim_commit_sha" PRIM_COMMIT_BRANCH="$prim_commit_branch"; ./node_modules/.bin/prim-post-commit ) </dev/null >/dev/null 2>&1 &
|
|
666
|
+
( trap '' HUP; trap 'if [ -n "$prim_commit_observed_file" ]; then rm -f "$prim_commit_observed_file"; fi' 0; export PRIM_COMMIT_SHA="$prim_commit_sha" PRIM_COMMIT_BRANCH="$prim_commit_branch" PRIM_COMMIT_OBSERVED_FILE="$prim_commit_observed_file"; ./node_modules/.bin/prim-post-commit ) </dev/null >/dev/null 2>&1 &
|
|
667
|
+
prim_post_commit_ran=1
|
|
666
668
|
elif command -v npx >/dev/null 2>&1; then
|
|
667
|
-
( trap '' HUP; export PRIM_COMMIT_SHA="$prim_commit_sha" PRIM_COMMIT_BRANCH="$prim_commit_branch"; npx --yes -p @primitive.ai/prim@latest prim-post-commit ) </dev/null >/dev/null 2>&1 &
|
|
669
|
+
( trap '' HUP; trap 'if [ -n "$prim_commit_observed_file" ]; then rm -f "$prim_commit_observed_file"; fi' 0; export PRIM_COMMIT_SHA="$prim_commit_sha" PRIM_COMMIT_BRANCH="$prim_commit_branch" PRIM_COMMIT_OBSERVED_FILE="$prim_commit_observed_file"; npx --yes -p @primitive.ai/prim@latest prim-post-commit ) </dev/null >/dev/null 2>&1 &
|
|
670
|
+
prim_post_commit_ran=1
|
|
668
671
|
fi
|
|
669
672
|
fi
|
|
670
|
-
|
|
673
|
+
if [ "$prim_post_commit_ran" -eq 0 ] && [ -n "$prim_commit_observed_file" ]; then
|
|
674
|
+
rm -f "$prim_commit_observed_file"
|
|
675
|
+
fi
|
|
676
|
+
unset prim_cache_dir prim_post_commit_ran prim_node prim_entry prim_commit_branch prim_commit_observed_file
|
|
671
677
|
fi
|
|
672
678
|
unset prim_commit_sha
|
|
673
679
|
fi
|
|
@@ -1211,7 +1217,7 @@ function uninstallPostCommitHookAtPath(hookPath) {
|
|
|
1211
1217
|
}
|
|
1212
1218
|
|
|
1213
1219
|
// src/lib/repository-binding.ts
|
|
1214
|
-
async function
|
|
1220
|
+
async function resolveRepositoryBinding(root, options) {
|
|
1215
1221
|
const repositoryFullName = githubRepositoryFullName(root);
|
|
1216
1222
|
if (!repositoryFullName) {
|
|
1217
1223
|
throw new Error("origin must be a GitHub HTTPS/SSH remote in owner/name form");
|
|
@@ -1224,9 +1230,13 @@ async function bindRepository(root, options) {
|
|
|
1224
1230
|
if (!isValidRepoSyncId(response.repoSyncId)) {
|
|
1225
1231
|
throw new Error("server returned no repository binding");
|
|
1226
1232
|
}
|
|
1227
|
-
setRepoSyncId(root, response.repoSyncId);
|
|
1228
1233
|
return { repoSyncId: response.repoSyncId, repositoryFullName };
|
|
1229
1234
|
}
|
|
1235
|
+
async function bindRepository(root, options) {
|
|
1236
|
+
const binding = await resolveRepositoryBinding(root, options);
|
|
1237
|
+
setRepoSyncId(root, binding.repoSyncId);
|
|
1238
|
+
return binding;
|
|
1239
|
+
}
|
|
1230
1240
|
|
|
1231
1241
|
export {
|
|
1232
1242
|
postCommitHookBlock,
|
|
@@ -1235,6 +1245,7 @@ export {
|
|
|
1235
1245
|
inspectEffectivePostCommitHook,
|
|
1236
1246
|
uninstallProjectPostCommitHook,
|
|
1237
1247
|
uninstallPostCommitHookAtPath,
|
|
1248
|
+
resolveRepositoryBinding,
|
|
1238
1249
|
bindRepository,
|
|
1239
1250
|
printJson,
|
|
1240
1251
|
compareSemver,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
analyzeShellTargets,
|
|
3
3
|
extractFileTargets
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-G5D3FF3D.js";
|
|
5
5
|
import {
|
|
6
6
|
canonicalRepositoryPath
|
|
7
7
|
} from "./chunk-XTNMSS4C.js";
|
|
@@ -26,7 +26,7 @@ function preserveHookFileMetadata(payload, resolution) {
|
|
|
26
26
|
return { ...payload, primitive };
|
|
27
27
|
}
|
|
28
28
|
function resolveHookFileRefs(args) {
|
|
29
|
-
const command = args.agent === "claude_code" && args.toolName === "Bash" && args.toolInput && typeof args.toolInput === "object" && typeof args.toolInput.command === "string" ? args.toolInput.command : void 0;
|
|
29
|
+
const command = (args.agent === "claude_code" || args.agent === "codex") && args.toolName === "Bash" && args.toolInput && typeof args.toolInput === "object" && typeof args.toolInput.command === "string" ? args.toolInput.command : void 0;
|
|
30
30
|
const shell = command === void 0 ? void 0 : analyzeShellTargets(command);
|
|
31
31
|
const shellMutation = shell?.mutation === "none" ? "none" : shell?.coverage === "complete" ? "resolved" : shell ? "unresolved" : void 0;
|
|
32
32
|
const readPath = args.agent === "claude_code" && args.toolName === "Read" && args.toolInput && typeof args.toolInput === "object" && typeof args.toolInput.file_path === "string" ? [args.toolInput.file_path] : void 0;
|