@primitive.ai/prim 0.1.0-alpha.67 → 0.1.0-alpha.69

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.
Files changed (45) hide show
  1. package/README.md +39 -1
  2. package/SKILL.md +1 -1
  3. package/dist/{chunk-XPVNH3J6.js → chunk-2KW7DVFJ.js} +121 -130
  4. package/dist/chunk-3EEFL6NJ.js +529 -0
  5. package/dist/chunk-4A2XB2PC.js +310 -0
  6. package/dist/{chunk-G5D3FF3D.js → chunk-BQUJ4AFJ.js} +1 -83
  7. package/dist/chunk-CUE2LKLR.js +155 -0
  8. package/dist/chunk-FI3LIRCB.js +262 -0
  9. package/dist/{chunk-CPSE3Y3T.js → chunk-H64F6QHV.js} +27 -8
  10. package/dist/chunk-KKP2NYZ3.js +505 -0
  11. package/dist/{chunk-JQFN6LBO.js → chunk-LEMX3IOG.js} +6 -37
  12. package/dist/{chunk-U6L2RU67.js → chunk-LMRYZL3D.js} +52 -45
  13. package/dist/{chunk-XUAP572Z.js → chunk-RO3F6JYV.js} +8 -7
  14. package/dist/{chunk-TDRXHBEX.js → chunk-TJTVHDJ5.js} +41 -18
  15. package/dist/{chunk-TCDUH7AN.js → chunk-WB7AUZ4C.js} +17 -0
  16. package/dist/chunk-XGADQPCI.js +26 -0
  17. package/dist/{chunk-UN5O5SYG.js → chunk-YWO7O6QG.js} +14 -53
  18. package/dist/chunk-Z7YPFWAZ.js +917 -0
  19. package/dist/{chunk-BDGQEJA5.js → chunk-ZOSNEO5N.js} +2 -2
  20. package/dist/daemon/server.js +11804 -470
  21. package/dist/hook-runtime/daemon/server.js +13353 -0
  22. package/dist/hook-runtime/hooks/post-commit.js +1128 -0
  23. package/dist/hook-runtime/hooks/post-rewrite.js +1148 -0
  24. package/dist/hook-runtime/hooks/post-tool-use.js +7586 -0
  25. package/dist/hook-runtime/hooks/pre-commit.js +1314 -0
  26. package/dist/hook-runtime/hooks/pre-tool-use.js +7099 -0
  27. package/dist/hook-runtime/hooks/prim-hook.js +7691 -0
  28. package/dist/hook-runtime/hooks/session-end.js +495 -0
  29. package/dist/hook-runtime/hooks/session-start.js +11284 -0
  30. package/dist/hook-runtime/index.js +42775 -0
  31. package/dist/hook-runtime/statusline-main.js +765 -0
  32. package/dist/hooks/post-commit.js +7 -4
  33. package/dist/hooks/post-rewrite.js +7 -4
  34. package/dist/hooks/post-tool-use.js +64 -32
  35. package/dist/hooks/pre-commit.js +4 -3
  36. package/dist/hooks/pre-tool-use.js +118 -38
  37. package/dist/hooks/prim-hook.js +72 -27
  38. package/dist/hooks/session-end.js +5 -4
  39. package/dist/hooks/session-start.js +36 -25
  40. package/dist/index.js +15039 -2555
  41. package/dist/statusline-main.js +488 -96
  42. package/package.json +11 -5
  43. package/dist/chunk-CZ24W5QU.js +0 -123
  44. package/dist/chunk-RTLFE6EZ.js +0 -518
  45. package/dist/chunk-UTKQTZHL.js +0 -88
@@ -1,88 +0,0 @@
1
- // src/daemon/client.ts
2
- import { createConnection } from "net";
3
- import { homedir } from "os";
4
- import { join } from "path";
5
- var SOCK_PATH = join(homedir(), ".config", "prim", "sock");
6
- var DEFAULT_TIMEOUT_MS = 250;
7
- var nextRequestId = 1;
8
- function daemonRequest(method, params = {}, opts = {}) {
9
- const id = nextRequestId++;
10
- const request = { id, method, params };
11
- const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
12
- return new Promise((resolve) => {
13
- let settled = false;
14
- let socket;
15
- let buffer = "";
16
- const settle = (value) => {
17
- if (settled) {
18
- return;
19
- }
20
- settled = true;
21
- if (socket) {
22
- try {
23
- socket.destroy();
24
- } catch {
25
- }
26
- }
27
- resolve(value);
28
- };
29
- const timer = setTimeout(() => settle(null), timeoutMs);
30
- timer.unref();
31
- try {
32
- socket = createConnection(SOCK_PATH);
33
- } catch {
34
- clearTimeout(timer);
35
- settle(null);
36
- return;
37
- }
38
- socket.on("error", () => {
39
- clearTimeout(timer);
40
- settle(null);
41
- });
42
- socket.on("connect", () => {
43
- try {
44
- socket?.write(`${JSON.stringify(request)}
45
- `);
46
- } catch {
47
- clearTimeout(timer);
48
- settle(null);
49
- }
50
- });
51
- socket.on("data", (chunk) => {
52
- buffer += chunk.toString("utf-8");
53
- const newlineIdx = buffer.indexOf("\n");
54
- if (newlineIdx === -1) {
55
- return;
56
- }
57
- const line = buffer.slice(0, newlineIdx);
58
- try {
59
- const res = JSON.parse(line);
60
- if (res.id !== id) {
61
- clearTimeout(timer);
62
- settle(null);
63
- return;
64
- }
65
- clearTimeout(timer);
66
- settle(res.ok && res.result !== void 0 ? res.result : null);
67
- } catch {
68
- clearTimeout(timer);
69
- settle(null);
70
- }
71
- });
72
- socket.on("end", () => {
73
- if (!settled) {
74
- clearTimeout(timer);
75
- settle(null);
76
- }
77
- });
78
- });
79
- }
80
- async function daemonIsLive(timeoutMs = DEFAULT_TIMEOUT_MS) {
81
- const result = await daemonRequest("ping", {}, { timeoutMs });
82
- return result?.pong === true;
83
- }
84
-
85
- export {
86
- daemonRequest,
87
- daemonIsLive
88
- };