paseo-plugin-zcode-provider 0.0.0-stage → 0.2.0

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 (141) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE.md +29 -0
  3. package/README.md +112 -2
  4. package/client/account.tsx +827 -0
  5. package/client/diagnostics.tsx +379 -0
  6. package/client/runtime.tsx +296 -0
  7. package/client/settings.tsx +84 -0
  8. package/client/value.tsx +20 -0
  9. package/icon.svg +1 -0
  10. package/index.client.tsx +22 -0
  11. package/index.server.ts +39 -0
  12. package/package.json +77 -4
  13. package/paseo-plugin.json +6 -0
  14. package/server/account.ts +781 -0
  15. package/server/attachments.ts +150 -0
  16. package/server/build-info.ts +2 -0
  17. package/server/conversation.ts +319 -0
  18. package/server/diagnostics.ts +252 -0
  19. package/server/discovery/discover.ts +225 -0
  20. package/server/discovery/manifest.ts +36 -0
  21. package/server/discovery/types.ts +30 -0
  22. package/server/errors.ts +36 -0
  23. package/server/host/bridge.ts +490 -0
  24. package/server/host/schemas.ts +119 -0
  25. package/server/logger.ts +19 -0
  26. package/server/mapping.ts +270 -0
  27. package/server/models.ts +68 -0
  28. package/server/persistence.ts +146 -0
  29. package/server/presentation.ts +470 -0
  30. package/server/provider-status.ts +81 -0
  31. package/server/provider.ts +838 -0
  32. package/server/runtime/managed.ts +501 -0
  33. package/server/runtime/pins.ts +72 -0
  34. package/server/runtime-setup.ts +77 -0
  35. package/server/session-types.ts +49 -0
  36. package/server/session.ts +866 -0
  37. package/server/status.ts +89 -0
  38. package/server/timeline.ts +18 -0
  39. package/server/usage.ts +362 -0
  40. package/server/vendor/zcode/LICENSE +202 -0
  41. package/server/vendor/zcode/NOTICE.md +70 -0
  42. package/server/vendor/zcode/THIRD-PARTY-NOTICES.md +37 -0
  43. package/server/vendor/zcode/packages/model-option-map/src/compiler.ts +92 -0
  44. package/server/vendor/zcode/packages/model-option-map/src/evaluator.ts +214 -0
  45. package/server/vendor/zcode/packages/model-option-map/src/index.ts +5 -0
  46. package/server/vendor/zcode/packages/model-option-map/src/merge-patch.ts +97 -0
  47. package/server/vendor/zcode/packages/model-option-map/src/option-maps.ts +42 -0
  48. package/server/vendor/zcode/packages/model-option-map/src/parser.ts +240 -0
  49. package/server/vendor/zcode/packages/model-option-map/src/tokenizer.ts +141 -0
  50. package/server/vendor/zcode/packages/model-option-map/src/types.ts +36 -0
  51. package/server/vendor/zcode/packages/rpc/src/buffer.ts +88 -0
  52. package/server/vendor/zcode/packages/rpc/src/channelClient.ts +275 -0
  53. package/server/vendor/zcode/packages/rpc/src/channelServer.ts +283 -0
  54. package/server/vendor/zcode/packages/rpc/src/channels.shared.ts +66 -0
  55. package/server/vendor/zcode/packages/rpc/src/channels.ts +4 -0
  56. package/server/vendor/zcode/packages/rpc/src/delayedChannel.ts +17 -0
  57. package/server/vendor/zcode/packages/rpc/src/foundation.ts +260 -0
  58. package/server/vendor/zcode/packages/rpc/src/protocol.ts +397 -0
  59. package/server/vendor/zcode/packages/rpc/src/proxy-channel.ts +213 -0
  60. package/server/vendor/zcode/packages/rpc/src/serialization.ts +291 -0
  61. package/server/vendor/zcode/packages/shared/src/account-provider-state.ts +13 -0
  62. package/server/vendor/zcode/packages/shared/src/background-bash-output.ts +24 -0
  63. package/server/vendor/zcode/packages/shared/src/background-task-controls.ts +404 -0
  64. package/server/vendor/zcode/packages/shared/src/bash-output-display.ts +11 -0
  65. package/server/vendor/zcode/packages/shared/src/bots.ts +558 -0
  66. package/server/vendor/zcode/packages/shared/src/browser-use/backend.ts +80 -0
  67. package/server/vendor/zcode/packages/shared/src/browser-use/command-metadata.ts +170 -0
  68. package/server/vendor/zcode/packages/shared/src/browser-use/commands.ts +588 -0
  69. package/server/vendor/zcode/packages/shared/src/browser-use/result.ts +130 -0
  70. package/server/vendor/zcode/packages/shared/src/browser-use/snapshot.ts +77 -0
  71. package/server/vendor/zcode/packages/shared/src/command-types.ts +96 -0
  72. package/server/vendor/zcode/packages/shared/src/config-schema.ts +8 -0
  73. package/server/vendor/zcode/packages/shared/src/cuaAccessibilitySettings.ts +41 -0
  74. package/server/vendor/zcode/packages/shared/src/database-startup.ts +178 -0
  75. package/server/vendor/zcode/packages/shared/src/env.ts +63 -0
  76. package/server/vendor/zcode/packages/shared/src/execution-output-preview.ts +14 -0
  77. package/server/vendor/zcode/packages/shared/src/localTtft.ts +192 -0
  78. package/server/vendor/zcode/packages/shared/src/model-config.ts +123 -0
  79. package/server/vendor/zcode/packages/shared/src/model-execution.ts +23 -0
  80. package/server/vendor/zcode/packages/shared/src/model-provider-family.ts +171 -0
  81. package/server/vendor/zcode/packages/shared/src/model-provider-types.ts +81 -0
  82. package/server/vendor/zcode/packages/shared/src/model-selection.ts +60 -0
  83. package/server/vendor/zcode/packages/shared/src/oauth.ts +203 -0
  84. package/server/vendor/zcode/packages/shared/src/official-mcp-auth.ts +272 -0
  85. package/server/vendor/zcode/packages/shared/src/official-mcp-tool-error.ts +68 -0
  86. package/server/vendor/zcode/packages/shared/src/process-diagnostic.ts +42 -0
  87. package/server/vendor/zcode/packages/shared/src/protocol.ts +369 -0
  88. package/server/vendor/zcode/packages/shared/src/provider-family-connection-selection.ts +32 -0
  89. package/server/vendor/zcode/packages/shared/src/remoteAssetInstallMode.ts +11 -0
  90. package/server/vendor/zcode/packages/shared/src/remoteResourcePackages.ts +91 -0
  91. package/server/vendor/zcode/packages/shared/src/runtimeEnv.ts +315 -0
  92. package/server/vendor/zcode/packages/shared/src/settings-source.ts +10 -0
  93. package/server/vendor/zcode/packages/shared/src/usage-quota.ts +74 -0
  94. package/server/vendor/zcode/packages/shared/src/usage-stats.ts +462 -0
  95. package/server/vendor/zcode/packages/shared/src/validationAppSettings.ts +562 -0
  96. package/server/vendor/zcode/packages/shared/src/workspacePurpose.ts +2 -0
  97. package/server/vendor/zcode/packages/shared/src/wslUserValidation.ts +33 -0
  98. package/server/vendor/zcode/packages/shared/src/zcode-agent-policy.ts +25 -0
  99. package/server/vendor/zcode/packages/shared/src/zcode-media-policy.ts +10 -0
  100. package/server/vendor/zcode/packages/shared/src/zcode-protocol/index.ts +3720 -0
  101. package/server/vendor/zcode/packages/shared/src/zcode-protocol-legacy-types.ts +529 -0
  102. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/apply.ts +218 -0
  103. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/attachment-ref.ts +14 -0
  104. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/command.ts +482 -0
  105. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/core.ts +100 -0
  106. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/create-workflow-display.ts +156 -0
  107. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/cuaPermission.ts +41 -0
  108. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/delta.ts +147 -0
  109. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/input-intent.ts +69 -0
  110. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/rows.ts +432 -0
  111. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/session-config.ts +43 -0
  112. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/sessions-index-workflow-activity.ts +195 -0
  113. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/sessions-index.ts +85 -0
  114. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/shared-context-import.ts +38 -0
  115. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/shared-context-ref.ts +10 -0
  116. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/snapshot.ts +509 -0
  117. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/submission.ts +5 -0
  118. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/toolDisplay.ts +264 -0
  119. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/transport.ts +1152 -0
  120. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/wire-assembler.ts +574 -0
  121. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/wire-binary.ts +65 -0
  122. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/wire-codec.ts +240 -0
  123. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/wire-fault.ts +39 -0
  124. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/wire.ts +159 -0
  125. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/workflow-artifacts.ts +291 -0
  126. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/workflow-observation-display.ts +281 -0
  127. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/workflow-row-meta.ts +163 -0
  128. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/workflow-run-settings-command.ts +62 -0
  129. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/workflow-runs-delta.ts +517 -0
  130. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/workflow-runs.ts +512 -0
  131. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/workspace-config.ts +81 -0
  132. package/server/vendor/zcode/packages/shared/src/zcode-protocol-v4/workspace-hook-review.ts +210 -0
  133. package/server/vendor/zcode/packages/shared/src/zcode-task-mode-schema.ts +6 -0
  134. package/server/vendor/zcode/packages/shared/src/zcode-task-types-core.ts +1187 -0
  135. package/server/vendor/zcode/packages/shared/src/zcodeEndpoint.ts +296 -0
  136. package/server/vendor/zcode/provenance.json +405 -0
  137. package/shared/account.ts +201 -0
  138. package/shared/diagnostics.ts +52 -0
  139. package/shared/runtime-setup.ts +73 -0
  140. package/vendor/acp-registry/LICENSE +176 -0
  141. package/vendor/paseo/LICENSE +211 -0
@@ -0,0 +1,210 @@
1
+ import { z } from "zod";
2
+ import { timestampSchema } from "./core.js";
3
+
4
+ const nonEmptyStringSchema = z.string().trim().min(1);
5
+ const positiveIntegerSchema = z.number().int().positive();
6
+ const nonnegativeIntegerSchema = z.number().int().nonnegative();
7
+ const sha256DigestSchema = z.string().regex(/^[a-f0-9]{64}$/u);
8
+
9
+ export const workspaceHookReviewTrustStateSchema = z.enum([
10
+ "not_applicable",
11
+ "pending_trust",
12
+ "trusted_persistent",
13
+ "blocked_untrusted",
14
+ "blocked_policy",
15
+ "revoked",
16
+ "stale_digest",
17
+ ]);
18
+ export type WorkspaceHookReviewTrustState = z.infer<typeof workspaceHookReviewTrustStateSchema>;
19
+
20
+ export const workspaceHookReviewDecisionSchema = z
21
+ .object({
22
+ action: z.literal("trust_selected"),
23
+ reviewItemIds: z.array(nonEmptyStringSchema).min(1),
24
+ })
25
+ .strict()
26
+ .superRefine((decision, context) => {
27
+ if ("reviewItemIds" in decision && decision.reviewItemIds) {
28
+ addDuplicateItemIssue(decision.reviewItemIds, context, ["reviewItemIds"]);
29
+ }
30
+ });
31
+ export type WorkspaceHookReviewDecision = z.infer<typeof workspaceHookReviewDecisionSchema>;
32
+
33
+ export const workspaceHookReviewCommandTargetSchema = z
34
+ .object({
35
+ sessionId: nonEmptyStringSchema,
36
+ taskId: nonEmptyStringSchema,
37
+ runId: nonEmptyStringSchema,
38
+ remoteSessionId: nonEmptyStringSchema.optional(),
39
+ workspaceIdentity: nonEmptyStringSchema,
40
+ bundleDigest: sha256DigestSchema,
41
+ reviewFlowId: nonEmptyStringSchema,
42
+ generation: positiveIntegerSchema,
43
+ interactionId: nonEmptyStringSchema,
44
+ })
45
+ .strict();
46
+ export type WorkspaceHookReviewCommandTarget = z.infer<
47
+ typeof workspaceHookReviewCommandTargetSchema
48
+ >;
49
+
50
+ export const workspaceHookTrustRevokeTargetSchema = z
51
+ .object({
52
+ sessionId: nonEmptyStringSchema,
53
+ remoteSessionId: nonEmptyStringSchema.optional(),
54
+ workspaceIdentity: nonEmptyStringSchema,
55
+ bundleDigest: sha256DigestSchema,
56
+ hookDeclarationDigests: z.array(sha256DigestSchema).min(1),
57
+ })
58
+ .strict()
59
+ .superRefine((target, context) => {
60
+ addDuplicateItemIssue(target.hookDeclarationDigests, context, ["hookDeclarationDigests"]);
61
+ });
62
+ export type WorkspaceHookTrustRevokeTarget = z.infer<typeof workspaceHookTrustRevokeTargetSchema>;
63
+
64
+ // 软门禁:按需开审核 flow 的命令 target。
65
+ // 克隆 revoke 的 non-flow target 变体,但不需要 hookDeclarationDigests
66
+ // (审核 flow 从当前 snapshot 拉取全部 pending items,而非指定 declarations)。
67
+ export const requestWorkspaceHookReviewTargetSchema = z
68
+ .object({
69
+ sessionId: nonEmptyStringSchema,
70
+ remoteSessionId: nonEmptyStringSchema.optional(),
71
+ workspaceIdentity: nonEmptyStringSchema,
72
+ bundleDigest: sha256DigestSchema,
73
+ })
74
+ .strict();
75
+ export type RequestWorkspaceHookReviewTarget = z.infer<
76
+ typeof requestWorkspaceHookReviewTargetSchema
77
+ >;
78
+
79
+ export const workspaceHookReviewRequestPayloadSchema = z
80
+ .object({
81
+ kind: z.literal("workspaceHookReview"),
82
+ reviewFlowId: nonEmptyStringSchema,
83
+ generation: positiveIntegerSchema,
84
+ interactionId: nonEmptyStringSchema,
85
+ sessionId: nonEmptyStringSchema,
86
+ taskId: nonEmptyStringSchema,
87
+ runId: nonEmptyStringSchema,
88
+ workspaceIdentity: nonEmptyStringSchema,
89
+ workspaceLabel: nonEmptyStringSchema,
90
+ remoteSessionId: nonEmptyStringSchema.optional(),
91
+ bundleDigest: sha256DigestSchema,
92
+ createdAt: timestampSchema,
93
+ deadlineAt: timestampSchema,
94
+ sourceFiles: z.array(
95
+ z
96
+ .object({
97
+ path: nonEmptyStringSchema,
98
+ displayPath: nonEmptyStringSchema,
99
+ editable: z.boolean(),
100
+ })
101
+ .strict(),
102
+ ),
103
+ summary: z
104
+ .object({
105
+ eventCount: nonnegativeIntegerSchema,
106
+ hookCount: nonnegativeIntegerSchema,
107
+ pendingCount: nonnegativeIntegerSchema,
108
+ })
109
+ .strict(),
110
+ items: z.array(
111
+ z
112
+ .object({
113
+ reviewItemId: nonEmptyStringSchema,
114
+ event: z.enum([
115
+ "SessionStart",
116
+ "UserPromptSubmit",
117
+ "PreToolUse",
118
+ "PermissionRequest",
119
+ "PostToolUse",
120
+ "PostToolUseFailure",
121
+ "Stop",
122
+ ]),
123
+ matcher: z.string().optional(),
124
+ type: z.enum(["command", "process"]),
125
+ displayName: nonEmptyStringSchema,
126
+ displayCommand: nonEmptyStringSchema,
127
+ sourcePath: nonEmptyStringSchema,
128
+ resolvedTimeoutMs: positiveIntegerSchema,
129
+ resolvedMaxOutputBytes: positiveIntegerSchema,
130
+ executionMode: z.enum(["foreground", "background"]),
131
+ configuredEnabled: z.boolean(),
132
+ editable: z.boolean(),
133
+ trustState: workspaceHookReviewTrustStateSchema,
134
+ })
135
+ .strict(),
136
+ ),
137
+ warningCode: z.literal("workspace_hooks_execute_code"),
138
+ })
139
+ .strict()
140
+ .superRefine((request, context) => {
141
+ if (request.deadlineAt < request.createdAt) {
142
+ context.addIssue({
143
+ code: z.ZodIssueCode.custom,
144
+ path: ["deadlineAt"],
145
+ message: "deadlineAt must not precede createdAt",
146
+ });
147
+ }
148
+ if (request.summary.hookCount !== request.items.length) {
149
+ context.addIssue({
150
+ code: z.ZodIssueCode.custom,
151
+ path: ["summary", "hookCount"],
152
+ message: "hookCount must match the immutable request items",
153
+ });
154
+ }
155
+ const eventCount = new Set(request.items.map((item) => item.event)).size;
156
+ if (request.summary.eventCount !== eventCount) {
157
+ context.addIssue({
158
+ code: z.ZodIssueCode.custom,
159
+ path: ["summary", "eventCount"],
160
+ message: "eventCount must match the immutable request items",
161
+ });
162
+ }
163
+ const pendingCount = request.items.filter((item) =>
164
+ ["pending_trust", "revoked", "stale_digest"].includes(item.trustState),
165
+ ).length;
166
+ if (request.summary.pendingCount !== pendingCount) {
167
+ context.addIssue({
168
+ code: z.ZodIssueCode.custom,
169
+ path: ["summary", "pendingCount"],
170
+ message: "pendingCount must match pending admission items",
171
+ });
172
+ }
173
+ addDuplicateItemIssue(
174
+ request.items.map((item) => item.reviewItemId),
175
+ context,
176
+ ["items"],
177
+ );
178
+ });
179
+ export type WorkspaceHookReviewRequestPayload = z.infer<
180
+ typeof workspaceHookReviewRequestPayloadSchema
181
+ >;
182
+
183
+ export const presentWorkspaceHookReviewRequestSchema = z
184
+ .object({
185
+ reviewFlowId: nonEmptyStringSchema,
186
+ generation: positiveIntegerSchema,
187
+ interactionId: nonEmptyStringSchema,
188
+ sessionId: nonEmptyStringSchema,
189
+ workspaceIdentity: nonEmptyStringSchema,
190
+ bundleDigest: sha256DigestSchema,
191
+ settingsSection: z.literal("hooks"),
192
+ settingsScope: z.literal("workspace"),
193
+ })
194
+ .strict();
195
+ export type PresentWorkspaceHookReviewRequest = z.infer<
196
+ typeof presentWorkspaceHookReviewRequestSchema
197
+ >;
198
+
199
+ function addDuplicateItemIssue(
200
+ values: readonly string[],
201
+ context: z.RefinementCtx,
202
+ path: PropertyKey[],
203
+ ): void {
204
+ if (new Set(values).size === values.length) return;
205
+ context.addIssue({
206
+ code: z.ZodIssueCode.custom,
207
+ path,
208
+ message: "review item ids must be unique",
209
+ });
210
+ }
@@ -0,0 +1,6 @@
1
+ import { z } from "zod";
2
+
3
+ // 该 schema 同时被 validation 聚合入口和 legacy protocol 使用,必须放在无反向依赖的叶子模块。
4
+ // 根因:protocol 从 validation 导入它,而 validation 又导入 protocol 的资源采样 schema,
5
+ // ESM/Jiti 在 clean Docker 中会先读到尚未初始化的 binding,导致 `.optional()` 启动即崩溃。
6
+ export const zcodeTaskModeSchema = z.enum(["yolo", "plan", "edit", "auto", "autoEdit", "build"]);