@poncho-ai/cli 0.36.9 → 0.38.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.
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  main
4
- } from "./chunk-IZLDZWPA.js";
4
+ } from "./chunk-U643TWFX.js";
5
5
 
6
6
  // src/cli.ts
7
7
  void main();
package/dist/index.d.ts CHANGED
@@ -1,139 +1,147 @@
1
- import { IncomingMessage, ServerResponse, Server } from 'node:http';
2
- import { AgentHarness, CronJobConfig, ConversationStore, Conversation } from '@poncho-ai/harness';
3
- import { AgentEvent, Message } from '@poncho-ai/sdk';
1
+ import { Server, IncomingMessage, ServerResponse } from 'node:http';
2
+ import * as _poncho_ai_harness from '@poncho-ai/harness';
3
+ import { Conversation, ConversationStore, AgentHarness, PonchoConfig, CronJobConfig } from '@poncho-ai/harness';
4
+ import { FileInput, AgentEvent, Message } from '@poncho-ai/sdk';
4
5
  import { MessagingAdapter } from '@poncho-ai/messaging';
5
6
  import { Command } from 'commander';
6
7
 
7
- type InitOnboardingOptions = {
8
- yes?: boolean;
9
- interactive?: boolean;
10
- };
11
-
8
+ declare const writeJson: (response: ServerResponse, statusCode: number, payload: unknown) => void;
9
+ declare const writeHtml: (response: ServerResponse, statusCode: number, payload: string) => void;
10
+ declare const EXT_MIME_MAP: Record<string, string>;
11
+ declare const extToMime: (ext: string) => string;
12
+ declare const readRequestBody: (request: IncomingMessage) => Promise<unknown>;
13
+ declare const parseTelegramMessageThreadIdFromPlatformThreadId: (platformThreadId: string | undefined, chatId: string | undefined) => number | undefined;
14
+ declare const MAX_UPLOAD_SIZE: number;
15
+ interface ParsedMultipart {
16
+ message: string;
17
+ parameters?: Record<string, unknown>;
18
+ files: FileInput[];
19
+ }
20
+ declare const parseMultipartRequest: (request: IncomingMessage) => Promise<ParsedMultipart>;
12
21
  /**
13
22
  * Detects the runtime environment from platform-specific or standard environment variables.
14
23
  * Priority: PONCHO_ENV > platform detection (Vercel, Railway, etc.) > NODE_ENV > "development"
15
24
  */
16
25
  declare const resolveHarnessEnvironment: () => "development" | "staging" | "production";
17
- type HistorySource = "harness" | "continuation" | "messages";
18
- type StoredApproval = NonNullable<Conversation["pendingApprovals"]>[number];
19
- type PendingToolCall = {
20
- id: string;
21
- name: string;
22
- input: Record<string, unknown>;
23
- };
24
- type ApprovalEventItem = {
25
- approvalId: string;
26
- tool: string;
27
- toolCallId?: string;
28
- input: Record<string, unknown>;
29
- };
30
- type RunRequest = {
31
- conversationId: string;
32
- messages: Message[];
33
- preferContinuation?: boolean;
34
- };
35
- type RunOutcome = {
36
- source: HistorySource;
37
- shouldRebuildCanonical: boolean;
38
- messages: Message[];
39
- };
40
- type TurnSection = {
41
- type: "text" | "tools";
42
- content: string | string[];
43
- };
44
- type TurnDraftState = {
45
- assistantResponse: string;
46
- toolTimeline: string[];
47
- sections: TurnSection[];
48
- currentTools: string[];
49
- currentText: string;
50
- };
51
- type ExecuteTurnResult = {
26
+ declare const listenOnAvailablePort: (server: Server, preferredPort: number) => Promise<number>;
27
+ declare const readJsonFile: <T>(path: string) => Promise<T | undefined>;
28
+ declare const parseParams: (values: string[]) => Record<string, string>;
29
+ declare const formatSseEvent: (event: AgentEvent) => string;
30
+
31
+ declare const normalizeMessageForClient: (message: Message) => Message | null;
32
+ type CronRunResult = {
33
+ response: string;
34
+ steps: number;
35
+ assistantMetadata?: Message["metadata"];
36
+ hasContent: boolean;
37
+ contextTokens: number;
38
+ contextWindow: number;
39
+ harnessMessages?: Message[];
40
+ toolResultArchive?: Conversation["_toolResultArchive"];
52
41
  latestRunId: string;
53
- runCancelled: boolean;
54
- runContinuation: boolean;
55
- runContinuationMessages?: Message[];
56
- runHarnessMessages?: Message[];
57
- runContextTokens: number;
58
- runContextWindow: number;
59
- runSteps: number;
60
- runMaxSteps?: number;
61
- draft: TurnDraftState;
42
+ continuation: boolean;
43
+ continuationMessages?: Message[];
44
+ /** Stable id for the user-turn message persisted by buildCronMessages/appendCronTurn. */
45
+ userMessageId: string;
46
+ /** Timestamp shared by user and assistant messages of this turn. */
47
+ turnTimestamp: number;
62
48
  };
63
- declare const __internalRunOrchestration: {
64
- isMessageArray: (value: unknown) => value is Message[];
65
- loadCanonicalHistory: (conversation: Conversation) => {
66
- messages: Message[];
67
- source: HistorySource;
68
- };
69
- loadRunHistory: (conversation: Conversation, options?: {
70
- preferContinuation?: boolean;
71
- }) => {
72
- messages: Message[];
73
- source: HistorySource;
74
- shouldRebuildCanonical: boolean;
75
- };
76
- normalizeApprovalCheckpoint: (approval: StoredApproval, fallbackMessages: Message[]) => StoredApproval;
77
- buildApprovalCheckpoints: ({ approvals, runId, checkpointMessages, baseMessageCount, pendingToolCalls, }: {
78
- approvals: ApprovalEventItem[];
79
- runId: string;
80
- checkpointMessages: Message[];
81
- baseMessageCount: number;
82
- pendingToolCalls: PendingToolCall[];
83
- }) => NonNullable<Conversation["pendingApprovals"]>;
84
- resolveRunRequest: (conversation: Conversation, request: RunRequest) => RunOutcome;
85
- createTurnDraftState: () => TurnDraftState;
86
- recordStandardTurnEvent: (draft: TurnDraftState, event: AgentEvent) => void;
87
- executeConversationTurn: ({ harness, runInput, events, initialContextTokens, initialContextWindow, onEvent, }: {
88
- harness: AgentHarness;
89
- runInput?: Parameters<AgentHarness["runWithTelemetry"]>[0];
90
- events?: AsyncIterable<AgentEvent>;
91
- initialContextTokens?: number;
92
- initialContextWindow?: number;
93
- onEvent?: (event: AgentEvent, draft: TurnDraftState) => void | Promise<void>;
94
- }) => Promise<ExecuteTurnResult>;
49
+ declare const runCronAgent: (harnessRef: AgentHarness, task: string, conversationId: string, historyMessages: Message[], toolResultArchive?: Conversation["_toolResultArchive"], onEvent?: (event: AgentEvent) => void | Promise<void>) => Promise<CronRunResult>;
50
+ declare const buildCronMessages: (task: string, historyMessages: Message[], result: CronRunResult) => Message[];
51
+ /** Append a cron turn to a freshly-fetched conversation (avoids overwriting concurrent writes). */
52
+ declare const appendCronTurn: (conv: Conversation, task: string, result: CronRunResult) => void;
53
+ declare const MAX_PRUNE_PER_RUN = 25;
54
+ /** Delete old cron conversations beyond `maxRuns`, capped to avoid API storms on catch-up. */
55
+ declare const pruneCronConversations: (store: ConversationStore, ownerId: string, jobName: string, maxRuns: number) => Promise<number>;
56
+
57
+ declare const AGENT_TEMPLATE: (name: string, id: string, options: {
58
+ modelProvider: "anthropic" | "openai" | "openai-codex";
59
+ modelName: string;
60
+ }) => string;
61
+ /**
62
+ * Resolve the monorepo packages root if we're running from a local dev build.
63
+ * Returns the absolute path to the \`packages/\` directory, or null when
64
+ * running from an npm-installed copy.
65
+ */
66
+ declare const resolveLocalPackagesRoot: () => string | null;
67
+ /**
68
+ * Resolve the @poncho-ai/cli dependency specifier for the scaffolded project.
69
+ * In dev mode we use \`link:\` so pnpm can resolve the local package;
70
+ * in production we point at the npm registry.
71
+ */
72
+ declare const resolveCliDep: (projectDir: string) => Promise<string>;
73
+ declare const PACKAGE_TEMPLATE: (name: string, projectDir: string) => Promise<string>;
74
+ declare const README_TEMPLATE: (name: string) => string;
75
+ declare const ENV_TEMPLATE = "ANTHROPIC_API_KEY=sk-ant-...\n";
76
+ declare const GITIGNORE_TEMPLATE = ".env\nnode_modules\ndist\n.poncho/\ninteractive-session.json\n.vercel\n";
77
+ declare const TEST_TEMPLATE = "tests:\n - name: \"Basic sanity\"\n task: \"What is 2 + 2?\"\n expect:\n contains: \"4\"\n";
78
+ declare const SKILL_TEMPLATE = "---\nname: starter-skill\ndescription: Starter local skill template\nallowed-tools:\n - ./scripts/starter-echo.ts\n---\n\n# Starter Skill\n\nThis is a starter local skill created by `poncho init`.\n\n## Authoring Notes\n\n- Put executable JavaScript/TypeScript files in `scripts/`.\n- Ask the agent to call `run_skill_script` with `skill`, `script`, and optional `input`.\n";
79
+ declare const SKILL_TOOL_TEMPLATE = "export default async function run(input) {\n const message = typeof input?.message === \"string\" ? input.message : \"\";\n return { echoed: message };\n}\n";
80
+
81
+ type DeployTarget = "none" | "vercel" | "docker" | "fly" | "lambda";
82
+ type InitOnboardingOptions = {
83
+ yes?: boolean;
84
+ interactive?: boolean;
95
85
  };
86
+
87
+ declare const packageRoot: string;
88
+ declare const ensureFile: (path: string, content: string) => Promise<void>;
89
+ type DeployScaffoldTarget = Exclude<DeployTarget, "none">;
90
+ declare const normalizeDeployTarget: (target: string) => DeployScaffoldTarget;
91
+ declare const readCliVersion: () => Promise<string>;
92
+ declare const readCliDependencyVersion: (dependencyName: string, fallback: string) => Promise<string>;
93
+ declare const writeScaffoldFile: (filePath: string, content: string, options: {
94
+ force?: boolean;
95
+ writtenPaths: string[];
96
+ baseDir: string;
97
+ }) => Promise<void>;
98
+ declare const UPLOAD_PROVIDER_DEPS: Record<string, Array<{
99
+ name: string;
100
+ fallback: string;
101
+ }>>;
102
+ declare const ensureRuntimeCliDependency: (projectDir: string, cliVersion: string, config?: PonchoConfig, target?: string) => Promise<{
103
+ paths: string[];
104
+ addedDeps: string[];
105
+ }>;
106
+ declare const checkVercelCronDrift: (projectDir: string) => Promise<void>;
107
+ declare const scaffoldDeployTarget: (projectDir: string, target: DeployScaffoldTarget, options?: {
108
+ force?: boolean;
109
+ }) => Promise<string[]>;
110
+ declare const serializeJs: (value: unknown, indent?: number) => string;
111
+ declare const renderConfigFile: (config: PonchoConfig) => string;
112
+ declare const writeConfigFile: (workingDir: string, config: PonchoConfig) => Promise<void>;
113
+ declare const ensureEnvPlaceholder: (filePath: string, key: string) => Promise<boolean>;
114
+ declare const removeEnvPlaceholder: (filePath: string, key: string) => Promise<boolean>;
115
+
96
116
  declare const initProject: (projectName: string, options?: {
97
117
  workingDir?: string;
98
118
  onboarding?: InitOnboardingOptions;
99
119
  envExampleOverride?: string;
100
120
  }) => Promise<void>;
101
121
  declare const updateAgentGuidance: (workingDir: string) => Promise<boolean>;
102
- type RequestHandler = ((request: IncomingMessage, response: ServerResponse) => Promise<void>) & {
103
- _harness?: AgentHarness;
104
- _cronJobs?: Record<string, CronJobConfig>;
105
- _conversationStore?: ConversationStore;
106
- _messagingAdapters?: Map<string, MessagingAdapter>;
107
- _activeConversationRuns?: Map<string, {
108
- ownerId: string;
109
- abortController: AbortController;
110
- runId: string | null;
111
- }>;
112
- _pendingCallbackNeeded?: Set<string>;
113
- _processSubagentCallback?: (conversationId: string, skipLockCheck?: boolean) => Promise<void>;
114
- _broadcastEvent?: (conversationId: string, event: AgentEvent) => void;
115
- _finishConversationStream?: (conversationId: string) => void;
116
- _checkAndFireReminders?: () => Promise<{
117
- fired: string[];
118
- count: number;
119
- duration: number;
120
- }>;
121
- _reminderPollIntervalMs?: number;
122
- };
123
- declare const createRequestHandler: (options?: {
124
- workingDir?: string;
125
- }) => Promise<RequestHandler>;
126
- declare const startDevServer: (port: number, options?: {
127
- workingDir?: string;
128
- }) => Promise<Server>;
129
- declare const runOnce: (task: string, options: {
130
- params: Record<string, string>;
131
- json: boolean;
132
- filePaths: string[];
133
- workingDir?: string;
134
- }) => Promise<void>;
135
- declare const runInteractive: (workingDir: string, params: Record<string, string>) => Promise<void>;
136
- declare const listTools: (workingDir: string) => Promise<void>;
122
+
123
+ declare const runPnpmInstall: (workingDir: string) => Promise<void>;
124
+ declare const runInstallCommand: (workingDir: string, packageNameOrPath: string) => Promise<void>;
125
+ /**
126
+ * Resolve the installed npm package name from a package specifier.
127
+ * Handles local paths, scoped packages, and GitHub shorthand (e.g.
128
+ * "vercel-labs/agent-skills" installs as "agent-skills").
129
+ */
130
+ declare const resolveInstalledPackageName: (packageNameOrPath: string) => string | null;
131
+ /**
132
+ * Locate the root directory of an installed skill package.
133
+ * Handles local paths, normal npm packages, and GitHub repos (which may
134
+ * lack a root package.json).
135
+ */
136
+ declare const resolveSkillRoot: (workingDir: string, packageNameOrPath: string) => string;
137
+ declare const normalizeSkillSourceName: (value: string) => string;
138
+ declare const collectSkillManifests: (dir: string, depth?: number) => Promise<string[]>;
139
+ declare const validateSkillPackage: (workingDir: string, packageNameOrPath: string) => Promise<{
140
+ skillRoot: string;
141
+ manifests: string[];
142
+ }>;
143
+ declare const selectSkillManifests: (skillRoot: string, manifests: string[], relativeSkillPath?: string) => Promise<string[]>;
144
+ declare const copySkillsIntoProject: (workingDir: string, manifests: string[], sourceName: string) => Promise<string[]>;
137
145
  declare const copySkillsFromPackage: (workingDir: string, packageNameOrPath: string, options?: {
138
146
  path?: string;
139
147
  }) => Promise<string[]>;
@@ -151,13 +159,12 @@ declare const removeSkillPackage: (workingDir: string, packageNameOrPath: string
151
159
  }) => Promise<void>;
152
160
  declare const listInstalledSkills: (workingDir: string, sourceName?: string) => Promise<string[]>;
153
161
  declare const listSkills: (workingDir: string, sourceName?: string) => Promise<void>;
154
- declare const runTests: (workingDir: string, filePath?: string) => Promise<{
155
- passed: number;
156
- failed: number;
157
- }>;
158
- declare const buildTarget: (workingDir: string, target: string, options?: {
159
- force?: boolean;
160
- }) => Promise<void>;
162
+
163
+ declare const normalizeMcpName: (entry: {
164
+ url?: string;
165
+ name?: string;
166
+ }) => string;
167
+
161
168
  declare const mcpAdd: (workingDir: string, options: {
162
169
  url?: string;
163
170
  name?: string;
@@ -167,13 +174,64 @@ declare const mcpAdd: (workingDir: string, options: {
167
174
  }) => Promise<void>;
168
175
  declare const mcpList: (workingDir: string) => Promise<void>;
169
176
  declare const mcpRemove: (workingDir: string, name: string) => Promise<void>;
177
+ declare const resolveMcpEntry: (workingDir: string, serverName: string) => Promise<{
178
+ config: _poncho_ai_harness.PonchoConfig;
179
+ index: number;
180
+ }>;
181
+
182
+ declare const discoverMcpTools: (workingDir: string, serverName: string) => Promise<string[]>;
183
+
170
184
  declare const mcpToolsList: (workingDir: string, serverName: string) => Promise<void>;
171
185
  declare const mcpToolsSelect: (workingDir: string, serverName: string, options: {
172
186
  all?: boolean;
173
187
  toolsCsv?: string;
174
188
  }) => Promise<void>;
189
+
190
+ declare const runTests: (workingDir: string, filePath?: string) => Promise<{
191
+ passed: number;
192
+ failed: number;
193
+ }>;
194
+ declare const buildTarget: (workingDir: string, target: string, options?: {
195
+ force?: boolean;
196
+ }) => Promise<void>;
197
+
198
+ declare const runOnce: (task: string, options: {
199
+ params: Record<string, string>;
200
+ json: boolean;
201
+ filePaths: string[];
202
+ workingDir?: string;
203
+ }) => Promise<void>;
204
+ declare const runInteractive: (workingDir: string, params: Record<string, string>) => Promise<void>;
205
+ declare const listTools: (workingDir: string) => Promise<void>;
206
+
207
+ type RequestHandler = ((request: IncomingMessage, response: ServerResponse) => Promise<void>) & {
208
+ _harness?: AgentHarness;
209
+ _cronJobs?: Record<string, CronJobConfig>;
210
+ _conversationStore?: ConversationStore;
211
+ _messagingAdapters?: Map<string, MessagingAdapter>;
212
+ _activeConversationRuns?: Map<string, {
213
+ ownerId: string;
214
+ abortController: AbortController;
215
+ runId: string | null;
216
+ }>;
217
+ _pendingCallbackNeeded?: Set<string>;
218
+ _processSubagentCallback?: (conversationId: string, skipLockCheck?: boolean) => Promise<void>;
219
+ _broadcastEvent?: (conversationId: string, event: AgentEvent) => void;
220
+ _finishConversationStream?: (conversationId: string) => void;
221
+ _checkAndFireReminders?: () => Promise<{
222
+ fired: string[];
223
+ count: number;
224
+ duration: number;
225
+ }>;
226
+ _reminderPollIntervalMs?: number;
227
+ };
228
+ declare const createRequestHandler: (options?: {
229
+ workingDir?: string;
230
+ }) => Promise<RequestHandler>;
231
+ declare const startDevServer: (port: number, options?: {
232
+ workingDir?: string;
233
+ }) => Promise<Server>;
175
234
  declare const buildCli: () => Command;
176
235
  declare const main: (argv?: string[]) => Promise<void>;
177
- declare const packageRoot: string;
178
236
 
179
- export { type RequestHandler, __internalRunOrchestration, addSkill, buildCli, buildTarget, copySkillsFromPackage, createRequestHandler, initProject, listInstalledSkills, listSkills, listTools, main, mcpAdd, mcpList, mcpRemove, mcpToolsList, mcpToolsSelect, packageRoot, removeSkillPackage, removeSkillsFromPackage, resolveHarnessEnvironment, runInteractive, runOnce, runTests, startDevServer, updateAgentGuidance };
237
+ export { AGENT_TEMPLATE, type CronRunResult, ENV_TEMPLATE, EXT_MIME_MAP, GITIGNORE_TEMPLATE, MAX_PRUNE_PER_RUN, MAX_UPLOAD_SIZE, PACKAGE_TEMPLATE, type ParsedMultipart, README_TEMPLATE, type RequestHandler, SKILL_TEMPLATE, SKILL_TOOL_TEMPLATE, TEST_TEMPLATE, UPLOAD_PROVIDER_DEPS, addSkill, appendCronTurn, buildCli, buildCronMessages, buildTarget, checkVercelCronDrift, collectSkillManifests, copySkillsFromPackage, copySkillsIntoProject, createRequestHandler, discoverMcpTools, ensureEnvPlaceholder, ensureFile, ensureRuntimeCliDependency, extToMime, formatSseEvent, initProject, listInstalledSkills, listSkills, listTools, listenOnAvailablePort, main, mcpAdd, mcpList, mcpRemove, mcpToolsList, mcpToolsSelect, normalizeDeployTarget, normalizeMcpName, normalizeMessageForClient, normalizeSkillSourceName, packageRoot, parseMultipartRequest, parseParams, parseTelegramMessageThreadIdFromPlatformThreadId, pruneCronConversations, readCliDependencyVersion, readCliVersion, readJsonFile, readRequestBody, removeEnvPlaceholder, removeSkillPackage, removeSkillsFromPackage, renderConfigFile, resolveCliDep, resolveHarnessEnvironment, resolveInstalledPackageName, resolveLocalPackagesRoot, resolveMcpEntry, resolveSkillRoot, runCronAgent, runInstallCommand, runInteractive, runOnce, runPnpmInstall, runTests, scaffoldDeployTarget, selectSkillManifests, serializeJs, startDevServer, updateAgentGuidance, validateSkillPackage, writeConfigFile, writeHtml, writeJson, writeScaffoldFile };
package/dist/index.js CHANGED
@@ -1,54 +1,160 @@
1
1
  import {
2
- __internalRunOrchestration,
2
+ AGENT_TEMPLATE,
3
+ ENV_TEMPLATE,
4
+ EXT_MIME_MAP,
5
+ GITIGNORE_TEMPLATE,
6
+ MAX_PRUNE_PER_RUN,
7
+ MAX_UPLOAD_SIZE,
8
+ PACKAGE_TEMPLATE,
9
+ README_TEMPLATE,
10
+ SKILL_TEMPLATE,
11
+ SKILL_TOOL_TEMPLATE,
12
+ TEST_TEMPLATE,
13
+ UPLOAD_PROVIDER_DEPS,
3
14
  addSkill,
15
+ appendCronTurn,
4
16
  buildCli,
17
+ buildCronMessages,
5
18
  buildTarget,
19
+ checkVercelCronDrift,
20
+ collectSkillManifests,
6
21
  copySkillsFromPackage,
22
+ copySkillsIntoProject,
7
23
  createRequestHandler,
24
+ discoverMcpTools,
25
+ ensureEnvPlaceholder,
26
+ ensureFile,
27
+ ensureRuntimeCliDependency,
28
+ extToMime,
29
+ formatSseEvent,
8
30
  initProject,
9
31
  listInstalledSkills,
10
32
  listSkills,
11
33
  listTools,
34
+ listenOnAvailablePort,
12
35
  main,
13
36
  mcpAdd,
14
37
  mcpList,
15
38
  mcpRemove,
16
39
  mcpToolsList,
17
40
  mcpToolsSelect,
41
+ normalizeDeployTarget,
42
+ normalizeMcpName,
43
+ normalizeMessageForClient,
44
+ normalizeSkillSourceName,
18
45
  packageRoot,
46
+ parseMultipartRequest,
47
+ parseParams,
48
+ parseTelegramMessageThreadIdFromPlatformThreadId,
49
+ pruneCronConversations,
50
+ readCliDependencyVersion,
51
+ readCliVersion,
52
+ readJsonFile,
53
+ readRequestBody,
54
+ removeEnvPlaceholder,
19
55
  removeSkillPackage,
20
56
  removeSkillsFromPackage,
57
+ renderConfigFile,
58
+ resolveCliDep,
21
59
  resolveHarnessEnvironment,
60
+ resolveInstalledPackageName,
61
+ resolveLocalPackagesRoot,
62
+ resolveMcpEntry,
63
+ resolveSkillRoot,
64
+ runCronAgent,
65
+ runInstallCommand,
22
66
  runInteractive,
23
67
  runOnce,
68
+ runPnpmInstall,
24
69
  runTests,
70
+ scaffoldDeployTarget,
71
+ selectSkillManifests,
72
+ serializeJs,
25
73
  startDevServer,
26
- updateAgentGuidance
27
- } from "./chunk-IZLDZWPA.js";
74
+ updateAgentGuidance,
75
+ validateSkillPackage,
76
+ writeConfigFile,
77
+ writeHtml,
78
+ writeJson,
79
+ writeScaffoldFile
80
+ } from "./chunk-U643TWFX.js";
28
81
  export {
29
- __internalRunOrchestration,
82
+ AGENT_TEMPLATE,
83
+ ENV_TEMPLATE,
84
+ EXT_MIME_MAP,
85
+ GITIGNORE_TEMPLATE,
86
+ MAX_PRUNE_PER_RUN,
87
+ MAX_UPLOAD_SIZE,
88
+ PACKAGE_TEMPLATE,
89
+ README_TEMPLATE,
90
+ SKILL_TEMPLATE,
91
+ SKILL_TOOL_TEMPLATE,
92
+ TEST_TEMPLATE,
93
+ UPLOAD_PROVIDER_DEPS,
30
94
  addSkill,
95
+ appendCronTurn,
31
96
  buildCli,
97
+ buildCronMessages,
32
98
  buildTarget,
99
+ checkVercelCronDrift,
100
+ collectSkillManifests,
33
101
  copySkillsFromPackage,
102
+ copySkillsIntoProject,
34
103
  createRequestHandler,
104
+ discoverMcpTools,
105
+ ensureEnvPlaceholder,
106
+ ensureFile,
107
+ ensureRuntimeCliDependency,
108
+ extToMime,
109
+ formatSseEvent,
35
110
  initProject,
36
111
  listInstalledSkills,
37
112
  listSkills,
38
113
  listTools,
114
+ listenOnAvailablePort,
39
115
  main,
40
116
  mcpAdd,
41
117
  mcpList,
42
118
  mcpRemove,
43
119
  mcpToolsList,
44
120
  mcpToolsSelect,
121
+ normalizeDeployTarget,
122
+ normalizeMcpName,
123
+ normalizeMessageForClient,
124
+ normalizeSkillSourceName,
45
125
  packageRoot,
126
+ parseMultipartRequest,
127
+ parseParams,
128
+ parseTelegramMessageThreadIdFromPlatformThreadId,
129
+ pruneCronConversations,
130
+ readCliDependencyVersion,
131
+ readCliVersion,
132
+ readJsonFile,
133
+ readRequestBody,
134
+ removeEnvPlaceholder,
46
135
  removeSkillPackage,
47
136
  removeSkillsFromPackage,
137
+ renderConfigFile,
138
+ resolveCliDep,
48
139
  resolveHarnessEnvironment,
140
+ resolveInstalledPackageName,
141
+ resolveLocalPackagesRoot,
142
+ resolveMcpEntry,
143
+ resolveSkillRoot,
144
+ runCronAgent,
145
+ runInstallCommand,
49
146
  runInteractive,
50
147
  runOnce,
148
+ runPnpmInstall,
51
149
  runTests,
150
+ scaffoldDeployTarget,
151
+ selectSkillManifests,
152
+ serializeJs,
52
153
  startDevServer,
53
- updateAgentGuidance
154
+ updateAgentGuidance,
155
+ validateSkillPackage,
156
+ writeConfigFile,
157
+ writeHtml,
158
+ writeJson,
159
+ writeScaffoldFile
54
160
  };