@tokmizer/plugin 0.9.71 → 1.0.0

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 (51) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/command-templates/tkr-compression.md +1 -0
  4. package/command-templates/tkr-gain.md +1 -0
  5. package/command-templates/tkr-link.md +2 -1
  6. package/command-templates/tkr-status.md +1 -0
  7. package/command-templates/tkr-telemetry.md +1 -0
  8. package/command-templates/tkr-unlink.md +1 -0
  9. package/command-templates/tkr-update.md +1 -0
  10. package/command-templates/tkr-yolo.md +1 -0
  11. package/command-templates/tkr.md +1 -0
  12. package/dist/bin/tkr-agent-hook.js +13 -13
  13. package/dist/bin/tkr-codex-hook.js +77 -77
  14. package/dist/bin/tkr-context-hook.js +2 -2
  15. package/dist/bin/tkr-copilot-hook.js +12 -12
  16. package/dist/bin/tkr-crush-hook.js +12 -12
  17. package/dist/bin/tkr-cursor-hook.js +12 -12
  18. package/dist/bin/tkr-daemon.js +148 -142
  19. package/dist/bin/tkr-droid-hook.js +12 -12
  20. package/dist/bin/tkr-exec +0 -0
  21. package/dist/bin/tkr-exec.js +87 -84
  22. package/dist/bin/tkr-gemini-hook.js +12 -12
  23. package/dist/bin/tkr-grok-hook.js +12 -12
  24. package/dist/bin/tkr-junie-hook.js +12 -12
  25. package/dist/bin/tkr-processor.js +106 -103
  26. package/dist/bin/tkr-qwen-hook.js +12 -12
  27. package/dist/bin/tkr-shim.js +91 -87
  28. package/dist/bin/tkr-trae-hook.js +12 -12
  29. package/dist/bin/tkr-zcode-hook.js +12 -12
  30. package/dist/bin/tkr.js +280 -286
  31. package/dist/hooks-host/command-expansion.js +1 -1
  32. package/dist/hooks-host/post-tool-use.js +101 -98
  33. package/dist/hooks-host/pre-tool-use.js +13 -13
  34. package/dist/hooks-host/reducer-prompt-submit.js +2 -2
  35. package/dist/hooks-host/reducer-session-start.js +2 -2
  36. package/dist/hooks-host/reducer-stop.js +24 -24
  37. package/dist/hooks-host/session-recap.js +5 -5
  38. package/dist/index.js +105 -102
  39. package/dist/native/manifest.json +12 -12
  40. package/dist/native/single.json +12 -12
  41. package/dist/native/tkr-exec-darwin-arm64 +0 -0
  42. package/dist/native/tkr-exec-darwin-x64 +0 -0
  43. package/dist/native/tkr-exec-linux-arm64 +0 -0
  44. package/dist/native/tkr-exec-linux-x64 +0 -0
  45. package/dist/native/tkr-exec-win32-arm64.exe +0 -0
  46. package/dist/native/tkr-exec-win32-x64.exe +0 -0
  47. package/hooks/on-session-start.mjs +4 -2
  48. package/package.json +7 -7
  49. package/scripts/README-INSTALL.md +8 -0
  50. package/scripts/install-mac-linux.sh +3 -3
  51. package/scripts/install-windows.ps1 +0 -7
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
3
- import{spawnSync as S}from"node:child_process";import{dirname as w,join as O}from"node:path";import{fileURLToPath as E}from"node:url";import{realpathSync as u}from"node:fs";import{fileURLToPath as k,pathToFileURL as h}from"node:url";var a=null;function l(r,o,t){if(t!==void 0&&a===t)return!0;if(a!==null||!r)return!1;if(o===h(r).href)return!0;try{return u(r)===u(k(o))}catch{return!1}}import{basename as g}from"node:path";var x={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},y={codex:"tkr-codex-hook",cursor:"tkr-cursor-hook",gemini:"tkr-gemini-hook",agent:"tkr-agent-hook",copilot:"tkr-copilot-hook",droid:"tkr-droid-hook",trae:"tkr-trae-hook",qwen:"tkr-qwen-hook",crush:"tkr-crush-hook",junie:"tkr-junie-hook",zcode:"tkr-zcode-hook",grok:"tkr-grok-hook",context:"tkr-context-hook","pre-tool-use":"pre-tool-use","post-tool-use":"post-tool-use","session-recap":"session-recap","session-start":"on-session-start","reducer-session-start":"reducer-session-start","reducer-prompt-submit":"reducer-prompt-submit","reducer-stop":"reducer-stop","command-expansion":"command-expansion"};function p(r){let o=g(r).replace(/\.(m?js|ts)$/,"");if(o==="tkr")return[];for(let[t,e]of Object.entries(x))if(e===o)return[t];for(let[t,e]of Object.entries(y))if(e===o)return["hook",t];return null}function b(){return!1}function m(r,o=process.execPath){let t=b()?p(r):null;return t?[process.execPath,...t]:[o,r]}function f(r=5e3){return new Promise(o=>{let t=[],e=process.stdin,n=!1,s=()=>{n||(n=!0,clearTimeout(d),e.off("data",c),e.pause(),e.unref?.(),o(Buffer.concat(t).toString("utf8")))},c=i=>{t.push(Buffer.isBuffer(i)?i:Buffer.from(i))},d=setTimeout(s,r);e.on("data",c).once("end",s).once("error",s),e.resume()})}var _=/^[A-Za-z0-9._~/:-]{1,64}$/,P={"tkr-gain":{base:["gain"],args:r=>r},"tkr-status":{base:["status"],args:r=>r.length?null:[]},"tkr-telemetry":{base:["telemetry"],args:r=>r.length===0?["status"]:r.length===1&&r[0]==="status"?r:null},"tkr-compression":{base:["compression"],args:r=>r.length?null:[]},"tkr-yolo":{base:["yolo"],args:r=>r.length===0?["status"]:r.length===1&&r[0]==="status"?r:null}};function v(r,o){if(typeof r!="string")return null;let t=P[r.replace(/^[^:]+:/,"")];if(!t)return null;let e=typeof o=="string"&&o.trim()?o.trim().split(/\s+/):[];if(!e.every(s=>_.test(s)))return null;let n=t.args(e);return n?[...t.base,...n]:null}function R(r){return JSON.stringify({decision:"block",reason:r.replace(/\s+$/,""),hookSpecificOutput:{hookEventName:"UserPromptExpansion",suppressOriginalPrompt:!0}})}async function j(){let r;try{r=JSON.parse(await f())}catch{return}if(r.hook_event_name!=="UserPromptExpansion")return;let o=v(r.command_name,r.command_args);if(!o)return;let[t,...e]=m(O(w(E(import.meta.url)),"..","bin","tkr.js")),n=S(t,[...e,...o],{encoding:"utf8",timeout:8e3,env:{...process.env,NO_COLOR:"1",FORCE_COLOR:"0"},stdio:["ignore","pipe","pipe"]});n.error||n.status!==0||!n.stdout.trim()||process.stdout.write(R(n.stdout))}var N=process.argv[1]??"";l(N,import.meta.url,"command-expansion")&&j().catch(()=>{process.exit(0)});export{R as blockWithOutput,v as commandFor};
3
+ import{spawnSync as S}from"node:child_process";import{dirname as w,join as O}from"node:path";import{fileURLToPath as E}from"node:url";import{realpathSync as u}from"node:fs";import{fileURLToPath as k,pathToFileURL as h}from"node:url";var a=null;function l(r,o,t){if(t!==void 0&&a===t)return!0;if(a!==null||!r)return!1;if(o===h(r).href)return!0;try{return u(r)===u(k(o))}catch{return!1}}import{basename as g}from"node:path";var x={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},y={codex:"tkr-codex-hook",cursor:"tkr-cursor-hook",gemini:"tkr-gemini-hook",agent:"tkr-agent-hook",copilot:"tkr-copilot-hook",droid:"tkr-droid-hook",trae:"tkr-trae-hook",qwen:"tkr-qwen-hook",crush:"tkr-crush-hook",junie:"tkr-junie-hook",zcode:"tkr-zcode-hook",grok:"tkr-grok-hook",context:"tkr-context-hook","pre-tool-use":"pre-tool-use","post-tool-use":"post-tool-use","session-recap":"session-recap","session-start":"on-session-start","reducer-session-start":"reducer-session-start","reducer-prompt-submit":"reducer-prompt-submit","reducer-stop":"reducer-stop","command-expansion":"command-expansion"};function p(r){let o=g(r).replace(/\.(m?js|ts)$/,"");if(o==="tkr")return[];for(let[t,e]of Object.entries(x))if(e===o)return[t];for(let[t,e]of Object.entries(y))if(e===o)return["hook",t];return null}function b(){return!1}function m(r,o=process.execPath){let t=b()?p(r):null;return t?[process.execPath,...t]:[o,r]}function f(r=3e3){return new Promise(o=>{let t=[],e=process.stdin,n=!1,s=()=>{n||(n=!0,clearTimeout(d),e.off("data",c),e.pause(),e.unref?.(),o(Buffer.concat(t).toString("utf8")))},c=i=>{t.push(Buffer.isBuffer(i)?i:Buffer.from(i))},d=setTimeout(s,r);e.on("data",c).once("end",s).once("error",s),e.resume()})}var _=/^[A-Za-z0-9._~/:-]{1,64}$/,P={"tkr-gain":{base:["gain"],args:r=>r},"tkr-status":{base:["status"],args:r=>r.length?null:[]},"tkr-telemetry":{base:["telemetry"],args:r=>r.length===0?["status"]:r.length===1&&r[0]==="status"?r:null},"tkr-compression":{base:["compression"],args:r=>r.length?null:[]},"tkr-yolo":{base:["yolo"],args:r=>r.length===0?["status"]:r.length===1&&r[0]==="status"?r:null}};function v(r,o){if(typeof r!="string")return null;let t=P[r.replace(/^[^:]+:/,"")];if(!t)return null;let e=typeof o=="string"&&o.trim()?o.trim().split(/\s+/):[];if(!e.every(s=>_.test(s)))return null;let n=t.args(e);return n?[...t.base,...n]:null}function R(r){return JSON.stringify({decision:"block",reason:r.replace(/\s+$/,""),hookSpecificOutput:{hookEventName:"UserPromptExpansion",suppressOriginalPrompt:!0}})}async function j(){let r;try{r=JSON.parse(await f())}catch{return}if(r.hook_event_name!=="UserPromptExpansion")return;let o=v(r.command_name,r.command_args);if(!o)return;let[t,...e]=m(O(w(E(import.meta.url)),"..","bin","tkr.js")),n=S(t,[...e,...o],{encoding:"utf8",timeout:8e3,env:{...process.env,NO_COLOR:"1",FORCE_COLOR:"0"},stdio:["ignore","pipe","pipe"]});n.error||n.status!==0||!n.stdout.trim()||process.stdout.write(R(n.stdout))}var N=process.argv[1]??"";l(N,import.meta.url,"command-expansion")&&j().catch(()=>{process.exit(0)});export{R as blockWithOutput,v as commandFor};