@preapexis/piexis 0.2.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 (149) hide show
  1. package/AGENTS.md +21 -41
  2. package/README.md +73 -139
  3. package/extensions/agents.ts +205 -0
  4. package/extensions/ask-question.ts +54 -95
  5. package/extensions/recommended-tools.ts +62 -0
  6. package/extensions/ui.ts +204 -58
  7. package/lib/agent-config.ts +55 -0
  8. package/lib/agents.ts +208 -0
  9. package/lib/question-model.ts +98 -0
  10. package/lib/question-ui.ts +214 -0
  11. package/lib/recommended-tools.ts +119 -0
  12. package/lib/subagent-runner.ts +146 -0
  13. package/lib/ui-tips.json +41 -0
  14. package/package.json +5 -13
  15. package/prompts/init.md +10 -2
  16. package/prompts/summary.md +7 -6
  17. package/schemas/agent.schema.json +48 -0
  18. package/skills/{claude-api/LICENSE.txt → caveman/LICENSE} +2 -2
  19. package/skills/caveman/LICENSE-MIT +21 -0
  20. package/skills/caveman/NOTICE +10 -0
  21. package/skills/caveman/SKILL.md +89 -0
  22. package/skills/find-skills/SKILL.md +141 -0
  23. package/skills/ponytail/LICENSE +21 -0
  24. package/skills/ponytail/NOTICE +9 -0
  25. package/skills/ponytail/SKILL.md +52 -0
  26. package/skills-lock.json +6 -0
  27. package/tests/agents.test.mjs +605 -0
  28. package/tests/ask-question-pty.test.mjs +16 -0
  29. package/tests/ask-question.test.mjs +269 -0
  30. package/tests/fixtures/agents-provider.ts +55 -0
  31. package/tests/fixtures/ask-question-pty.py +91 -0
  32. package/tests/fixtures/ask-question-terminal.mjs +69 -0
  33. package/tests/fixtures/recommended-tools-terminal.mjs +103 -0
  34. package/tests/init-workflow.test.mjs +31 -0
  35. package/tests/recommended-tools-pty.test.mjs +16 -0
  36. package/tests/recommended-tools.test.mjs +423 -0
  37. package/tests/resources.test.mjs +66 -0
  38. package/tests/skills-routing.test.mjs +7 -4
  39. package/tests/ui-tip-reload.test.mjs +70 -0
  40. package/tests/ui.test.mjs +450 -0
  41. package/tsconfig.json +1 -0
  42. package/eval/README.md +0 -72
  43. package/eval/permission-cases.json +0 -28
  44. package/eval/permissions.mjs +0 -103
  45. package/extensions/background-tasks.ts +0 -433
  46. package/extensions/background-worker.ts +0 -50
  47. package/extensions/glob.ts +0 -32
  48. package/extensions/mode.ts +0 -397
  49. package/lib/bash-approvals.ts +0 -113
  50. package/lib/bash-policy.ts +0 -164
  51. package/lib/mode-policy.ts +0 -174
  52. package/lib/path-policy.ts +0 -182
  53. package/lib/permission-classifier.ts +0 -128
  54. package/lib/permission-config.ts +0 -91
  55. package/lib/permission-denials.ts +0 -32
  56. package/lib/permission-intent.ts +0 -128
  57. package/lib/permission-taxonomy.ts +0 -15
  58. package/lib/task-broker.ts +0 -65
  59. package/lib/task-checkout.ts +0 -39
  60. package/lib/task-git.ts +0 -44
  61. package/lib/task-patch.ts +0 -106
  62. package/lib/task-permissions.ts +0 -51
  63. package/lib/task-report.ts +0 -62
  64. package/lib/task-worktree-policy.ts +0 -56
  65. package/skills/claude-api/SKILL.md +0 -572
  66. package/skills/claude-api/csharp/claude-api/README.md +0 -362
  67. package/skills/claude-api/csharp/claude-api/batches.md +0 -14
  68. package/skills/claude-api/csharp/claude-api/files-api.md +0 -25
  69. package/skills/claude-api/csharp/claude-api/streaming.md +0 -28
  70. package/skills/claude-api/csharp/claude-api/tool-use.md +0 -164
  71. package/skills/claude-api/curl/examples.md +0 -256
  72. package/skills/claude-api/curl/managed-agents.md +0 -371
  73. package/skills/claude-api/go/claude-api/README.md +0 -188
  74. package/skills/claude-api/go/claude-api/files-api.md +0 -23
  75. package/skills/claude-api/go/claude-api/streaming.md +0 -43
  76. package/skills/claude-api/go/claude-api/tool-use.md +0 -220
  77. package/skills/claude-api/go/managed-agents/README.md +0 -564
  78. package/skills/claude-api/java/claude-api/README.md +0 -238
  79. package/skills/claude-api/java/claude-api/files-api.md +0 -27
  80. package/skills/claude-api/java/claude-api/streaming.md +0 -24
  81. package/skills/claude-api/java/claude-api/tool-use.md +0 -228
  82. package/skills/claude-api/java/managed-agents/README.md +0 -443
  83. package/skills/claude-api/php/claude-api/README.md +0 -174
  84. package/skills/claude-api/php/claude-api/batches.md +0 -15
  85. package/skills/claude-api/php/claude-api/files-api.md +0 -13
  86. package/skills/claude-api/php/claude-api/streaming.md +0 -27
  87. package/skills/claude-api/php/claude-api/tool-use.md +0 -253
  88. package/skills/claude-api/php/managed-agents/README.md +0 -443
  89. package/skills/claude-api/python/claude-api/README.md +0 -565
  90. package/skills/claude-api/python/claude-api/batches.md +0 -198
  91. package/skills/claude-api/python/claude-api/files-api.md +0 -170
  92. package/skills/claude-api/python/claude-api/sdk-upgrade.md +0 -286
  93. package/skills/claude-api/python/claude-api/streaming.md +0 -179
  94. package/skills/claude-api/python/claude-api/tool-use.md +0 -627
  95. package/skills/claude-api/python/managed-agents/README.md +0 -335
  96. package/skills/claude-api/ruby/claude-api/README.md +0 -134
  97. package/skills/claude-api/ruby/claude-api/streaming.md +0 -16
  98. package/skills/claude-api/ruby/claude-api/tool-use.md +0 -41
  99. package/skills/claude-api/ruby/managed-agents/README.md +0 -394
  100. package/skills/claude-api/shared/admin-api.md +0 -179
  101. package/skills/claude-api/shared/agent-design.md +0 -101
  102. package/skills/claude-api/shared/anthropic-cli.md +0 -269
  103. package/skills/claude-api/shared/claude-platform-on-aws.md +0 -59
  104. package/skills/claude-api/shared/cost-optimization.md +0 -233
  105. package/skills/claude-api/shared/error-codes.md +0 -262
  106. package/skills/claude-api/shared/live-sources.md +0 -166
  107. package/skills/claude-api/shared/managed-agents-api-reference.md +0 -455
  108. package/skills/claude-api/shared/managed-agents-client-patterns.md +0 -220
  109. package/skills/claude-api/shared/managed-agents-core.md +0 -359
  110. package/skills/claude-api/shared/managed-agents-environments.md +0 -226
  111. package/skills/claude-api/shared/managed-agents-events.md +0 -290
  112. package/skills/claude-api/shared/managed-agents-memory.md +0 -201
  113. package/skills/claude-api/shared/managed-agents-multiagent.md +0 -260
  114. package/skills/claude-api/shared/managed-agents-onboarding.md +0 -82
  115. package/skills/claude-api/shared/managed-agents-outcomes.md +0 -108
  116. package/skills/claude-api/shared/managed-agents-overview.md +0 -77
  117. package/skills/claude-api/shared/managed-agents-scheduled-deployments.md +0 -156
  118. package/skills/claude-api/shared/managed-agents-self-hosted-sandboxes.md +0 -282
  119. package/skills/claude-api/shared/managed-agents-tools.md +0 -504
  120. package/skills/claude-api/shared/managed-agents-webhooks.md +0 -143
  121. package/skills/claude-api/shared/model-migration.md +0 -1872
  122. package/skills/claude-api/shared/models.md +0 -142
  123. package/skills/claude-api/shared/platform-availability.md +0 -53
  124. package/skills/claude-api/shared/prompt-audit.md +0 -223
  125. package/skills/claude-api/shared/prompt-caching.md +0 -292
  126. package/skills/claude-api/shared/token-counting.md +0 -56
  127. package/skills/claude-api/shared/tool-use-concepts.md +0 -526
  128. package/skills/claude-api/typescript/claude-api/README.md +0 -405
  129. package/skills/claude-api/typescript/claude-api/batches.md +0 -106
  130. package/skills/claude-api/typescript/claude-api/files-api.md +0 -98
  131. package/skills/claude-api/typescript/claude-api/streaming.md +0 -178
  132. package/skills/claude-api/typescript/claude-api/tool-use.md +0 -586
  133. package/skills/claude-api/typescript/managed-agents/README.md +0 -359
  134. package/tests/auto-permissions.test.mjs +0 -315
  135. package/tests/background-tasks.test.mjs +0 -27
  136. package/tests/background-worker.test.mjs +0 -60
  137. package/tests/bash-permissions.test.mjs +0 -276
  138. package/tests/glob.test.mjs +0 -31
  139. package/tests/mode.test.mjs +0 -62
  140. package/tests/permission-evaluation.test.mjs +0 -70
  141. package/tests/permission-foundation.test.mjs +0 -194
  142. package/tests/permission-policy.test.mjs +0 -158
  143. package/tests/runtime/README.md +0 -51
  144. package/tests/runtime/harness.mjs +0 -190
  145. package/tests/runtime/permissions.test.mjs +0 -192
  146. package/tests/runtime/tui.test.mjs +0 -60
  147. package/tests/task-integration.test.mjs +0 -324
  148. package/tests/task-permissions.test.mjs +0 -178
  149. 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
- ```