@preapexis/piexis 0.1.2 → 0.2.4
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/.github/workflows/publish.yml +35 -0
- package/AGENTS.md +21 -41
- package/README.md +75 -142
- package/extensions/agents.ts +205 -0
- package/extensions/ask-question.ts +54 -95
- package/extensions/recommended-tools.ts +62 -0
- package/extensions/ui.ts +204 -58
- package/lib/agent-config.ts +55 -0
- package/lib/agents.ts +208 -0
- package/lib/question-model.ts +98 -0
- package/lib/question-ui.ts +214 -0
- package/lib/recommended-tools.ts +119 -0
- package/lib/subagent-runner.ts +146 -0
- package/lib/ui-tips.json +41 -0
- package/package.json +9 -12
- package/prompts/init.md +10 -2
- package/prompts/summary.md +7 -6
- package/schemas/agent.schema.json +48 -0
- package/scripts/release.mjs +32 -0
- package/skills/{claude-api/LICENSE.txt → caveman/LICENSE} +2 -2
- package/skills/caveman/LICENSE-MIT +21 -0
- package/skills/caveman/NOTICE +10 -0
- package/skills/caveman/SKILL.md +89 -0
- package/skills/find-skills/SKILL.md +141 -0
- package/skills/ponytail/LICENSE +21 -0
- package/skills/ponytail/NOTICE +9 -0
- package/skills/ponytail/SKILL.md +52 -0
- package/skills-lock.json +6 -0
- package/tests/agents.test.mjs +605 -0
- package/tests/ask-question-pty.test.mjs +16 -0
- package/tests/ask-question.test.mjs +269 -0
- package/tests/fixtures/agents-provider.ts +55 -0
- package/tests/fixtures/ask-question-pty.py +91 -0
- package/tests/fixtures/ask-question-terminal.mjs +69 -0
- package/tests/fixtures/recommended-tools-terminal.mjs +103 -0
- package/tests/init-workflow.test.mjs +31 -0
- package/tests/recommended-tools-pty.test.mjs +16 -0
- package/tests/recommended-tools.test.mjs +423 -0
- package/tests/resources.test.mjs +66 -0
- package/tests/skills-routing.test.mjs +7 -4
- package/tests/ui-tip-reload.test.mjs +70 -0
- package/tests/ui.test.mjs +450 -0
- package/tsconfig.json +1 -0
- package/.github/workflows/npm-publish.yml +0 -63
- package/PERMISSION_MODES_PLAN.md +0 -279
- package/WHAT_YOU_GET.md +0 -153
- package/eval/README.md +0 -72
- package/eval/permission-cases.json +0 -28
- package/eval/permissions.mjs +0 -103
- package/extensions/background-tasks.ts +0 -433
- package/extensions/background-worker.ts +0 -50
- package/extensions/glob.ts +0 -32
- package/extensions/mode.ts +0 -397
- package/lib/bash-approvals.ts +0 -113
- package/lib/bash-policy.ts +0 -164
- package/lib/mode-policy.ts +0 -174
- package/lib/path-policy.ts +0 -182
- package/lib/permission-classifier.ts +0 -128
- package/lib/permission-config.ts +0 -91
- package/lib/permission-denials.ts +0 -32
- package/lib/permission-intent.ts +0 -128
- package/lib/permission-taxonomy.ts +0 -15
- package/lib/task-broker.ts +0 -65
- package/lib/task-checkout.ts +0 -39
- package/lib/task-git.ts +0 -44
- package/lib/task-patch.ts +0 -106
- package/lib/task-permissions.ts +0 -51
- package/lib/task-report.ts +0 -62
- package/lib/task-worktree-policy.ts +0 -56
- package/skills/claude-api/SKILL.md +0 -572
- package/skills/claude-api/csharp/claude-api/README.md +0 -362
- package/skills/claude-api/csharp/claude-api/batches.md +0 -14
- package/skills/claude-api/csharp/claude-api/files-api.md +0 -25
- package/skills/claude-api/csharp/claude-api/streaming.md +0 -28
- package/skills/claude-api/csharp/claude-api/tool-use.md +0 -164
- package/skills/claude-api/curl/examples.md +0 -256
- package/skills/claude-api/curl/managed-agents.md +0 -371
- package/skills/claude-api/go/claude-api/README.md +0 -188
- package/skills/claude-api/go/claude-api/files-api.md +0 -23
- package/skills/claude-api/go/claude-api/streaming.md +0 -43
- package/skills/claude-api/go/claude-api/tool-use.md +0 -220
- package/skills/claude-api/go/managed-agents/README.md +0 -564
- package/skills/claude-api/java/claude-api/README.md +0 -238
- package/skills/claude-api/java/claude-api/files-api.md +0 -27
- package/skills/claude-api/java/claude-api/streaming.md +0 -24
- package/skills/claude-api/java/claude-api/tool-use.md +0 -228
- package/skills/claude-api/java/managed-agents/README.md +0 -443
- package/skills/claude-api/php/claude-api/README.md +0 -174
- package/skills/claude-api/php/claude-api/batches.md +0 -15
- package/skills/claude-api/php/claude-api/files-api.md +0 -13
- package/skills/claude-api/php/claude-api/streaming.md +0 -27
- package/skills/claude-api/php/claude-api/tool-use.md +0 -253
- package/skills/claude-api/php/managed-agents/README.md +0 -443
- package/skills/claude-api/python/claude-api/README.md +0 -565
- package/skills/claude-api/python/claude-api/batches.md +0 -198
- package/skills/claude-api/python/claude-api/files-api.md +0 -170
- package/skills/claude-api/python/claude-api/sdk-upgrade.md +0 -286
- package/skills/claude-api/python/claude-api/streaming.md +0 -179
- package/skills/claude-api/python/claude-api/tool-use.md +0 -627
- package/skills/claude-api/python/managed-agents/README.md +0 -335
- package/skills/claude-api/ruby/claude-api/README.md +0 -134
- package/skills/claude-api/ruby/claude-api/streaming.md +0 -16
- package/skills/claude-api/ruby/claude-api/tool-use.md +0 -41
- package/skills/claude-api/ruby/managed-agents/README.md +0 -394
- package/skills/claude-api/shared/admin-api.md +0 -179
- package/skills/claude-api/shared/agent-design.md +0 -101
- package/skills/claude-api/shared/anthropic-cli.md +0 -269
- package/skills/claude-api/shared/claude-platform-on-aws.md +0 -59
- package/skills/claude-api/shared/cost-optimization.md +0 -233
- package/skills/claude-api/shared/error-codes.md +0 -262
- package/skills/claude-api/shared/live-sources.md +0 -166
- package/skills/claude-api/shared/managed-agents-api-reference.md +0 -455
- package/skills/claude-api/shared/managed-agents-client-patterns.md +0 -220
- package/skills/claude-api/shared/managed-agents-core.md +0 -359
- package/skills/claude-api/shared/managed-agents-environments.md +0 -226
- package/skills/claude-api/shared/managed-agents-events.md +0 -290
- package/skills/claude-api/shared/managed-agents-memory.md +0 -201
- package/skills/claude-api/shared/managed-agents-multiagent.md +0 -260
- package/skills/claude-api/shared/managed-agents-onboarding.md +0 -82
- package/skills/claude-api/shared/managed-agents-outcomes.md +0 -108
- package/skills/claude-api/shared/managed-agents-overview.md +0 -77
- package/skills/claude-api/shared/managed-agents-scheduled-deployments.md +0 -156
- package/skills/claude-api/shared/managed-agents-self-hosted-sandboxes.md +0 -282
- package/skills/claude-api/shared/managed-agents-tools.md +0 -504
- package/skills/claude-api/shared/managed-agents-webhooks.md +0 -143
- package/skills/claude-api/shared/model-migration.md +0 -1872
- package/skills/claude-api/shared/models.md +0 -142
- package/skills/claude-api/shared/platform-availability.md +0 -53
- package/skills/claude-api/shared/prompt-audit.md +0 -223
- package/skills/claude-api/shared/prompt-caching.md +0 -292
- package/skills/claude-api/shared/token-counting.md +0 -56
- package/skills/claude-api/shared/tool-use-concepts.md +0 -526
- package/skills/claude-api/typescript/claude-api/README.md +0 -405
- package/skills/claude-api/typescript/claude-api/batches.md +0 -106
- package/skills/claude-api/typescript/claude-api/files-api.md +0 -98
- package/skills/claude-api/typescript/claude-api/streaming.md +0 -178
- package/skills/claude-api/typescript/claude-api/tool-use.md +0 -586
- package/skills/claude-api/typescript/managed-agents/README.md +0 -359
- package/tests/auto-permissions.test.mjs +0 -315
- package/tests/background-tasks.test.mjs +0 -27
- package/tests/background-worker.test.mjs +0 -60
- package/tests/bash-permissions.test.mjs +0 -276
- package/tests/glob.test.mjs +0 -31
- package/tests/mode.test.mjs +0 -62
- package/tests/permission-evaluation.test.mjs +0 -70
- package/tests/permission-foundation.test.mjs +0 -194
- package/tests/permission-policy.test.mjs +0 -158
- package/tests/runtime/README.md +0 -51
- package/tests/runtime/harness.mjs +0 -190
- package/tests/runtime/permissions.test.mjs +0 -192
- package/tests/runtime/tui.test.mjs +0 -60
- package/tests/task-integration.test.mjs +0 -324
- package/tests/task-permissions.test.mjs +0 -178
- package/tests/task-worktree-policy.test.mjs +0 -53
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { taskGit, disabledTaskFilters } from "./task-git.ts";
|
|
2
|
-
import { lstat, readFile, realpath, writeFile } from "node:fs/promises";
|
|
3
|
-
import { tmpdir } from "node:os";
|
|
4
|
-
import { basename, dirname, isAbsolute, relative, resolve } from "node:path";
|
|
5
|
-
|
|
6
|
-
export type RecordedWorktree = { id: string; repository?: string; worktree?: string };
|
|
7
|
-
|
|
8
|
-
type Marker = { version: 1; id: string; repository: string; worktree: string };
|
|
9
|
-
|
|
10
|
-
function isWithin(child: string, parent: string) {
|
|
11
|
-
const value = relative(parent, child);
|
|
12
|
-
return value === "" || (!value.startsWith("..") && !isAbsolute(value));
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
async function git(args: string[], cwd: string): Promise<string> {
|
|
16
|
-
return (await taskGit(args, cwd)).trim();
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
async function commonGitDir(cwd: string) {
|
|
20
|
-
const value = await git(["rev-parse", "--git-common-dir"], cwd);
|
|
21
|
-
return realpath(isAbsolute(value) ? value : resolve(cwd, value));
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export async function createWorktreeMarker(parent: string, task: Required<RecordedWorktree>) {
|
|
25
|
-
const marker: Marker = { version: 1, id: task.id, repository: await realpath(task.repository), worktree: task.worktree };
|
|
26
|
-
await writeFile(`${parent}/.piexis-task.json`, `${JSON.stringify(marker)}\n`, { mode: 0o600, flag: "wx" });
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/** Reject corrupt metadata before any destructive worktree cleanup. */
|
|
30
|
-
export async function validateTaskWorktree(task: RecordedWorktree): Promise<{ worktree: string; parent: string; dirty: boolean }> {
|
|
31
|
-
if (!task.worktree || !task.repository) throw new Error("Task has no recorded repository worktree.");
|
|
32
|
-
const parent = dirname(task.worktree);
|
|
33
|
-
if (basename(task.worktree) !== "worktree" || !basename(parent).startsWith("piexis-task-"))
|
|
34
|
-
throw new Error("Refusing to clean a worktree not created by Piexis.");
|
|
35
|
-
const [canonicalTmp, canonicalParent, canonicalRepository] = await Promise.all([realpath(tmpdir()), realpath(parent), realpath(task.repository)]);
|
|
36
|
-
if (!isWithin(canonicalParent, canonicalTmp)) throw new Error("Refusing to clean a worktree outside the system temporary directory.");
|
|
37
|
-
const markerPath = `${canonicalParent}/.piexis-task.json`;
|
|
38
|
-
let marker: Marker;
|
|
39
|
-
try { marker = JSON.parse(await readFile(markerPath, "utf8")); }
|
|
40
|
-
catch { throw new Error("Refusing to clean a worktree without a valid Piexis marker."); }
|
|
41
|
-
if (marker.version !== 1 || marker.id !== task.id || marker.worktree !== task.worktree || marker.repository !== canonicalRepository)
|
|
42
|
-
throw new Error("Refusing to clean a worktree whose Piexis marker does not match task metadata.");
|
|
43
|
-
const stat = await lstat(task.worktree);
|
|
44
|
-
if (!stat.isDirectory() || stat.isSymbolicLink()) throw new Error("Recorded worktree is not a normal directory.");
|
|
45
|
-
const worktree = await realpath(task.worktree);
|
|
46
|
-
if (worktree !== resolve(canonicalParent, "worktree")) throw new Error("Recorded worktree path does not match its Piexis task directory.");
|
|
47
|
-
const [topLevel, taskGitDir, repositoryGitDir] = await Promise.all([
|
|
48
|
-
git(["rev-parse", "--show-toplevel"], worktree).then(realpath),
|
|
49
|
-
commonGitDir(worktree),
|
|
50
|
-
commonGitDir(canonicalRepository)
|
|
51
|
-
]);
|
|
52
|
-
if (topLevel !== worktree || taskGitDir !== repositoryGitDir)
|
|
53
|
-
throw new Error("Recorded path is not a Git worktree associated with the expected repository.");
|
|
54
|
-
const dirty = Boolean(await git([...await disabledTaskFilters(worktree), "status", "--porcelain"], worktree));
|
|
55
|
-
return { worktree, parent: canonicalParent, dirty };
|
|
56
|
-
}
|