heyspex 0.2.5 → 0.2.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.
- package/.claude-plugin/marketplace.json +1 -1
- package/bin/hs.mjs +349 -38
- package/bin/spexcode.mjs +31 -0
- package/dev-factory/lib/dispatch-guard.mjs +75 -0
- package/dev-factory/lib/local-firecrawl.mjs +294 -0
- package/dev-factory/lib/runner-path.mjs +51 -0
- package/dev-factory/lib/seat-context.mjs +20 -4
- package/dev-factory/model-catalog.json +222 -222
- package/dev-factory/spexcrawl/firecrawl-cli.mjs +755 -0
- package/dev-factory/spexcrawl/spexcrawl-cli.mjs +734 -0
- package/dist/cli/hs-connect.mjs +40 -3
- package/dist/cli/hs-defer.mjs +3817 -3741
- package/dist/cli/hs-events.mjs +1296 -0
- package/dist/cli/hs-export-events.mjs +1252 -0
- package/dist/cli/hs-handoff.mjs +2576 -0
- package/dist/cli/hs-index-rebuild.mjs +228 -37
- package/dist/cli/hs-index-reconcile.mjs +231 -40
- package/dist/cli/hs-init.mjs +22 -3
- package/dist/cli/hs-install.mjs +22 -3
- package/dist/cli/hs-join.mjs +40 -3
- package/dist/cli/hs-next-launch.mjs +2777 -0
- package/dist/cli/hs-pin.mjs +1336 -0
- package/dist/cli/hs-prereq.mjs +1380 -0
- package/dist/cli/hs-revalidate.mjs +3257 -0
- package/dist/cli/hs-spawn.mjs +12403 -0
- package/dist/cli/hs-test.mjs +1046 -0
- package/dist/cli/hs-trash.mjs +362 -0
- package/dist/cli/hs-trust.mjs +197 -0
- package/dist/cli/hs-vault-pull.mjs +233 -42
- package/dist/cli/hs-vault-push.mjs +231 -40
- package/dist/cli/hs-vault.mjs +21 -7
- package/dist/cli/hs-workspace.mjs +19 -1
- package/dist/cli-templates/customer-vault/specs/entity-model.md +1728 -1728
- package/dist/cli-templates/customer-vault/specs/protocols/canonical-frontmatter-templates.md +464 -464
- package/dist/cli-templates/customer-vault/specs/protocols/destructive-action-checklist.md +122 -122
- package/dist/cli-templates/customer-vault/specs/protocols/memory-protocol.md +46 -46
- package/dist/cli-templates/customer-vault/specs/protocols/spec-hierarchy.md +530 -530
- package/dist/cli-templates/customer-vault/specs/protocols/spec-summary-authoring.md +83 -83
- package/dist/cli-templates/harness-commands/claude/hs-backfill.md +28 -28
- package/dist/cli-templates/harness-commands/claude/hs-capture.md +62 -62
- package/dist/cli-templates/harness-commands/claude/hs-defer.md +29 -29
- package/dist/cli-templates/harness-commands/claude/hs-ground.md +30 -30
- package/dist/cli-templates/harness-commands/claude/hs-next.md +29 -29
- package/dist/cli-templates/harness-commands/claude/hs-promote.md +70 -70
- package/dist/cli-templates/harness-commands/claude/hs-push.md +35 -35
- package/dist/cli-templates/harness-commands/claude/hs-qc.md +27 -27
- package/dist/cli-templates/harness-commands/claude/hs-res.md +83 -63
- package/dist/cli-templates/harness-commands/claude/hs-resolve.md +23 -23
- package/dist/cli-templates/harness-commands/claude/hs-view.md +28 -28
- package/dist/cli-templates/harness-commands/claude/kill-ports.md +32 -32
- package/dist/cli-templates/harness-commands/claude/prototype.md +91 -91
- package/dist/cli-templates/harness-commands/cursor/hs-backfill.md +22 -22
- package/dist/cli-templates/harness-commands/cursor/hs-capture.md +56 -56
- package/dist/cli-templates/harness-commands/cursor/hs-defer.md +23 -23
- package/dist/cli-templates/harness-commands/cursor/hs-ground.md +24 -24
- package/dist/cli-templates/harness-commands/cursor/hs-next.md +23 -23
- package/dist/cli-templates/harness-commands/cursor/hs-promote.md +64 -64
- package/dist/cli-templates/harness-commands/cursor/hs-push.md +29 -29
- package/dist/cli-templates/harness-commands/cursor/hs-qc.md +21 -21
- package/dist/cli-templates/harness-commands/cursor/hs-res.md +78 -58
- package/dist/cli-templates/harness-commands/cursor/hs-resolve.md +17 -17
- package/dist/cli-templates/harness-commands/cursor/hs-view.md +23 -23
- package/dist/cli-templates/harness-commands/cursor/kill-ports.md +26 -26
- package/dist/cli-templates/harness-commands/cursor/prototype.md +86 -86
- package/docs/copilot-plugin-install.md +9 -2
- package/docs/mcp-client-config.md +6 -0
- package/package.json +266 -257
- package/plugins/heyspex/.claude-plugin/plugin.json +1 -1
- package/plugins/heyspex/.cursor-plugin/plugin.json +1 -1
- package/plugins/heyspex/README.md +6 -0
- package/plugins/heyspex/bin/launch-mcp.mjs +17 -0
- package/plugins/heyspex/hooks/hooks.json +418 -418
- package/scripts/claude-hooks/_intent-classifier-semantic.mjs +2 -2
- package/scripts/claude-hooks/wip-checkpoint.mjs +17 -2
- package/scripts/claude-statusline/statusline-command.mjs +287 -27
- package/scripts/hs-companion.mjs +41 -3
- package/scripts/install-claude-code-hooks.mjs +104 -3
- package/scripts/install-copilot-hooks.mjs +21 -1
- package/scripts/install-cursor-hooks.mjs +4 -3
- package/scripts/lib/capture-execution-guard.mjs +221 -0
- package/scripts/lib/companion-install.mjs +768 -0
- package/scripts/lib/customer-kit.mjs +53 -3
- package/scripts/lib/hs-companion-settings.mjs +26 -0
- package/scripts/lib/hs-source-push.mjs +386 -386
- package/scripts/record-grounding.mjs +38 -0
- package/spexharness/doctrine/baseline/SPEXCODE-DOCTRINE.baseline.json +29 -29
- package/spexharness/src/adapters/copilot-models.mjs +179 -0
- package/spexharness/src/adapters/harness-detect.mjs +148 -0
- package/spexharness/src/gates/directive-obligation-gate.decide.mjs +132 -132
- package/spexharness/src/gates/vault-write-tier-guard.decide.mjs +153 -125
- package/spexharness/src/seat-context.mjs +10 -5
- package/spexharness/src/session-bootstrap.mjs +6 -3
- package/vendor/heyspex-mcp/cli.mjs +6 -1
- package/vendor/heyspex-mcp/config-seed.yaml +15 -15
- package/vendor/heyspex-mcp/dev-factory-overlay.mjs +142 -0
- package/vendor/heyspex-mcp/http-transport.mjs +1 -1
- package/vendor/heyspex-mcp/memory-tools.mjs +523 -523
- package/vendor/heyspex-mcp/on-deck-scheduler.mjs +1708 -1708
- package/vendor/heyspex-mcp/procedure-handlers.mjs +327 -327
- package/vendor/heyspex-mcp/procedure-tools.mjs +1209 -1181
- package/vendor/heyspex-mcp/research-tools.mjs +22 -2
- package/vendor/heyspex-mcp/seat-assign-cli.mjs +242 -0
- package/vendor/heyspex-mcp/seat-assignment-rules.mjs +96 -0
- package/vendor/heyspex-mcp/seat-assignments-client.mjs +265 -0
- package/vendor/heyspex-mcp/seat-defaults-cli.mjs +45 -0
- package/vendor/heyspex-mcp/seat-defaults.mjs +232 -0
- package/vendor/heyspex-mcp/seat-identity.mjs +171 -0
- package/vendor/heyspex-mcp/test-helpers.mjs +37 -23
- package/vendor/heyspex-mcp/vault-io.mjs +720 -720
- package/bin/postinstall.mjs +0 -88
package/dist/cli/hs-connect.mjs
CHANGED
|
@@ -2286,6 +2286,24 @@ var consoleSettingsStore = pgTable(
|
|
|
2286
2286
|
},
|
|
2287
2287
|
(table) => [primaryKey({ columns: [table.userId, table.vaultId, table.namespace] })]
|
|
2288
2288
|
);
|
|
2289
|
+
var seatAssignments = pgTable(
|
|
2290
|
+
"seat_assignments",
|
|
2291
|
+
{
|
|
2292
|
+
accountId: text("account_id").notNull(),
|
|
2293
|
+
vaultId: text("vault_id").notNull(),
|
|
2294
|
+
harness: text("harness").notNull(),
|
|
2295
|
+
seatId: text("seat_id").notNull(),
|
|
2296
|
+
model: text("model").notNull(),
|
|
2297
|
+
// Set when a launch reported the harness REFUSED this model and the run fell
|
|
2298
|
+
// back to auto (Copilot's `heyspex.copilot_model_fallback` event, HS-F4UM);
|
|
2299
|
+
// cleared whenever the user sets a new model.
|
|
2300
|
+
overrideRejectedAt: timestamp("override_rejected_at", { withTimezone: true }),
|
|
2301
|
+
updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().default(sql`now()`)
|
|
2302
|
+
},
|
|
2303
|
+
(table) => [
|
|
2304
|
+
primaryKey({ columns: [table.accountId, table.vaultId, table.harness, table.seatId] })
|
|
2305
|
+
]
|
|
2306
|
+
);
|
|
2289
2307
|
var wipLedger = pgTable(
|
|
2290
2308
|
"wip_ledger",
|
|
2291
2309
|
{
|
|
@@ -4289,7 +4307,7 @@ var COMMAND_SCOPES = Object.freeze({
|
|
|
4289
4307
|
"hs-promote.md": { scope: "customer", why: "Capture \u2192 research \u2192 milestone promotion." },
|
|
4290
4308
|
"hs-push.md": { scope: "customer", why: "Push an epic plan into the vault." },
|
|
4291
4309
|
"hs-qc.md": { scope: "customer", why: "Post-plan QC gate." },
|
|
4292
|
-
"hs-res.md": { scope: "customer", why: "Research method entrypoint (SpexCrawl/DeepSeek)." },
|
|
4310
|
+
"hs-res.md": { scope: "customer", why: "Research method entrypoint (local Docker Firecrawl search + SpexCrawl/Firecrawl fetch; DeepSeek on the platform)." },
|
|
4293
4311
|
"hs-resolve.md": { scope: "customer", why: "Resolution lane." },
|
|
4294
4312
|
"hs-review.md": { scope: "customer", why: "Review queue." },
|
|
4295
4313
|
"hs-view.md": { scope: "customer", why: "Open a console surface." },
|
|
@@ -4699,7 +4717,7 @@ function githubHookNames() {
|
|
|
4699
4717
|
}
|
|
4700
4718
|
function githubHookCommand(row2) {
|
|
4701
4719
|
const tail = hookTail(row2);
|
|
4702
|
-
return `R=node_modules/heyspex/scripts/claude-hooks/_run.mjs; [ -f "$R" ] || R=./scripts/claude-hooks/_run.mjs; [ -f "$R" ] || exit 0; exec node "$R" ${tail}`;
|
|
4720
|
+
return `export HEYSPEX_HARNESS="\${HEYSPEX_HARNESS:-copilot}"; R=node_modules/heyspex/scripts/claude-hooks/_run.mjs; [ -f "$R" ] || R=./scripts/claude-hooks/_run.mjs; [ -f "$R" ] || exit 0; exec node "$R" ${tail}`;
|
|
4703
4721
|
}
|
|
4704
4722
|
function renderGithubHooksDocument() {
|
|
4705
4723
|
const allowed = githubHookNames();
|
|
@@ -4838,6 +4856,25 @@ var fsDeps = {
|
|
|
4838
4856
|
}
|
|
4839
4857
|
}
|
|
4840
4858
|
};
|
|
4859
|
+
function findProjectRoot(start) {
|
|
4860
|
+
let dir = path2.resolve(start);
|
|
4861
|
+
for (; ; ) {
|
|
4862
|
+
if (fs.existsSync(path2.join(dir, ".git")) || fs.existsSync(path2.join(dir, "heyspex.yaml"))) return dir;
|
|
4863
|
+
const up = path2.dirname(dir);
|
|
4864
|
+
if (up === dir) return path2.resolve(start);
|
|
4865
|
+
dir = up;
|
|
4866
|
+
}
|
|
4867
|
+
}
|
|
4868
|
+
function isInstalledPackageRoot(platformRoot, exists2 = fs.existsSync) {
|
|
4869
|
+
if (toPosixPath(path2.resolve(platformRoot)).includes("/node_modules/")) return true;
|
|
4870
|
+
return !exists2(path2.join(platformRoot, "scripts", "heyspex-doctor.mjs"));
|
|
4871
|
+
}
|
|
4872
|
+
function resolveSetupTarget({ platformRoot, env = process.env, cwd = process.cwd(), exists: exists2 = fs.existsSync }) {
|
|
4873
|
+
const explicit = env.HS_SETUP_TARGET?.trim();
|
|
4874
|
+
if (explicit) return path2.resolve(explicit);
|
|
4875
|
+
if (isInstalledPackageRoot(platformRoot, exists2)) return findProjectRoot(cwd);
|
|
4876
|
+
return path2.resolve(platformRoot);
|
|
4877
|
+
}
|
|
4841
4878
|
function invokedDirectly(importMetaUrl, selfBasename, argv1 = process.argv[1]) {
|
|
4842
4879
|
try {
|
|
4843
4880
|
if (!argv1) return false;
|
|
@@ -7786,7 +7823,7 @@ function timeoutFor(entry) {
|
|
|
7786
7823
|
|
|
7787
7824
|
// scripts/install-cursor-hooks.mjs
|
|
7788
7825
|
var PLATFORM_ROOT = path6.resolve(path6.dirname(fileURLToPath4(import.meta.url)), "..");
|
|
7789
|
-
var REPO_ROOT =
|
|
7826
|
+
var REPO_ROOT = resolveSetupTarget({ platformRoot: PLATFORM_ROOT });
|
|
7790
7827
|
var SETTINGS_PATH = path6.join(REPO_ROOT, ".cursor", "hooks.json");
|
|
7791
7828
|
function cursorKitFor(targetRoot, platformRoot = PLATFORM_ROOT) {
|
|
7792
7829
|
const customer = !samePlatformPath(targetRoot, platformRoot);
|