@dungle-scrubs/tallow 0.9.6 → 0.9.7

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 (32) hide show
  1. package/dist/cli.js +1 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/config.d.ts +1 -1
  4. package/dist/config.js +1 -1
  5. package/dist/process-cleanup.js +1 -1
  6. package/dist/process-cleanup.js.map +1 -1
  7. package/dist/sdk.d.ts +2 -2
  8. package/dist/sdk.d.ts.map +1 -1
  9. package/dist/sdk.js +32 -26
  10. package/dist/sdk.js.map +1 -1
  11. package/dist/workspace-transition-interactive.js +1 -1
  12. package/dist/workspace-transition-interactive.js.map +1 -1
  13. package/extensions/_shared/__tests__/shell-policy.test.ts +19 -0
  14. package/extensions/_shared/shell-policy.ts +121 -1
  15. package/extensions/command-expansion/index.ts +8 -2
  16. package/extensions/context-fork/frontmatter-index.ts +6 -1
  17. package/extensions/git-status/__tests__/git-status.test.ts +65 -2
  18. package/extensions/git-status/index.ts +268 -98
  19. package/extensions/minimal-skill-display/index.ts +7 -1
  20. package/extensions/read-tool-enhanced/index.ts +7 -2
  21. package/extensions/rewind/__tests__/session-files.test.ts +115 -0
  22. package/extensions/rewind/__tests__/snapshots.test.ts +23 -0
  23. package/extensions/rewind/index.ts +5 -0
  24. package/extensions/rewind/session-files.ts +138 -0
  25. package/extensions/rewind/snapshots.ts +104 -5
  26. package/extensions/skill-commands/index.ts +6 -1
  27. package/extensions/subagent-tool/schema.ts +1 -2
  28. package/extensions/teams-tool/tools/teammate-tools.ts +1 -2
  29. package/extensions/wezterm-pane-control/index.ts +1 -2
  30. package/node_modules/@mariozechner/pi-tui/package.json +1 -1
  31. package/package.json +5 -5
  32. package/skills/tallow-expert/SKILL.md +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-transition-interactive.js","sourceRoot":"","sources":["../src/workspace-transition-interactive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-transition-interactive.js","sourceRoot":"","sources":["../src/workspace-transition-interactive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EACN,+BAA+B,GAI/B,MAAM,2BAA2B,CAAC;AA6DnC,MAAM,iCAAiC,GAA4B;IAClE,eAAe,EAAE,CAAC,GAAW,EAAQ,EAAE;QACtC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,aAAa,EAAE,mBAAmB;IAClC,YAAY,EAAE,mBAAmB;IACjC,YAAY;CACZ,CAAC;AAEF;;;;;GAKG;AACH,KAAK,UAAU,4BAA4B,CAC1C,OAAmC;IAEnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,0CAA0C,EAAE;QAClF,SAAS,OAAO,CAAC,SAAS,EAAE;QAC5B,WAAW,OAAO,CAAC,SAAS,EAAE;KAC9B,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,OAAO,QAAQ,CAAC;IACjB,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,6BAA6B,CAC3C,OAAmC,EACnC,WAA8C;IAE9C,MAAM,WAAW,GAChB,WAAW,KAAK,mBAAmB;QAClC,CAAC,CAAC,kCAAkC;QACpC,CAAC,CAAC,qBAAqB,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,MAAM,CACrC,0BAA0B,OAAO,CAAC,SAAS,KAAK,WAAW,GAAG,EAC9D;QACC,gEAAgE;QAChE,kEAAkE;QAClE,yBAAyB;KACzB,CACD,CAAC;IACF,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC;IACjB,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,mBAAmB,CACjC,OAAmC,EACnC,IAA6B;IAE7B,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1D,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,6BAA6B,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACnF,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,6BAA6B,CACrC,WAAiC,EACjC,eAAiC,EACjC,SAAiB,EACjB,SAAiB;IAEjB,MAAM,WAAW,GAAyB;QACzC,GAAG,WAAW;QACd,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,eAAe,CAAC,KAAK;QAC5B,aAAa,EAAE,eAAe,CAAC,aAAa;KAC5C,CAAC;IACF,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5C,WAAW,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC1C,CAAC;SAAM,CAAC;QACP,WAAW,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAC7D,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,SAAS,yBAAyB,CAAC,IAAyB;IAC3D,4BAA4B,CAAC,IAAI,EAAE;QAClC,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,MAAM,EAAE,sBAAsB;QAC9B,sBAAsB,EAAE,IAAI;KAC5B,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,uBAAuB,CAAC,OAAyB;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IACvC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC9C,OAAO;IACR,CAAC;IACD,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,0BAA0B,CACxC,IAAyB,EACzB,IAAmB,EACnB,iBAA8D;IAE9D,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAA2B,CAAC;IAChD,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,uFAAuF;AACvF,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,OAAyB;IACpD,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;QACpD,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;gBAAE,SAAS;YAEvC,MAAM,OAAO,GAAI,KAAyD,CAAC,OAAO,CAAC;YACnF,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAS;YAEtC,IAAI,IAAY,CAAC;YACjB,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;YACxB,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,IAAI,GAAI,OAAO,CAAC,OAAkD;qBAChE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC;qBACtD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;qBAC1B,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,CAAC;iBAAM,CAAC;gBACP,SAAS;YACV,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,SAAS;YAE3B,IAAI,IAAI,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;gBAC3C,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,eAAe,CAAC;YACjE,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,4DAA4D;IAC7D,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAC/B,OAAmC,EACnC,cAAuB,EACvB,WAAoB;IAOpB,OAAO;QACN,UAAU,EAAE,sBAAsB;QAClC,OAAO,EAAE,+BAA+B,CACvC,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,SAAS,EACjB,cAAc,EACd,WAAW,CACX;QACD,OAAO,EAAE;YACR,IAAI,EAAE,OAAO,CAAC,SAAS;YACvB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,EAAE,EAAE,OAAO,CAAC,SAAS;YACrB,cAAc;SACd;QACD,OAAO,EAAE,IAAI;KACb,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,wBAAwB,CACtC,IAAyB,EACzB,WAAiC,EACjC,OAAmC,EACnC,cAAuB,EACvB,SAAiB,EACjB,iBAA8D,EAC9D,IAA6B;IAE7B,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;IAErC,iFAAiF;IACjF,MAAM,WAAW,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAExD,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QAClC,eAAe,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,+CAA+C,CAAC,CAAC;IAC9E,IAAI,CAAC;QACJ,MAAM,uBAAuB,CAAC,eAAe,CAAC,CAAC;QAC/C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,IAAmB,CAAC;QACxB,IAAI,CAAC;YACJ,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAC9B,6BAA6B,CAAC,WAAW,EAAE,eAAe,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CACzF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC;gBACJ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC;gBACR,+EAA+E;YAChF,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;QACD,MAAM,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAEhE,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QACxF,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;YACxD,IAAI,CAAC,UAAU,CAAC,cAAc,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO;YACN,MAAM,EAAE,WAAW;YACnB,cAAc;SACd,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO;YACN,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC;IACH,CAAC;YAAS,CAAC;QACV,OAAO,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC;IAChC,CAAC;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,wCAAwC,CACvD,IAAyB,EACzB,cAAoC,EACpC,SAAiB,EACjB,iBAA8D,EAC9D,OAAgC,iCAAiC;IAEjE,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAE/B,OAAO;QACN,KAAK,CAAC,iBAAiB,CACtB,OAAmC;YAEnC,IAAI,kBAAkB,EAAE,CAAC;gBACxB,OAAO;oBACN,MAAM,EAAE,aAAa;oBACrB,MAAM,EAAE,sDAAsD;iBAC9D,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC7C,OAAO;oBACN,MAAM,EAAE,WAAW;oBACnB,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,SAAS;iBACzE,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,CAAC;YAC7D,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;YAChC,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAChE,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;gBAC7B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;YAChC,CAAC;YAED,kBAAkB,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC;gBACJ,OAAO,MAAM,wBAAwB,CACpC,IAAI,EACJ,cAAc,EACd,OAAO,EACP,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,IAAI,CACJ,CAAC;YACH,CAAC;oBAAS,CAAC;gBACV,kBAAkB,GAAG,KAAK,CAAC;YAC5B,CAAC;QACF,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -20,7 +20,9 @@ import {
20
20
  isYoloMode,
21
21
  reloadPermissions,
22
22
  resetPermissionCache,
23
+ runCommand,
23
24
  runCommandSync,
25
+ runGitCommand,
24
26
  runGitCommandSync,
25
27
  runShellCommandSync,
26
28
  } from "../shell-policy.js";
@@ -419,6 +421,23 @@ describe("process wrappers", () => {
419
421
  expect(version).toContain("git version");
420
422
  });
421
423
 
424
+ test("runCommand executes allowlisted internal commands asynchronously", async () => {
425
+ const result = await runCommand({
426
+ command: "git",
427
+ args: ["--version"],
428
+ cwd: process.cwd(),
429
+ source: "git-helper",
430
+ timeoutMs: 3000,
431
+ });
432
+ expect(result.ok).toBe(true);
433
+ expect(result.stdout).toContain("git version");
434
+ });
435
+
436
+ test("runGitCommand executes allowlisted internal commands asynchronously", async () => {
437
+ const version = await runGitCommand(["--version"], process.cwd(), 3000);
438
+ expect(version).toContain("git version");
439
+ });
440
+
422
441
  test("commandExistsOnPath checks executables through policy wrapper", () => {
423
442
  expect(commandExistsOnPath("git", process.cwd())).toBe(true);
424
443
  });
@@ -14,7 +14,7 @@
14
14
  * - audit trail recording
15
15
  */
16
16
 
17
- import { spawnSync } from "node:child_process";
17
+ import { execFile, spawnSync } from "node:child_process";
18
18
  import { existsSync, mkdirSync, readFileSync } from "node:fs";
19
19
  import { homedir } from "node:os";
20
20
  import { dirname, isAbsolute, join } from "node:path";
@@ -1106,6 +1106,102 @@ export function runCommandSync(options: RunCommandOptions): ProcessRunResult {
1106
1106
  };
1107
1107
  }
1108
1108
 
1109
+ /**
1110
+ * Run a non-shell process asynchronously with centralized policy and audit logging.
1111
+ *
1112
+ * @param options - Process invocation options
1113
+ * @returns Structured process result including policy-blocked state
1114
+ */
1115
+ export async function runCommand(options: RunCommandOptions): Promise<ProcessRunResult> {
1116
+ const commandLine = [options.command, ...options.args].join(" ").trim();
1117
+ const verdict = evaluateCommand(commandLine, options.source, options.cwd);
1118
+ if (!verdict.allowed) {
1119
+ recordAudit({
1120
+ timestamp: Date.now(),
1121
+ command: verdict.normalizedCommand,
1122
+ source: options.source,
1123
+ trustLevel: verdict.trustLevel,
1124
+ cwd: options.cwd,
1125
+ outcome: "blocked",
1126
+ reason: verdict.reason,
1127
+ });
1128
+ return {
1129
+ ok: false,
1130
+ blocked: true,
1131
+ stdout: "",
1132
+ stderr: "",
1133
+ exitCode: null,
1134
+ reason: verdict.reason,
1135
+ };
1136
+ }
1137
+
1138
+ const timeoutMs = clampTimeout(options.timeoutMs);
1139
+ const startedAt = Date.now();
1140
+
1141
+ return await new Promise((resolve) => {
1142
+ execFile(
1143
+ options.command,
1144
+ [...options.args],
1145
+ {
1146
+ cwd: options.cwd,
1147
+ encoding: "utf-8",
1148
+ timeout: timeoutMs,
1149
+ maxBuffer: options.maxBuffer ?? DEFAULT_MAX_BUFFER,
1150
+ },
1151
+ (error, stdout = "", stderr = "") => {
1152
+ const exitCode = typeof error?.code === "number" ? error.code : 0;
1153
+ const durationMs = Date.now() - startedAt;
1154
+ const normalizedStdout = stdout.toString();
1155
+ const normalizedStderr = stderr.toString();
1156
+ if (error) {
1157
+ const reason =
1158
+ error.killed && error.signal === "SIGTERM"
1159
+ ? `Command timed out after ${timeoutMs}ms`
1160
+ : error.message;
1161
+ recordAudit({
1162
+ timestamp: Date.now(),
1163
+ command: verdict.normalizedCommand,
1164
+ source: options.source,
1165
+ trustLevel: verdict.trustLevel,
1166
+ cwd: options.cwd,
1167
+ outcome: "failed",
1168
+ reason,
1169
+ exitCode: typeof error?.code === "number" ? error.code : null,
1170
+ durationMs,
1171
+ });
1172
+ resolve({
1173
+ ok: false,
1174
+ blocked: false,
1175
+ stdout: normalizedStdout,
1176
+ stderr: normalizedStderr,
1177
+ exitCode: typeof error?.code === "number" ? error.code : null,
1178
+ reason,
1179
+ });
1180
+ return;
1181
+ }
1182
+
1183
+ recordAudit({
1184
+ timestamp: Date.now(),
1185
+ command: verdict.normalizedCommand,
1186
+ source: options.source,
1187
+ trustLevel: verdict.trustLevel,
1188
+ cwd: options.cwd,
1189
+ outcome: "executed",
1190
+ exitCode,
1191
+ durationMs,
1192
+ });
1193
+ resolve({
1194
+ ok: true,
1195
+ blocked: false,
1196
+ stdout: normalizedStdout,
1197
+ stderr: normalizedStderr,
1198
+ exitCode,
1199
+ });
1200
+ }
1201
+ );
1202
+ });
1203
+ }
1204
+
1109
1205
  /**
1110
1206
  * Run a git command through centralized policy and process wrapper.
1111
1207
  *
@@ -1130,6 +1226,30 @@ export function runGitCommandSync(
1130
1226
  return result.stdout.trim();
1131
1227
  }
1132
1228
 
1229
+ /**
1230
+ * Run a git command asynchronously through centralized policy and process wrapper.
1231
+ *
1232
+ * @param args - Git arguments
1233
+ * @param cwd - Working directory
1234
+ * @param timeoutMs - Optional timeout override
1235
+ * @returns Trimmed stdout on success, null otherwise
1236
+ */
1237
+ export async function runGitCommand(
1238
+ args: readonly string[],
1239
+ cwd: string,
1240
+ timeoutMs?: number
1241
+ ): Promise<string | null> {
1242
+ const result = await runCommand({
1243
+ command: "git",
1244
+ args,
1245
+ cwd,
1246
+ source: "git-helper",
1247
+ timeoutMs,
1248
+ });
1249
+ if (!result.ok) return null;
1250
+ return result.stdout.trim();
1251
+ }
1252
+
1133
1253
  /**
1134
1254
  * Check whether an executable exists on PATH using policy-wrapped process execution.
1135
1255
  *
@@ -19,7 +19,7 @@ import * as fs from "node:fs";
19
19
  import * as os from "node:os";
20
20
  import * as path from "node:path";
21
21
  import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
22
- import { loadSkills, stripFrontmatter } from "@mariozechner/pi-coding-agent";
22
+ import { getAgentDir, loadSkills, stripFrontmatter } from "@mariozechner/pi-coding-agent";
23
23
  import { createLazyInitializer } from "../_shared/lazy-init.js";
24
24
  import { isProjectTrusted } from "../_shared/project-trust.js";
25
25
 
@@ -52,7 +52,13 @@ interface CommandExpansionDependencies {
52
52
 
53
53
  /** Default dependency implementation for production runtime. */
54
54
  const DEFAULT_COMMAND_EXPANSION_DEPENDENCIES: CommandExpansionDependencies = {
55
- loadSkills,
55
+ loadSkills: () =>
56
+ loadSkills({
57
+ cwd: process.cwd(),
58
+ agentDir: getAgentDir(),
59
+ skillPaths: [],
60
+ includeDefaults: true,
61
+ }),
56
62
  loadPromptTemplates,
57
63
  };
58
64
 
@@ -297,7 +297,12 @@ export function buildFrontmatterIndex(debugLog?: (msg: string) => void): Frontma
297
297
 
298
298
  // Skills: skill name as-is
299
299
  try {
300
- const { skills } = loadSkills();
300
+ const { skills } = loadSkills({
301
+ cwd: process.cwd(),
302
+ agentDir: getAgentDir(),
303
+ skillPaths: [],
304
+ includeDefaults: true,
305
+ });
301
306
  for (const skill of skills) {
302
307
  maybeAdd(skill.name, skill.filePath);
303
308
  }
@@ -1,9 +1,9 @@
1
1
  import { describe, expect, test } from "bun:test";
2
2
  import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
3
- import gitStatus from "../index.js";
3
+ import gitStatus, { formatStatus, parseGitStatus, parsePullRequestInfo } from "../index.js";
4
4
 
5
5
  describe("git-status extension", () => {
6
- test("registers session_start, tool_result, and session_shutdown handlers", () => {
6
+ test("registers session_start, agent_end, tool_result, and session_shutdown handlers", () => {
7
7
  const events: string[] = [];
8
8
  const pi = {
9
9
  on: (event: string) => {
@@ -13,6 +13,7 @@ describe("git-status extension", () => {
13
13
 
14
14
  gitStatus(pi);
15
15
  expect(events).toContain("session_start");
16
+ expect(events).toContain("agent_end");
16
17
  expect(events).toContain("tool_result");
17
18
  expect(events).toContain("session_shutdown");
18
19
  });
@@ -30,3 +31,65 @@ describe("git-status extension", () => {
30
31
  expect(commands).toHaveLength(0);
31
32
  });
32
33
  });
34
+
35
+ describe("parseGitStatus", () => {
36
+ test("extracts branch, ahead/behind, and dirty state", () => {
37
+ const parsed = parseGitStatus(
38
+ [
39
+ "# branch.oid abcdef",
40
+ "# branch.head main",
41
+ "# branch.upstream origin/main",
42
+ "# branch.ab +2 -3",
43
+ "1 .M N... 100644 100644 100644 abc def file.ts",
44
+ ].join("\n")
45
+ );
46
+
47
+ expect(parsed).toEqual({
48
+ branch: "main",
49
+ dirty: true,
50
+ ahead: 2,
51
+ behind: 3,
52
+ prState: null,
53
+ prNumber: null,
54
+ });
55
+ });
56
+
57
+ test("returns null when branch metadata is missing", () => {
58
+ expect(parseGitStatus("# branch.oid abcdef")).toBeNull();
59
+ });
60
+ });
61
+
62
+ describe("parsePullRequestInfo", () => {
63
+ test("prefers draft state when isDraft is true", () => {
64
+ expect(parsePullRequestInfo('{"number":42,"isDraft":true,"state":"OPEN"}')).toEqual({
65
+ prState: "draft",
66
+ prNumber: 42,
67
+ });
68
+ });
69
+
70
+ test("normalizes regular PR state values", () => {
71
+ expect(parsePullRequestInfo('{"number":42,"state":"OPEN"}')).toEqual({
72
+ prState: "open",
73
+ prNumber: 42,
74
+ });
75
+ });
76
+ });
77
+
78
+ describe("formatStatus", () => {
79
+ test("includes dirty, ahead/behind, and PR metadata", () => {
80
+ const formatted = formatStatus({
81
+ branch: "main",
82
+ dirty: true,
83
+ ahead: 1,
84
+ behind: 2,
85
+ prState: "draft",
86
+ prNumber: 42,
87
+ });
88
+
89
+ expect(formatted).toContain("main");
90
+ expect(formatted).toContain("*");
91
+ expect(formatted).toContain("↑1");
92
+ expect(formatted).toContain("↓2");
93
+ expect(formatted).toContain("PR#42(draft)");
94
+ });
95
+ });