@getpaseo/protocol 0.1.110 → 0.2.0-beta.2

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.
@@ -1,4 +1,8 @@
1
1
  import { z } from "zod";
2
+ export declare const PaseoServicePortAllocationSchema: z.ZodObject<{
3
+ range: z.ZodOptional<z.ZodString>;
4
+ portScript: z.ZodOptional<z.ZodString>;
5
+ }, z.core.$strict>;
2
6
  export declare function normalizeLifecycleCommands(commands: unknown): string[];
3
7
  export declare const PaseoLifecycleCommandRawSchema: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
4
8
  export declare const PaseoScriptEntryRawSchema: z.ZodObject<{
@@ -10,6 +14,10 @@ export declare const PaseoWorktreeConfigRawSchema: z.ZodObject<{
10
14
  setup: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
11
15
  teardown: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
12
16
  terminals: z.ZodOptional<z.ZodUnknown>;
17
+ servicePorts: z.ZodOptional<z.ZodObject<{
18
+ range: z.ZodOptional<z.ZodString>;
19
+ portScript: z.ZodOptional<z.ZodString>;
20
+ }, z.core.$strict>>;
13
21
  }, z.core.$loose>;
14
22
  export declare const PaseoMetadataGenerationEntrySchema: z.ZodCatch<z.ZodObject<{
15
23
  instructions: z.ZodOptional<z.ZodString>;
@@ -33,6 +41,10 @@ export declare const PaseoConfigRawSchema: z.ZodObject<{
33
41
  setup: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
34
42
  teardown: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
35
43
  terminals: z.ZodOptional<z.ZodUnknown>;
44
+ servicePorts: z.ZodOptional<z.ZodObject<{
45
+ range: z.ZodOptional<z.ZodString>;
46
+ portScript: z.ZodOptional<z.ZodString>;
47
+ }, z.core.$strict>>;
36
48
  }, z.core.$loose>>;
37
49
  scripts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
38
50
  type: z.ZodOptional<z.ZodUnknown>;
@@ -56,6 +68,10 @@ export declare const PaseoConfigRawSchema: z.ZodObject<{
56
68
  }, z.core.$loose>;
57
69
  export declare const WorktreeConfigSchema: z.ZodCatch<z.ZodObject<{
58
70
  terminals: z.ZodOptional<z.ZodUnknown>;
71
+ servicePorts: z.ZodOptional<z.ZodObject<{
72
+ range: z.ZodOptional<z.ZodString>;
73
+ portScript: z.ZodOptional<z.ZodString>;
74
+ }, z.core.$strict>>;
59
75
  setup: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<string[], unknown>>;
60
76
  teardown: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<string[], unknown>>;
61
77
  }, z.core.$loose>>;
@@ -67,6 +83,10 @@ export declare const ScriptEntrySchema: z.ZodCatch<z.ZodObject<{
67
83
  export declare const PaseoConfigSchema: z.ZodCatch<z.ZodObject<{
68
84
  worktree: z.ZodOptional<z.ZodCatch<z.ZodObject<{
69
85
  terminals: z.ZodOptional<z.ZodUnknown>;
86
+ servicePorts: z.ZodOptional<z.ZodObject<{
87
+ range: z.ZodOptional<z.ZodString>;
88
+ portScript: z.ZodOptional<z.ZodString>;
89
+ }, z.core.$strict>>;
70
90
  setup: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<string[], unknown>>;
71
91
  teardown: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<string[], unknown>>;
72
92
  }, z.core.$loose>>>;
@@ -110,6 +130,7 @@ export declare const ProjectConfigRpcErrorSchema: z.ZodDiscriminatedUnion<[z.Zod
110
130
  export type PaseoScriptEntryRaw = z.infer<typeof PaseoScriptEntryRawSchema>;
111
131
  export type PaseoMetadataGenerationEntry = z.infer<typeof PaseoMetadataGenerationEntrySchema>;
112
132
  export type PaseoMetadataGeneration = z.infer<typeof PaseoMetadataGenerationSchema>;
133
+ export type PaseoServicePortAllocation = z.infer<typeof PaseoServicePortAllocationSchema>;
113
134
  export type PaseoConfigRaw = z.infer<typeof PaseoConfigRawSchema>;
114
135
  export type PaseoConfig = z.infer<typeof PaseoConfigSchema>;
115
136
  export type PaseoConfigRevision = z.infer<typeof PaseoConfigRevisionSchema>;
@@ -1,4 +1,22 @@
1
1
  import { z } from "zod";
2
+ const TCP_PORT_RANGE_PATTERN = /^(\d{1,5})-(\d{1,5})$/;
3
+ export const PaseoServicePortAllocationSchema = z
4
+ .object({
5
+ range: z.string().trim().regex(TCP_PORT_RANGE_PATTERN).optional(),
6
+ portScript: z.string().trim().min(1).optional(),
7
+ })
8
+ .strict()
9
+ .refine((value) => value.range !== undefined || value.portScript !== undefined, "Expected range or portScript")
10
+ .refine((value) => {
11
+ if (!value.range)
12
+ return true;
13
+ const match = TCP_PORT_RANGE_PATTERN.exec(value.range);
14
+ if (!match)
15
+ return false;
16
+ const start = Number(match[1]);
17
+ const end = Number(match[2]);
18
+ return start >= 1 && end <= 65535 && start <= end;
19
+ }, "Expected an inclusive TCP port range from 1-65535");
2
20
  export function normalizeLifecycleCommands(commands) {
3
21
  if (typeof commands === "string") {
4
22
  return commands.trim().length > 0 ? [commands] : [];
@@ -23,6 +41,7 @@ export const PaseoWorktreeConfigRawSchema = z
23
41
  setup: PaseoLifecycleCommandRawSchema.optional(),
24
42
  teardown: PaseoLifecycleCommandRawSchema.optional(),
25
43
  terminals: z.unknown().optional(),
44
+ servicePorts: PaseoServicePortAllocationSchema.optional(),
26
45
  })
27
46
  .passthrough();
28
47
  export const PaseoMetadataGenerationEntrySchema = z
@@ -22,6 +22,7 @@ export interface AgentProviderDefinition {
22
22
  defaultModel?: string;
23
23
  };
24
24
  }
25
+ export declare const OMP_MODES: AgentProviderModeDefinition[];
25
26
  export declare const AGENT_PROVIDER_DEFINITIONS: AgentProviderDefinition[];
26
27
  export declare const DEV_AGENT_PROVIDER_DEFINITIONS: AgentProviderDefinition[];
27
28
  export declare function getAgentProviderDefinition(provider: string, definitions?: AgentProviderDefinition[]): AgentProviderDefinition;
@@ -101,6 +101,23 @@ const OPENCODE_MODES = [
101
101
  colorTier: "planning",
102
102
  },
103
103
  ];
104
+ export const OMP_MODES = [
105
+ {
106
+ id: "full",
107
+ label: "Full Access",
108
+ description: "Launches OMP with yolo approval mode so tools run without prompts.",
109
+ icon: "ShieldOff",
110
+ colorTier: "dangerous",
111
+ isUnattended: true,
112
+ },
113
+ {
114
+ id: "ask",
115
+ label: "Always Ask",
116
+ description: "Launches OMP with always-ask approval mode for write and exec tools.",
117
+ icon: "ShieldCheck",
118
+ colorTier: "safe",
119
+ },
120
+ ];
104
121
  const MOCK_LOAD_TEST_MODES = [
105
122
  {
106
123
  id: "load-test",
@@ -124,7 +141,7 @@ export const AGENT_PROVIDER_DEFINITIONS = [
124
141
  id: "claude",
125
142
  label: "Claude",
126
143
  description: "Anthropic's multi-tool assistant with MCP support, streaming, and deep reasoning",
127
- defaultModeId: "default",
144
+ defaultModeId: "auto",
128
145
  modes: CLAUDE_MODES,
129
146
  voice: {
130
147
  enabled: true,
@@ -136,7 +153,7 @@ export const AGENT_PROVIDER_DEFINITIONS = [
136
153
  id: "codex",
137
154
  label: "Codex",
138
155
  description: "OpenAI's Codex workspace agent with sandbox controls and optional network access",
139
- defaultModeId: "auto",
156
+ defaultModeId: "auto-review",
140
157
  modes: CODEX_MODES,
141
158
  voice: {
142
159
  enabled: true,
@@ -174,11 +191,11 @@ export const AGENT_PROVIDER_DEFINITIONS = [
174
191
  },
175
192
  {
176
193
  id: "omp",
177
- label: "OMP",
178
- description: "Pi-compatible coding agent distributed as Oh My Pi",
194
+ label: "Oh My Pi",
195
+ description: "Multi-provider coding agent with native approvals, host tools, and subagents",
179
196
  enabledByDefault: false,
180
- defaultModeId: null,
181
- modes: [],
197
+ defaultModeId: "full",
198
+ modes: OMP_MODES,
182
199
  },
183
200
  ];
184
201
  export const DEV_AGENT_PROVIDER_DEFINITIONS = [
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Convert an exact rolling interval to an equivalent five-field cron cadence.
3
+ * Returns null when cron's calendar boundaries would change the interval.
4
+ */
5
+ export declare function everyMsToFiveFieldCron(everyMs: number): string | null;
6
+ //# sourceMappingURL=cadence.d.ts.map
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Convert an exact rolling interval to an equivalent five-field cron cadence.
3
+ * Returns null when cron's calendar boundaries would change the interval.
4
+ */
5
+ export function everyMsToFiveFieldCron(everyMs) {
6
+ const minutes = everyMs / 60000;
7
+ if (!Number.isInteger(minutes) || minutes <= 0) {
8
+ return null;
9
+ }
10
+ if (minutes < 60 && 60 % minutes === 0) {
11
+ return `*/${minutes} * * * *`;
12
+ }
13
+ if (minutes === 60) {
14
+ return "0 * * * *";
15
+ }
16
+ if (minutes % 60 !== 0) {
17
+ return null;
18
+ }
19
+ const hours = minutes / 60;
20
+ if (hours < 24 && 24 % hours === 0) {
21
+ return `0 */${hours} * * *`;
22
+ }
23
+ if (hours === 24) {
24
+ return "0 0 * * *";
25
+ }
26
+ return null;
27
+ }
28
+ //# sourceMappingURL=cadence.js.map