@jaybeeuu/agent-cortex 1.20.0 → 1.37.1

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/.agents/skills/style-versioning/SKILL.md +101 -0
  2. package/.changeset/README.md +8 -0
  3. package/.changeset/config.json +11 -0
  4. package/.github/workflows/ci.yml +39 -0
  5. package/.github/workflows/release.yml +58 -0
  6. package/AGENTS.md +4 -18
  7. package/CHANGELOG.md +77 -5
  8. package/extensions/session-start.ts +1 -1
  9. package/extensions/skill-stats/context-loader.test.ts +1 -1
  10. package/extensions/skill-stats/node_modules/.bin/pi +21 -0
  11. package/extensions/skill-stats/node_modules/.bin/tsc +21 -0
  12. package/extensions/skill-stats/node_modules/.bin/tsserver +21 -0
  13. package/extensions/skill-stats/node_modules/.bin/tsx +21 -0
  14. package/package.json +6 -5
  15. package/plugin.json +1 -1
  16. package/pnpm-workspace.yaml +1 -0
  17. package/scripts/publish-release.sh +32 -0
  18. package/scripts/sync-plugin-version.sh +17 -0
  19. package/.beads/README.md +0 -81
  20. package/.beads/config.yaml +0 -1
  21. package/.beads/issues.jsonl +0 -236
  22. package/.beads/metadata.json +0 -7
  23. package/.github/workflows/publish.yml +0 -36
  24. package/docs/ideas/auto-model-selection.md +0 -75
  25. package/docs/ideas/improve-pi-system-prompt.md +0 -34
  26. package/docs/ideas/model-selector.md +0 -40
  27. package/docs/ideas/pi-task-memory.md +0 -34
  28. package/docs/ideas/qa-extension.md +0 -43
  29. package/skills/workflow/using-agent-skills/SKILL.md +0 -109
  30. package/skills/workflow/using-agent-skills/scripts/validate-skill-structure.test.ts +0 -73
  31. /package/extensions/{context-loader.md → lib/context-loader.md} +0 -0
  32. /package/extensions/{context-loader.ts → lib/context-loader.ts} +0 -0
@@ -0,0 +1,101 @@
1
+ ---
2
+ name: style-versioning
3
+ description: Automated release workflow using changesets. Use when completing work that needs a release, asking "how do I version this?", or when any change needs to be shipped to npm.
4
+ ---
5
+
6
+ # style-versioning
7
+
8
+ This repo uses **changesets** for fully automated versioning and publishing. No manual version bumps, no manual releases.
9
+
10
+ ## When to use
11
+
12
+ Trigger this skill when:
13
+ - Completing work that needs a release
14
+ - Asking "how do I version this change?"
15
+ - Creating a PR that changes shipped behaviour
16
+
17
+ ## Creating a changeset (agent instructions)
18
+
19
+ **Do NOT run `pnpm changeset`** — it is interactive and will waste tokens on prompts and ANSI codes. Instead, write the changeset file directly.
20
+
21
+ ### File format
22
+
23
+ A changeset is a markdown file in `.changeset/` with YAML frontmatter:
24
+
25
+ ```markdown
26
+ ---
27
+ "@jaybeeuu/agent-cortex": <bump>
28
+ ---
29
+
30
+ <Short description of the change>
31
+ ```
32
+
33
+ Where `<bump>` is one of: `patch`, `minor`, or `major`.
34
+
35
+ ### How to create one
36
+
37
+ 1. Choose a descriptive kebab-case filename (e.g., `fix-status-bug.md`, `add-webhook-skill.md`)
38
+ 2. Choose the bump type:
39
+ - `patch` — bug fix, clarification, no behaviour change
40
+ - `minor` — new skill, agent, feature, or meaningful behaviour change
41
+ - `major` — breaking change (removed skill, renamed agent, incompatible workflow)
42
+ 3. Write the file directly using the `write` tool:
43
+
44
+ ```
45
+ write(".changeset/fix-status-bug.md", `---
46
+ "@jaybeeuu/agent-cortex": patch
47
+ ---
48
+
49
+ Fix status bead showing wrong priority after update
50
+ `)
51
+ ```
52
+
53
+ 4. Commit the changeset file along with the code changes
54
+
55
+ ### Rules
56
+
57
+ - The frontmatter package name must match exactly: `"@jaybeeuu/agent-cortex"`
58
+ - The description should be one or two sentences, user-facing (it goes into CHANGELOG.md)
59
+ - One changeset per PR. If a PR has multiple unrelated changes, use multiple changeset files.
60
+ - The filename doesn't matter to changesets — only the frontmatter and description do.
61
+
62
+ ## After merge to main
63
+
64
+ The `release.yml` workflow handles everything automatically:
65
+
66
+ 1. **Detects new changesets** on main
67
+ 2. **Creates or updates a "Version Packages" PR** with bumped versions and updated CHANGELOG
68
+ 3. **When "Version Packages" is merged**:
69
+ - Bumps `package.json` version
70
+ - Syncs `plugin.json` version (via `scripts/sync-plugin-version.sh`)
71
+ - Updates `CHANGELOG.md`
72
+ - Creates a git tag
73
+ - Publishes to npm via OIDC (no `NPM_TOKEN` needed)
74
+ - Creates a GitHub release automatically
75
+
76
+ ### Version lockstep
77
+
78
+ All version numbers stay in lockstep automatically:
79
+
80
+ 1. `package.json` → bumped by changesets
81
+ 2. `plugin.json` → synced by `scripts/sync-plugin-version.sh`
82
+ 3. `CHANGELOG.md` → generated by changesets
83
+
84
+ **Never bump versions manually.** Always create a changeset file.
85
+
86
+ ## Common mistakes
87
+
88
+ - **Running `pnpm changeset`**: Interactive, wastes tokens. Write the file directly.
89
+ - **Bumping versions manually**: Don't touch `"version"` in `package.json` or `plugin.json`. Create a changeset.
90
+ - **Skipping the changeset**: A PR without a changeset won't trigger a release. The changesets bot will remind you.
91
+ - **Wrong bump type**: `patch` for fixes, `minor` for additions, `major` for breakage. When in doubt, ask the user.
92
+ - **Wrong package name in frontmatter**: Must be `"@jaybeeuu/agent-cortex"` exactly.
93
+
94
+ ## What changed from the old workflow
95
+
96
+ | Before (manual) | After (changesets) |
97
+ |---|---|
98
+ | Agent bumps versions locally | Agent writes a changeset file |
99
+ | Manual GitHub release creation | Automated via `release.yml` |
100
+ | `publish.yml` triggered by release | `release.yml` triggered by push to main |
101
+ | Version sync was manual | `sync-plugin-version.sh` runs automatically |
@@ -0,0 +1,8 @@
1
+ # Changesets
2
+
3
+ Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
4
+ with multi-package repos, or single-package repos to help you version and publish your code. You can
5
+ find the full documentation for it [in our repository](https://github.com/changesets/changesets).
6
+
7
+ We have a quick list of common questions to get you started engaging with this project in
8
+ [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md).
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "https://unpkg.com/@changesets/config@3.1.4/schema.json",
3
+ "changelog": "@changesets/cli/changelog",
4
+ "commit": false,
5
+ "fixed": [],
6
+ "linked": [],
7
+ "access": "public",
8
+ "baseBranch": "main",
9
+ "updateInternalDependencies": "patch",
10
+ "ignore": []
11
+ }
@@ -7,6 +7,45 @@ on:
7
7
  pull_request:
8
8
 
9
9
  jobs:
10
+ changeset:
11
+ name: Changeset check
12
+ if: github.event_name == 'pull_request'
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - name: Checkout
16
+ uses: actions/checkout@v4
17
+ with:
18
+ fetch-depth: 0
19
+ - name: Check for changeset
20
+ env:
21
+ BASE_REF: ${{ github.event.pull_request.base.ref }}
22
+ run: |
23
+ # Paths that require a changeset when modified
24
+ VERSIONED_PATHS='extensions/\|skills/\|agents/\|package.json\|plugin.json'
25
+
26
+ changed=$(git diff --name-only "origin/${BASE_REF}...HEAD")
27
+ echo "Changed files:"
28
+ echo "$changed"
29
+
30
+ versioned=$(echo "$changed" | grep -E "$VERSIONED_PATHS" || true)
31
+ if [ -z "$versioned" ]; then
32
+ echo "No versioned paths changed — skipping changeset check."
33
+ exit 0
34
+ fi
35
+
36
+ changesets=$(echo "$changed" | grep -E '^\.changeset/.*\.md$' | grep -v 'README.md' || true)
37
+ if [ -z "$changesets" ]; then
38
+ echo ""
39
+ echo "::error::This PR modifies versioned paths but does not include a changeset."
40
+ echo "Run 'pnpm changeset' to add one. See: style-versioning skill."
41
+ echo ""
42
+ echo "Versioned paths changed:"
43
+ echo "$versioned"
44
+ exit 1
45
+ fi
46
+
47
+ echo "Changeset found: $changesets"
48
+
10
49
  checks:
11
50
  runs-on: ubuntu-latest
12
51
  steps:
@@ -0,0 +1,58 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ concurrency: ${{ github.workflow }}-${{ github.ref }}
9
+
10
+ jobs:
11
+ release:
12
+ name: Release
13
+ runs-on: ubuntu-latest
14
+ permissions:
15
+ contents: write
16
+ pull-requests: write
17
+ id-token: write
18
+ steps:
19
+ - name: Checkout
20
+ uses: actions/checkout@v4
21
+ with:
22
+ fetch-depth: 0
23
+
24
+ - name: Setup Node
25
+ uses: actions/setup-node@v6
26
+ with:
27
+ node-version: 24
28
+
29
+ - name: Setup pnpm
30
+ uses: pnpm/action-setup@v4
31
+ with:
32
+ version: 10
33
+
34
+ - name: Install dependencies
35
+ run: pnpm install --frozen-lockfile
36
+
37
+ # changesets/action is used ONLY to version packages and open/update
38
+ # the "Version Packages" PR. We deliberately do NOT pass a publish
39
+ # script here - changesets/action does not propagate the OIDC env vars
40
+ # (ACTIONS_ID_TOKEN_REQUEST_URL / _TOKEN) to the spawned npm process,
41
+ # so npm publish would fail with ENEEDAUTH. Publishing happens in a
42
+ # separate top-level step below where env vars flow through cleanly.
43
+ - name: Create Version Packages PR
44
+ id: changesets
45
+ uses: changesets/action@v1
46
+ with:
47
+ version: pnpm version-packages
48
+ commit: "chore: version packages"
49
+ title: "chore: version packages"
50
+ env:
51
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
52
+
53
+ # When there are no changesets (i.e. the "Version Packages" PR was
54
+ # merged), changesets/action does nothing - so we publish directly.
55
+ # NOTE: @v1 (v1.9.0) exposes the output as 'hasChangesets' (camelCase).
56
+ - name: Publish to npm
57
+ if: steps.changesets.outputs.hasChangesets == 'false'
58
+ run: bash scripts/publish-release.sh
package/AGENTS.md CHANGED
@@ -32,27 +32,13 @@ agent-cortex/
32
32
 
33
33
  ## Versioning
34
34
 
35
- **Always bump `plugin.json` version** when making any change to agents or skills. Follow
36
- semantic versioning:
37
-
38
- | Change type | Bump |
39
- |---|---|
40
- | New skill or agent added | `minor` |
41
- | Existing skill or agent meaningfully changed (new behaviour, new steps, restructured workflow) | `minor` |
42
- | Bug fix or clarification with no behaviour change | `patch` |
43
- | Breaking change (removed skill, renamed agent, incompatible workflow change) | `major` |
44
-
45
- The version bump must be included in the same commit as the change — do not leave it for a
46
- follow-up commit.
35
+ Use `pnpm changeset` for all version bumps. Never edit versions manually.
36
+ `package.json`, `plugin.json`, and `CHANGELOG.md` stay in lockstep automatically.
37
+ See the `style-versioning` skill for the full workflow.
47
38
 
48
39
  ## Changelog
49
40
 
50
- - Keep a root `CHANGELOG.md` for repository changes.
51
- - When making any repo change (agents, skills, docs, scripts, or workflow rules), update
52
- `CHANGELOG.md` in the same commit.
53
- - Write entries under a version header that matches the bumped `plugin.json` version
54
- (e.g. `## 0.40.0`). Add a new version section on every change.
55
- - Keep entries user-facing and outcome-focused (what changed and why it matters).
41
+ Generated automatically by changesets. Do not edit `CHANGELOG.md` manually.
56
42
 
57
43
  ## Skill Conventions
58
44
 
package/CHANGELOG.md CHANGED
@@ -1,7 +1,79 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.37.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 62bfbfe: Fix OIDC publishing by using custom publish script instead of changeset publish
8
+
9
+ Changesets doesn't natively support OIDC trusted publishing - it tries to use
10
+ `changeset publish` which requires an NPM_TOKEN. Replace with a custom script
11
+ that uses `pnpm pack` + `npm publish` directly, which properly picks up OIDC
12
+ tokens in GitHub Actions.
13
+
14
+ ## 1.37.0
15
+
16
+ ### Minor Changes
17
+
18
+ - 75e2111: Switch to changesets for automated releases
19
+
20
+ Replace manual version bumping and GitHub release creation with changesets automation:
21
+
22
+ - Added `@changesets/cli` for intent-based versioning
23
+ - Added `release.yml` workflow that creates "Version Packages" PRs and auto-publishes via OIDC
24
+ - Added `scripts/sync-plugin-version.sh` to keep `plugin.json` in lockstep with `package.json`
25
+ - Updated `style-versioning` skill to document the new workflow
26
+ - Removed old `publish.yml` (release-triggered) workflow
27
+
28
+ Going forward: run `pnpm changeset` to describe changes, merge to main, and the rest is automatic.
29
+
30
+ ### Patch Changes
31
+
32
+ - ad7ac8d: **Enforce changeset requirement in CI** — PRs that modify `extensions/`, `skills/`, `agents/`, `package.json`, or `plugin.json` now fail CI unless they include a `.changeset/*.md` file. Prevents merges that the release pipeline can't pick up.
33
+ - 1ad1920: Fix changesets workflow by adding root package to workspace
34
+
35
+ Changesets couldn't find @jaybeeuu/agent-cortex because pnpm-workspace.yaml
36
+ only listed skills/_/scripts and extensions/_. Adding "." makes the root
37
+ a workspace member so changesets can version it.
38
+
39
+ - 75e2111: Trim AGENTS.md versioning section to reference style-versioning skill instead of duplicating detail
40
+
3
41
  All notable changes to this repository are documented in this file.
4
42
 
43
+ ## 1.37.0
44
+
45
+ ### Added
46
+
47
+ - **Changesets for automated releases** — replaced manual version bumping and GitHub
48
+ release creation with `@changesets/cli` and `release.yml` workflow. PRs include
49
+ changeset files, merging to main triggers automatic "Version Packages" PRs, and
50
+ publishing to npm via OIDC happens automatically. `plugin.json` stays in lockstep
51
+ via `scripts/sync-plugin-version.sh`.
52
+
53
+ ### Removed
54
+
55
+ - **`publish.yml`** — old release-triggered publish workflow. Replaced by `release.yml`.
56
+
57
+ ## 1.36.1
58
+
59
+ ### Added
60
+
61
+ - **`.agents/skills/style-versioning/`** — new repo-local skill enforcing
62
+ version lockstep across `package.json`, `plugin.json`, and `CHANGELOG.md`.
63
+ Discovered by pi, Copilot CLI, and Claude Code when working in this repo;
64
+ not distributed with the plugin.
65
+
66
+ ### Changed
67
+
68
+ - **Version alignment** — `package.json` version aligned to match `plugin.json`
69
+ (both now `1.36.1`). Going forward, all versions (`package.json`, `plugin.json`,
70
+ and `CHANGELOG.md` top header) must stay in lockstep. See AGENTS.md versioning
71
+ section for rules.
72
+ - **AGENTS.md** — versioning section updated to require lockstep across all
73
+ three version files (package.json, plugin.json, CHANGELOG.md).
74
+ - **First npm release via Trusted Publishing** — this is the first version
75
+ published to npm using OIDC (no `NPM_TOKEN` secret).
76
+
5
77
  ## 1.36.0
6
78
 
7
79
  ### Added
@@ -21,11 +93,11 @@ All notable changes to this repository are documented in this file.
21
93
 
22
94
  - **`.github/workflows/publish.yml`** — replaced `NPM_TOKEN` secret auth with
23
95
  npm Trusted Publishing (OIDC). The publish job now grants `contents: read`
24
- + `id-token: write` permissions and runs Node 24 / setup-node v6
25
- (npm >= 11.5.1, required for OIDC). The publish step packs with
26
- `pnpm pack` and uploads the tarball with `npm publish` (pnpm 11's OIDC
27
- publish path is broken — pnpm#11513). Publishing no longer needs a
28
- long-lived npm token in repository secrets.
96
+ - `id-token: write` permissions and runs Node 24 / setup-node v6
97
+ (npm >= 11.5.1, required for OIDC). The publish step packs with
98
+ `pnpm pack` and uploads the tarball with `npm publish` (pnpm 11's OIDC
99
+ publish path is broken — pnpm#11513). Publishing no longer needs a
100
+ long-lived npm token in repository secrets.
29
101
  - **`.github/workflows/ci.test.ts`** — updated publish-workflow assertions to
30
102
  expect the OIDC shape: `contents: read` + `id-token: write` permissions,
31
103
  `pnpm pack` + `npm publish`, and no `NPM_TOKEN` / `NODE_AUTH_TOKEN`
@@ -1,5 +1,5 @@
1
1
  import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
- import { loadSessionContext } from "./context-loader.js";
2
+ import { loadSessionContext } from "./lib/context-loader.js";
3
3
 
4
4
  /**
5
5
  * Session-start extension.
@@ -7,7 +7,7 @@ import { tmpdir } from "node:os";
7
7
  import {
8
8
  loadContextFile,
9
9
  loadSessionContext,
10
- } from "../context-loader.ts";
10
+ } from "../lib/context-loader.ts";
11
11
 
12
12
  // ─── loadContextFile ─────────────────────────────────────────────────────────
13
13
 
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/@earendil-works+pi-coding-agent@0.78.1_ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-coding-agent/node_modules:/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/@earendil-works+pi-coding-agent@0.78.1_ws@8.21.0_zod@4.4.3/node_modules:/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/@earendil-works+pi-coding-agent@0.78.1_ws@8.21.0_zod@4.4.3/node_modules/@earendil-works/pi-coding-agent/node_modules:/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/@earendil-works+pi-coding-agent@0.78.1_ws@8.21.0_zod@4.4.3/node_modules:/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../@earendil-works/pi-coding-agent/dist/cli.js" "$@"
19
+ else
20
+ exec node "$basedir/../@earendil-works/pi-coding-agent/dist/cli.js" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/typescript@5.9.3/node_modules:/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/typescript@5.9.3/node_modules:/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
19
+ else
20
+ exec node "$basedir/../typescript/bin/tsc" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/typescript@5.9.3/node_modules:/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/node_modules:/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/typescript@5.9.3/node_modules:/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
19
+ else
20
+ exec node "$basedir/../typescript/bin/tsserver" "$@"
21
+ fi
@@ -0,0 +1,21 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/tsx@4.22.4/node_modules/tsx/node_modules:/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/tsx@4.22.4/node_modules:/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/tsx@4.22.4/node_modules/tsx/node_modules:/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/tsx@4.22.4/node_modules:/home/runner/work/agent-cortex/agent-cortex/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../tsx/dist/cli.mjs" "$@"
19
+ else
20
+ exec node "$basedir/../tsx/dist/cli.mjs" "$@"
21
+ fi
package/package.json CHANGED
@@ -1,15 +1,12 @@
1
1
  {
2
2
  "name": "@jaybeeuu/agent-cortex",
3
- "version": "1.20.0",
3
+ "version": "1.37.1",
4
4
  "description": "Personal PI package with custom agents, skills, and extensions",
5
5
  "keywords": [
6
6
  "pi-package"
7
7
  ],
8
8
  "license": "MIT",
9
- "repository": {
10
- "type": "git",
11
- "url": "https://github.com/jaybeeuu/agent-cortex"
12
- },
9
+ "repository": "https://github.com/jaybeeuu/agent-cortex",
13
10
  "bin": {
14
11
  "agent-cortex": "./bin/agent-cortex.mjs"
15
12
  },
@@ -17,6 +14,7 @@
17
14
  "access": "public"
18
15
  },
19
16
  "devDependencies": {
17
+ "@changesets/cli": "^2.31.1",
20
18
  "tsx": "^4.0.0",
21
19
  "yaml": "^2.0.0"
22
20
  },
@@ -34,6 +32,9 @@
34
32
  "test": "pnpm -r test",
35
33
  "typecheck": "pnpm -r typecheck",
36
34
  "build:claude": "node scripts/build-claude-agents.mjs",
35
+ "changeset": "changeset",
36
+ "version-packages": "changeset version && bash scripts/sync-plugin-version.sh",
37
+ "release": "changeset publish",
37
38
  "postinstall": "bash scripts/install-instructions.sh"
38
39
  }
39
40
  }
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agent-cortex",
3
3
  "description": "Personal Copilot CLI plugin with custom agents and skills",
4
- "version": "1.36.0",
4
+ "version": "1.37.1",
5
5
  "author": {
6
6
  "name": "jaybeeuu"
7
7
  },
@@ -1,4 +1,5 @@
1
1
  packages:
2
+ - "."
2
3
  - "skills/*/scripts"
3
4
  - "extensions/*"
4
5
  allowBuilds:
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env bash
2
+ # Custom publish script for changesets that uses pnpm pack + npm publish
3
+ # This is needed because changeset publish doesn't properly handle OIDC
4
+
5
+ set -euo pipefail
6
+
7
+ # Check if there are any packages to publish
8
+ VERSION=$(node -p "require('./package.json').version")
9
+ PACKAGE_NAME=$(node -p "require('./package.json').name")
10
+
11
+ echo "Publishing $PACKAGE_NAME@$VERSION"
12
+
13
+ # Check if this version is already published
14
+ if npm view "$PACKAGE_NAME@$VERSION" version 2>/dev/null; then
15
+ echo "Version $VERSION is already published, skipping"
16
+ exit 0
17
+ fi
18
+
19
+ # Pack the tarball
20
+ TARBALL=$(pnpm pack | tail -n 1)
21
+ echo "Created tarball: $TARBALL"
22
+
23
+ # Publish using npm with OIDC trusted publishing.
24
+ # NOTE: provenance is disabled because this repo is private - npm's
25
+ # trusted publishing auto-enables provenance, but sigstore only supports
26
+ # public repos. The masked error would be ENEEDAUTH.
27
+ npm publish "$TARBALL" --access public --no-provenance
28
+
29
+ echo "✓ Published $PACKAGE_NAME@$VERSION"
30
+
31
+ # Create git tag
32
+ git tag -a "v$VERSION" -m "Release $PACKAGE_NAME@$VERSION" || echo "Tag already exists"
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env bash
2
+ # Sync plugin.json version with package.json
3
+ # Called by changesets after versioning to keep them in lockstep
4
+
5
+ set -euo pipefail
6
+
7
+ VERSION=$(node -p "require('./package.json').version")
8
+
9
+ # Update plugin.json version field
10
+ node -e "
11
+ const fs = require('fs');
12
+ const plugin = JSON.parse(fs.readFileSync('plugin.json', 'utf8'));
13
+ plugin.version = '$VERSION';
14
+ fs.writeFileSync('plugin.json', JSON.stringify(plugin, null, 2) + '\n');
15
+ "
16
+
17
+ echo "✓ Synced plugin.json to version $VERSION"
package/.beads/README.md DELETED
@@ -1,81 +0,0 @@
1
- # Beads - AI-Native Issue Tracking
2
-
3
- Welcome to Beads! This repository uses **Beads** for issue tracking - a modern, AI-native tool designed to live directly in your codebase alongside your code.
4
-
5
- ## What is Beads?
6
-
7
- Beads is issue tracking that lives in your repo, making it perfect for AI coding agents and developers who want their issues close to their code. No web UI required - everything works through the CLI and integrates seamlessly with git.
8
-
9
- **Learn more:** [github.com/steveyegge/beads](https://github.com/steveyegge/beads)
10
-
11
- ## Quick Start
12
-
13
- ### Essential Commands
14
-
15
- ```bash
16
- # Create new issues
17
- bd create "Add user authentication"
18
-
19
- # View all issues
20
- bd list
21
-
22
- # View issue details
23
- bd show <issue-id>
24
-
25
- # Update issue status
26
- bd update <issue-id> --claim
27
- bd update <issue-id> --status done
28
-
29
- # Sync with Dolt remote
30
- bd dolt push
31
- ```
32
-
33
- ### Working with Issues
34
-
35
- Issues in Beads are:
36
- - **Git-native**: Stored in Dolt database with version control and branching
37
- - **AI-friendly**: CLI-first design works perfectly with AI coding agents
38
- - **Branch-aware**: Issues can follow your branch workflow
39
- - **Always in sync**: Auto-syncs with your commits
40
-
41
- ## Why Beads?
42
-
43
- ✨ **AI-Native Design**
44
- - Built specifically for AI-assisted development workflows
45
- - CLI-first interface works seamlessly with AI coding agents
46
- - No context switching to web UIs
47
-
48
- 🚀 **Developer Focused**
49
- - Issues live in your repo, right next to your code
50
- - Works offline, syncs when you push
51
- - Fast, lightweight, and stays out of your way
52
-
53
- 🔧 **Git Integration**
54
- - Automatic sync with git commits
55
- - Branch-aware issue tracking
56
- - Dolt-native three-way merge resolution
57
-
58
- ## Get Started with Beads
59
-
60
- Try Beads in your own projects:
61
-
62
- ```bash
63
- # Install Beads
64
- curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
65
-
66
- # Initialize in your repo
67
- bd init
68
-
69
- # Create your first issue
70
- bd create "Try out Beads"
71
- ```
72
-
73
- ## Learn More
74
-
75
- - **Documentation**: [github.com/steveyegge/beads/docs](https://github.com/steveyegge/beads/tree/main/docs)
76
- - **Quick Start Guide**: Run `bd quickstart`
77
- - **Examples**: [github.com/steveyegge/beads/examples](https://github.com/steveyegge/beads/tree/main/examples)
78
-
79
- ---
80
-
81
- *Beads: Issue tracking that moves at the speed of thought* ⚡
@@ -1 +0,0 @@
1
- no-git-ops: true