@preapexis/piexis 0.2.2 → 0.2.5

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