@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.
Files changed (154) hide show
  1. package/.github/workflows/publish.yml +35 -0
  2. package/AGENTS.md +21 -41
  3. package/README.md +75 -142
  4. package/extensions/agents.ts +205 -0
  5. package/extensions/ask-question.ts +54 -95
  6. package/extensions/recommended-tools.ts +62 -0
  7. package/extensions/ui.ts +204 -58
  8. package/lib/agent-config.ts +55 -0
  9. package/lib/agents.ts +208 -0
  10. package/lib/question-model.ts +98 -0
  11. package/lib/question-ui.ts +214 -0
  12. package/lib/recommended-tools.ts +119 -0
  13. package/lib/subagent-runner.ts +146 -0
  14. package/lib/ui-tips.json +41 -0
  15. package/package.json +9 -12
  16. package/prompts/init.md +10 -2
  17. package/prompts/summary.md +7 -6
  18. package/schemas/agent.schema.json +48 -0
  19. package/scripts/release.mjs +32 -0
  20. package/skills/{claude-api/LICENSE.txt → caveman/LICENSE} +2 -2
  21. package/skills/caveman/LICENSE-MIT +21 -0
  22. package/skills/caveman/NOTICE +10 -0
  23. package/skills/caveman/SKILL.md +89 -0
  24. package/skills/find-skills/SKILL.md +141 -0
  25. package/skills/ponytail/LICENSE +21 -0
  26. package/skills/ponytail/NOTICE +9 -0
  27. package/skills/ponytail/SKILL.md +52 -0
  28. package/skills-lock.json +6 -0
  29. package/tests/agents.test.mjs +605 -0
  30. package/tests/ask-question-pty.test.mjs +16 -0
  31. package/tests/ask-question.test.mjs +269 -0
  32. package/tests/fixtures/agents-provider.ts +55 -0
  33. package/tests/fixtures/ask-question-pty.py +91 -0
  34. package/tests/fixtures/ask-question-terminal.mjs +69 -0
  35. package/tests/fixtures/recommended-tools-terminal.mjs +103 -0
  36. package/tests/init-workflow.test.mjs +31 -0
  37. package/tests/recommended-tools-pty.test.mjs +16 -0
  38. package/tests/recommended-tools.test.mjs +423 -0
  39. package/tests/resources.test.mjs +66 -0
  40. package/tests/skills-routing.test.mjs +7 -4
  41. package/tests/ui-tip-reload.test.mjs +70 -0
  42. package/tests/ui.test.mjs +450 -0
  43. package/tsconfig.json +1 -0
  44. package/.github/workflows/npm-publish.yml +0 -63
  45. package/PERMISSION_MODES_PLAN.md +0 -279
  46. package/WHAT_YOU_GET.md +0 -153
  47. package/eval/README.md +0 -72
  48. package/eval/permission-cases.json +0 -28
  49. package/eval/permissions.mjs +0 -103
  50. package/extensions/background-tasks.ts +0 -433
  51. package/extensions/background-worker.ts +0 -50
  52. package/extensions/glob.ts +0 -32
  53. package/extensions/mode.ts +0 -397
  54. package/lib/bash-approvals.ts +0 -113
  55. package/lib/bash-policy.ts +0 -164
  56. package/lib/mode-policy.ts +0 -174
  57. package/lib/path-policy.ts +0 -182
  58. package/lib/permission-classifier.ts +0 -128
  59. package/lib/permission-config.ts +0 -91
  60. package/lib/permission-denials.ts +0 -32
  61. package/lib/permission-intent.ts +0 -128
  62. package/lib/permission-taxonomy.ts +0 -15
  63. package/lib/task-broker.ts +0 -65
  64. package/lib/task-checkout.ts +0 -39
  65. package/lib/task-git.ts +0 -44
  66. package/lib/task-patch.ts +0 -106
  67. package/lib/task-permissions.ts +0 -51
  68. package/lib/task-report.ts +0 -62
  69. package/lib/task-worktree-policy.ts +0 -56
  70. package/skills/claude-api/SKILL.md +0 -572
  71. package/skills/claude-api/csharp/claude-api/README.md +0 -362
  72. package/skills/claude-api/csharp/claude-api/batches.md +0 -14
  73. package/skills/claude-api/csharp/claude-api/files-api.md +0 -25
  74. package/skills/claude-api/csharp/claude-api/streaming.md +0 -28
  75. package/skills/claude-api/csharp/claude-api/tool-use.md +0 -164
  76. package/skills/claude-api/curl/examples.md +0 -256
  77. package/skills/claude-api/curl/managed-agents.md +0 -371
  78. package/skills/claude-api/go/claude-api/README.md +0 -188
  79. package/skills/claude-api/go/claude-api/files-api.md +0 -23
  80. package/skills/claude-api/go/claude-api/streaming.md +0 -43
  81. package/skills/claude-api/go/claude-api/tool-use.md +0 -220
  82. package/skills/claude-api/go/managed-agents/README.md +0 -564
  83. package/skills/claude-api/java/claude-api/README.md +0 -238
  84. package/skills/claude-api/java/claude-api/files-api.md +0 -27
  85. package/skills/claude-api/java/claude-api/streaming.md +0 -24
  86. package/skills/claude-api/java/claude-api/tool-use.md +0 -228
  87. package/skills/claude-api/java/managed-agents/README.md +0 -443
  88. package/skills/claude-api/php/claude-api/README.md +0 -174
  89. package/skills/claude-api/php/claude-api/batches.md +0 -15
  90. package/skills/claude-api/php/claude-api/files-api.md +0 -13
  91. package/skills/claude-api/php/claude-api/streaming.md +0 -27
  92. package/skills/claude-api/php/claude-api/tool-use.md +0 -253
  93. package/skills/claude-api/php/managed-agents/README.md +0 -443
  94. package/skills/claude-api/python/claude-api/README.md +0 -565
  95. package/skills/claude-api/python/claude-api/batches.md +0 -198
  96. package/skills/claude-api/python/claude-api/files-api.md +0 -170
  97. package/skills/claude-api/python/claude-api/sdk-upgrade.md +0 -286
  98. package/skills/claude-api/python/claude-api/streaming.md +0 -179
  99. package/skills/claude-api/python/claude-api/tool-use.md +0 -627
  100. package/skills/claude-api/python/managed-agents/README.md +0 -335
  101. package/skills/claude-api/ruby/claude-api/README.md +0 -134
  102. package/skills/claude-api/ruby/claude-api/streaming.md +0 -16
  103. package/skills/claude-api/ruby/claude-api/tool-use.md +0 -41
  104. package/skills/claude-api/ruby/managed-agents/README.md +0 -394
  105. package/skills/claude-api/shared/admin-api.md +0 -179
  106. package/skills/claude-api/shared/agent-design.md +0 -101
  107. package/skills/claude-api/shared/anthropic-cli.md +0 -269
  108. package/skills/claude-api/shared/claude-platform-on-aws.md +0 -59
  109. package/skills/claude-api/shared/cost-optimization.md +0 -233
  110. package/skills/claude-api/shared/error-codes.md +0 -262
  111. package/skills/claude-api/shared/live-sources.md +0 -166
  112. package/skills/claude-api/shared/managed-agents-api-reference.md +0 -455
  113. package/skills/claude-api/shared/managed-agents-client-patterns.md +0 -220
  114. package/skills/claude-api/shared/managed-agents-core.md +0 -359
  115. package/skills/claude-api/shared/managed-agents-environments.md +0 -226
  116. package/skills/claude-api/shared/managed-agents-events.md +0 -290
  117. package/skills/claude-api/shared/managed-agents-memory.md +0 -201
  118. package/skills/claude-api/shared/managed-agents-multiagent.md +0 -260
  119. package/skills/claude-api/shared/managed-agents-onboarding.md +0 -82
  120. package/skills/claude-api/shared/managed-agents-outcomes.md +0 -108
  121. package/skills/claude-api/shared/managed-agents-overview.md +0 -77
  122. package/skills/claude-api/shared/managed-agents-scheduled-deployments.md +0 -156
  123. package/skills/claude-api/shared/managed-agents-self-hosted-sandboxes.md +0 -282
  124. package/skills/claude-api/shared/managed-agents-tools.md +0 -504
  125. package/skills/claude-api/shared/managed-agents-webhooks.md +0 -143
  126. package/skills/claude-api/shared/model-migration.md +0 -1872
  127. package/skills/claude-api/shared/models.md +0 -142
  128. package/skills/claude-api/shared/platform-availability.md +0 -53
  129. package/skills/claude-api/shared/prompt-audit.md +0 -223
  130. package/skills/claude-api/shared/prompt-caching.md +0 -292
  131. package/skills/claude-api/shared/token-counting.md +0 -56
  132. package/skills/claude-api/shared/tool-use-concepts.md +0 -526
  133. package/skills/claude-api/typescript/claude-api/README.md +0 -405
  134. package/skills/claude-api/typescript/claude-api/batches.md +0 -106
  135. package/skills/claude-api/typescript/claude-api/files-api.md +0 -98
  136. package/skills/claude-api/typescript/claude-api/streaming.md +0 -178
  137. package/skills/claude-api/typescript/claude-api/tool-use.md +0 -586
  138. package/skills/claude-api/typescript/managed-agents/README.md +0 -359
  139. package/tests/auto-permissions.test.mjs +0 -315
  140. package/tests/background-tasks.test.mjs +0 -27
  141. package/tests/background-worker.test.mjs +0 -60
  142. package/tests/bash-permissions.test.mjs +0 -276
  143. package/tests/glob.test.mjs +0 -31
  144. package/tests/mode.test.mjs +0 -62
  145. package/tests/permission-evaluation.test.mjs +0 -70
  146. package/tests/permission-foundation.test.mjs +0 -194
  147. package/tests/permission-policy.test.mjs +0 -158
  148. package/tests/runtime/README.md +0 -51
  149. package/tests/runtime/harness.mjs +0 -190
  150. package/tests/runtime/permissions.test.mjs +0 -192
  151. package/tests/runtime/tui.test.mjs +0 -60
  152. package/tests/task-integration.test.mjs +0 -324
  153. package/tests/task-permissions.test.mjs +0 -178
  154. package/tests/task-worktree-policy.test.mjs +0 -53
@@ -1,178 +0,0 @@
1
- # Streaming - TypeScript
2
-
3
- ## Quick Start
4
-
5
- ```typescript
6
- const stream = client.messages.stream({
7
- model: "claude-opus-5",
8
- max_tokens: 64000,
9
- messages: [{ role: "user", content: "Write a story" }],
10
- });
11
-
12
- for await (const event of stream) {
13
- if (
14
- event.type === "content_block_delta" &&
15
- event.delta.type === "text_delta"
16
- ) {
17
- process.stdout.write(event.delta.text);
18
- }
19
- }
20
- ```
21
-
22
- ---
23
-
24
- ## Handling Different Content Types
25
-
26
- > **Fable 5 / Claude Opus 5 / Opus 4.8 / Opus 4.7 / Opus 4.6:** Use `thinking: {type: "adaptive"}`. On Claude Opus 5 adaptive is also what you get by omitting `thinking` entirely. On older models, use `thinking: {type: "enabled", budget_tokens: N}` instead.
27
-
28
- ```typescript
29
- const stream = client.messages.stream({
30
- model: "claude-opus-5",
31
- max_tokens: 64000,
32
- thinking: { type: "adaptive", display: "summarized" }, // display opt-in: default is omitted (empty thinking text) on Fable 5 / Mythos 5 / Claude Opus 5 / Opus 4.8 / 4.7
33
- messages: [{ role: "user", content: "Analyze this problem" }],
34
- });
35
-
36
- for await (const event of stream) {
37
- switch (event.type) {
38
- case "content_block_start":
39
- switch (event.content_block.type) {
40
- case "thinking":
41
- console.log("\n[Thinking...]");
42
- break;
43
- case "text":
44
- console.log("\n[Response:]");
45
- break;
46
- }
47
- break;
48
- case "content_block_delta":
49
- switch (event.delta.type) {
50
- case "thinking_delta":
51
- process.stdout.write(event.delta.thinking);
52
- break;
53
- case "text_delta":
54
- process.stdout.write(event.delta.text);
55
- break;
56
- }
57
- break;
58
- }
59
- }
60
- ```
61
-
62
- ---
63
-
64
- ## Streaming with Tool Use (Tool Runner)
65
-
66
- Use the tool runner with `stream: true`. The outer loop iterates over tool runner iterations (messages), the inner loop processes stream events:
67
-
68
- ```typescript
69
- import Anthropic from "@anthropic-ai/sdk";
70
- import { betaZodTool } from "@anthropic-ai/sdk/helpers/beta/zod";
71
- import { z } from "zod";
72
-
73
- const client = new Anthropic();
74
-
75
- const getWeather = betaZodTool({
76
- name: "get_weather",
77
- description: "Get current weather for a location",
78
- inputSchema: z.object({
79
- location: z.string().describe("City and state, e.g., San Francisco, CA"),
80
- }),
81
- run: async ({ location }) => `72°F and sunny in ${location}`,
82
- });
83
-
84
- const runner = client.beta.messages.toolRunner({
85
- model: "claude-opus-5",
86
- max_tokens: 64000,
87
- tools: [getWeather],
88
- messages: [
89
- { role: "user", content: "What's the weather in Paris and London?" },
90
- ],
91
- stream: true,
92
- });
93
-
94
- // Outer loop: each tool runner iteration
95
- for await (const messageStream of runner) {
96
- // Inner loop: stream events for this iteration
97
- for await (const event of messageStream) {
98
- switch (event.type) {
99
- case "content_block_delta":
100
- switch (event.delta.type) {
101
- case "text_delta":
102
- process.stdout.write(event.delta.text);
103
- break;
104
- case "input_json_delta":
105
- // Tool input being streamed
106
- break;
107
- }
108
- break;
109
- }
110
- }
111
- }
112
- ```
113
-
114
- ---
115
-
116
- ## Getting the Final Message
117
-
118
- ```typescript
119
- const stream = client.messages.stream({
120
- model: "claude-opus-5",
121
- max_tokens: 64000,
122
- messages: [{ role: "user", content: "Hello" }],
123
- });
124
-
125
- for await (const event of stream) {
126
- // Process events...
127
- }
128
-
129
- const finalMessage = await stream.finalMessage();
130
- console.log(`Tokens used: ${finalMessage.usage.output_tokens}`);
131
- ```
132
-
133
- ---
134
-
135
- ## Stream Event Types
136
-
137
- | Event Type | Description | When it fires |
138
- | --------------------- | --------------------------- | --------------------------------- |
139
- | `message_start` | Contains message metadata | Once at the beginning |
140
- | `content_block_start` | New content block beginning | When a text/tool_use block starts |
141
- | `content_block_delta` | Incremental content update | For each token/chunk |
142
- | `content_block_stop` | Content block complete | When a block finishes |
143
- | `message_delta` | Message-level updates | Contains `stop_reason`, usage |
144
- | `message_stop` | Message complete | Once at the end |
145
-
146
- ## Best Practices
147
-
148
- 1. **Always flush output** - Use `process.stdout.write()` for immediate display
149
- 2. **Handle partial responses** - If the stream is interrupted, you may have incomplete content
150
- 3. **Track token usage** - The `message_delta` event contains usage information
151
- 4. **Use `finalMessage()`** - Get the complete `Anthropic.Message` object even when streaming. Don't wrap `.on()` events in `new Promise()` - `finalMessage()` handles all completion/error/abort states internally
152
- 5. **Buffer for web UIs** - Consider buffering a few tokens before rendering to avoid excessive DOM updates
153
- 6. **Use `stream.on("text", ...)` for deltas** - The `text` event provides just the delta string, simpler than manually filtering `content_block_delta` events
154
- 7. **For agentic loops with streaming** - See the [Streaming Manual Loop](./tool-use.md#streaming-manual-loop) section in tool-use.md for combining `stream()` + `finalMessage()` with a tool-use loop
155
-
156
- ## Raw SSE Format
157
-
158
- If using raw HTTP (not SDKs), the stream returns Server-Sent Events:
159
-
160
- ```
161
- event: message_start
162
- data: {"type":"message_start","message":{"id":"msg_...","type":"message",...}}
163
-
164
- event: content_block_start
165
- data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
166
-
167
- event: content_block_delta
168
- data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Hello"}}
169
-
170
- event: content_block_stop
171
- data: {"type":"content_block_stop","index":0}
172
-
173
- event: message_delta
174
- data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":12}}
175
-
176
- event: message_stop
177
- data: {"type":"message_stop"}
178
- ```