perstack 0.0.88 → 0.0.89
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/bin/cli.js +48503 -16402
- package/dist/bin/cli.js.map +1 -1
- package/dist/{chunk-FVVK5V2C.js → chunk-6IYHM4GX.js} +723 -686
- package/dist/chunk-6IYHM4GX.js.map +1 -0
- package/dist/{chunk-MCZYLWXM.js → chunk-TQIAD37I.js} +14 -12
- package/dist/{chunk-MCZYLWXM.js.map → chunk-TQIAD37I.js.map} +1 -1
- package/dist/{chunk-HNOP6GUQ.js → chunk-ZIQDMPLE.js} +3 -3
- package/dist/{chunk-HNOP6GUQ.js.map → chunk-ZIQDMPLE.js.map} +1 -1
- package/dist/devtools-XTCZXK74.js +3674 -0
- package/dist/devtools-XTCZXK74.js.map +1 -0
- package/dist/lockfile-skill-manager-LHWOM7VC.js +6 -0
- package/dist/{lockfile-skill-manager-5DS6SE2M.js.map → lockfile-skill-manager-LHWOM7VC.js.map} +1 -1
- package/dist/{resolve-expert-X775EKPT.js → resolve-expert-YAM46GJH.js} +10 -8
- package/dist/resolve-expert-YAM46GJH.js.map +1 -0
- package/package.json +7 -9
- package/dist/chunk-FVVK5V2C.js.map +0 -1
- package/dist/lockfile-skill-manager-5DS6SE2M.js +0 -6
- package/dist/resolve-expert-X775EKPT.js.map +0 -1
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { __export } from './chunk-E5EEIGMK.js';
|
|
2
2
|
|
|
3
|
+
// ../../packages/core/src/errors.ts
|
|
4
|
+
var PerstackError = class extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = "PerstackError";
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
|
|
3
11
|
// ../../node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/_u64.js
|
|
4
12
|
var U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);
|
|
5
13
|
var _32n = /* @__PURE__ */ BigInt(32);
|
|
@@ -1720,6 +1728,223 @@ var defaultTimeout = 5 * 1e3 * 60;
|
|
|
1720
1728
|
var maxSkillNameLength = 255;
|
|
1721
1729
|
var maxSkillToolNameLength = 255;
|
|
1722
1730
|
|
|
1731
|
+
// ../../packages/core/src/known-models/index.ts
|
|
1732
|
+
var knownModels = [
|
|
1733
|
+
{
|
|
1734
|
+
provider: "anthropic",
|
|
1735
|
+
models: [
|
|
1736
|
+
// https://docs.claude.com/en/docs/about-claude/models/overview#model-comparison-table
|
|
1737
|
+
{
|
|
1738
|
+
name: "claude-opus-4-6",
|
|
1739
|
+
contextWindow: 2e5,
|
|
1740
|
+
maxOutputTokens: 128e3
|
|
1741
|
+
},
|
|
1742
|
+
{
|
|
1743
|
+
name: "claude-opus-4-5",
|
|
1744
|
+
contextWindow: 2e5,
|
|
1745
|
+
maxOutputTokens: 32e3
|
|
1746
|
+
},
|
|
1747
|
+
{
|
|
1748
|
+
name: "claude-opus-4-1",
|
|
1749
|
+
contextWindow: 2e5,
|
|
1750
|
+
maxOutputTokens: 32e3
|
|
1751
|
+
},
|
|
1752
|
+
{
|
|
1753
|
+
name: "claude-opus-4-20250514",
|
|
1754
|
+
contextWindow: 2e5,
|
|
1755
|
+
maxOutputTokens: 32e3
|
|
1756
|
+
},
|
|
1757
|
+
{
|
|
1758
|
+
name: "claude-sonnet-4-5",
|
|
1759
|
+
contextWindow: 2e5,
|
|
1760
|
+
maxOutputTokens: 64e3
|
|
1761
|
+
},
|
|
1762
|
+
{
|
|
1763
|
+
name: "claude-sonnet-4-20250514",
|
|
1764
|
+
contextWindow: 2e5,
|
|
1765
|
+
maxOutputTokens: 64e3
|
|
1766
|
+
},
|
|
1767
|
+
{
|
|
1768
|
+
name: "claude-3-7-sonnet-20250219",
|
|
1769
|
+
contextWindow: 2e5,
|
|
1770
|
+
maxOutputTokens: 64e3
|
|
1771
|
+
},
|
|
1772
|
+
{
|
|
1773
|
+
name: "claude-haiku-4-5",
|
|
1774
|
+
contextWindow: 2e5,
|
|
1775
|
+
maxOutputTokens: 8192
|
|
1776
|
+
},
|
|
1777
|
+
{
|
|
1778
|
+
name: "claude-3-5-haiku-latest",
|
|
1779
|
+
contextWindow: 2e5,
|
|
1780
|
+
maxOutputTokens: 8192
|
|
1781
|
+
}
|
|
1782
|
+
]
|
|
1783
|
+
},
|
|
1784
|
+
{
|
|
1785
|
+
provider: "google",
|
|
1786
|
+
models: [
|
|
1787
|
+
// https://ai.google.dev/gemini-api/docs/models#gemini-3-flash
|
|
1788
|
+
{
|
|
1789
|
+
name: "gemini-3-flash-preview",
|
|
1790
|
+
contextWindow: 1048576,
|
|
1791
|
+
maxOutputTokens: 65536
|
|
1792
|
+
},
|
|
1793
|
+
// https://ai.google.dev/gemini-api/docs/models#gemini-3-pro
|
|
1794
|
+
{
|
|
1795
|
+
name: "gemini-3-pro-preview",
|
|
1796
|
+
contextWindow: 1048576,
|
|
1797
|
+
maxOutputTokens: 65536
|
|
1798
|
+
},
|
|
1799
|
+
// https://ai.google.dev/gemini-api/docs/models#gemini-2.5-pro
|
|
1800
|
+
{
|
|
1801
|
+
name: "gemini-2.5-pro",
|
|
1802
|
+
contextWindow: 1048576,
|
|
1803
|
+
maxOutputTokens: 65536
|
|
1804
|
+
},
|
|
1805
|
+
// https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash
|
|
1806
|
+
{
|
|
1807
|
+
name: "gemini-2.5-flash",
|
|
1808
|
+
contextWindow: 1048576,
|
|
1809
|
+
maxOutputTokens: 65536
|
|
1810
|
+
},
|
|
1811
|
+
// https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-lite
|
|
1812
|
+
{
|
|
1813
|
+
name: "gemini-2.5-flash-lite",
|
|
1814
|
+
contextWindow: 1048576,
|
|
1815
|
+
maxOutputTokens: 65536
|
|
1816
|
+
}
|
|
1817
|
+
]
|
|
1818
|
+
},
|
|
1819
|
+
{
|
|
1820
|
+
provider: "openai",
|
|
1821
|
+
models: [
|
|
1822
|
+
// https://platform.openai.com/docs/models/gpt-5
|
|
1823
|
+
{
|
|
1824
|
+
name: "gpt-5",
|
|
1825
|
+
contextWindow: 4e5,
|
|
1826
|
+
maxOutputTokens: 128e3
|
|
1827
|
+
},
|
|
1828
|
+
// https://platform.openai.com/docs/models/gpt-5-mini
|
|
1829
|
+
{
|
|
1830
|
+
name: "gpt-5-mini",
|
|
1831
|
+
contextWindow: 4e5,
|
|
1832
|
+
maxOutputTokens: 128e3
|
|
1833
|
+
},
|
|
1834
|
+
// https://platform.openai.com/docs/models/gpt-5-nano
|
|
1835
|
+
{
|
|
1836
|
+
name: "gpt-5-nano",
|
|
1837
|
+
contextWindow: 4e5,
|
|
1838
|
+
maxOutputTokens: 128e3
|
|
1839
|
+
},
|
|
1840
|
+
// https://platform.openai.com/docs/models/gpt-5.2
|
|
1841
|
+
{
|
|
1842
|
+
name: "gpt-5.2",
|
|
1843
|
+
contextWindow: 4e5,
|
|
1844
|
+
maxOutputTokens: 128e3
|
|
1845
|
+
},
|
|
1846
|
+
// https://platform.openai.com/docs/models/gpt-5.2-pro
|
|
1847
|
+
{
|
|
1848
|
+
name: "gpt-5.2-pro",
|
|
1849
|
+
contextWindow: 4e5,
|
|
1850
|
+
maxOutputTokens: 128e3
|
|
1851
|
+
},
|
|
1852
|
+
// https://platform.openai.com/docs/models/gpt-5.1
|
|
1853
|
+
{
|
|
1854
|
+
name: "gpt-5.1",
|
|
1855
|
+
contextWindow: 4e5,
|
|
1856
|
+
maxOutputTokens: 128e3
|
|
1857
|
+
},
|
|
1858
|
+
// https://platform.openai.com/docs/models/gpt-5-chat-latest
|
|
1859
|
+
{
|
|
1860
|
+
name: "gpt-5-chat-latest",
|
|
1861
|
+
contextWindow: 128e3,
|
|
1862
|
+
maxOutputTokens: 16384
|
|
1863
|
+
},
|
|
1864
|
+
// https://platform.openai.com/docs/models/o4-mini
|
|
1865
|
+
{
|
|
1866
|
+
name: "o4-mini",
|
|
1867
|
+
contextWindow: 2e5,
|
|
1868
|
+
maxOutputTokens: 1e5
|
|
1869
|
+
},
|
|
1870
|
+
// https://platform.openai.com/docs/models/o3
|
|
1871
|
+
{
|
|
1872
|
+
name: "o3",
|
|
1873
|
+
contextWindow: 2e5,
|
|
1874
|
+
maxOutputTokens: 1e4
|
|
1875
|
+
},
|
|
1876
|
+
// https://platform.openai.com/docs/models/o3-mini
|
|
1877
|
+
{
|
|
1878
|
+
name: "o3-mini",
|
|
1879
|
+
contextWindow: 2e5,
|
|
1880
|
+
maxOutputTokens: 1e4
|
|
1881
|
+
},
|
|
1882
|
+
// https://platform.openai.com/docs/models/gpt-4.1
|
|
1883
|
+
{
|
|
1884
|
+
name: "gpt-4.1",
|
|
1885
|
+
contextWindow: 1047576,
|
|
1886
|
+
maxOutputTokens: 32768
|
|
1887
|
+
}
|
|
1888
|
+
]
|
|
1889
|
+
},
|
|
1890
|
+
{
|
|
1891
|
+
provider: "deepseek",
|
|
1892
|
+
models: [
|
|
1893
|
+
{
|
|
1894
|
+
name: "deepseek-chat",
|
|
1895
|
+
contextWindow: 128e3,
|
|
1896
|
+
maxOutputTokens: 8192
|
|
1897
|
+
},
|
|
1898
|
+
{
|
|
1899
|
+
name: "deepseek-reasoner",
|
|
1900
|
+
contextWindow: 128e3,
|
|
1901
|
+
maxOutputTokens: 64e3
|
|
1902
|
+
}
|
|
1903
|
+
]
|
|
1904
|
+
},
|
|
1905
|
+
{
|
|
1906
|
+
provider: "ollama",
|
|
1907
|
+
models: [
|
|
1908
|
+
// https://platform.openai.com/docs/models/gpt-oss-20b
|
|
1909
|
+
{
|
|
1910
|
+
name: "gpt-oss:20b",
|
|
1911
|
+
contextWindow: 131072,
|
|
1912
|
+
maxOutputTokens: 131072
|
|
1913
|
+
},
|
|
1914
|
+
// https://platform.openai.com/docs/models/gpt-oss-120b
|
|
1915
|
+
{
|
|
1916
|
+
name: "gpt-oss:120b",
|
|
1917
|
+
contextWindow: 131072,
|
|
1918
|
+
maxOutputTokens: 131072
|
|
1919
|
+
},
|
|
1920
|
+
// https://ai.google.dev/gemma/docs/core/model_card_3
|
|
1921
|
+
{
|
|
1922
|
+
name: "gemma3:1b",
|
|
1923
|
+
contextWindow: 32e3,
|
|
1924
|
+
maxOutputTokens: 32e3
|
|
1925
|
+
},
|
|
1926
|
+
// https://ai.google.dev/gemma/docs/core/model_card_3
|
|
1927
|
+
{
|
|
1928
|
+
name: "gemma3:4b",
|
|
1929
|
+
contextWindow: 128e3,
|
|
1930
|
+
maxOutputTokens: 128e3
|
|
1931
|
+
},
|
|
1932
|
+
// https://ai.google.dev/gemma/docs/core/model_card_3
|
|
1933
|
+
{
|
|
1934
|
+
name: "gemma3:12b",
|
|
1935
|
+
contextWindow: 128e3,
|
|
1936
|
+
maxOutputTokens: 128e3
|
|
1937
|
+
},
|
|
1938
|
+
// https://ai.google.dev/gemma/docs/core/model_card_3
|
|
1939
|
+
{
|
|
1940
|
+
name: "gemma3:27b",
|
|
1941
|
+
contextWindow: 128e3,
|
|
1942
|
+
maxOutputTokens: 128e3
|
|
1943
|
+
}
|
|
1944
|
+
]
|
|
1945
|
+
}
|
|
1946
|
+
];
|
|
1947
|
+
|
|
1723
1948
|
// ../../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/external.js
|
|
1724
1949
|
var external_exports = {};
|
|
1725
1950
|
__export(external_exports, {
|
|
@@ -15827,51 +16052,172 @@ var usageSchema = external_exports.object({
|
|
|
15827
16052
|
cachedInputTokens: external_exports.number()
|
|
15828
16053
|
});
|
|
15829
16054
|
|
|
15830
|
-
// ../../packages/core/src/schemas/
|
|
15831
|
-
|
|
15832
|
-
|
|
15833
|
-
|
|
15834
|
-
|
|
15835
|
-
|
|
15836
|
-
|
|
15837
|
-
|
|
15838
|
-
|
|
15839
|
-
|
|
15840
|
-
|
|
15841
|
-
|
|
15842
|
-
|
|
15843
|
-
|
|
15844
|
-
|
|
15845
|
-
|
|
15846
|
-
|
|
15847
|
-
|
|
15848
|
-
|
|
15849
|
-
|
|
15850
|
-
|
|
15851
|
-
|
|
15852
|
-
|
|
15853
|
-
|
|
15854
|
-
|
|
15855
|
-
|
|
15856
|
-
|
|
15857
|
-
|
|
15858
|
-
|
|
15859
|
-
|
|
15860
|
-
|
|
15861
|
-
|
|
15862
|
-
|
|
15863
|
-
|
|
15864
|
-
|
|
15865
|
-
|
|
15866
|
-
|
|
15867
|
-
|
|
15868
|
-
|
|
15869
|
-
|
|
15870
|
-
)
|
|
15871
|
-
|
|
15872
|
-
|
|
15873
|
-
|
|
15874
|
-
|
|
16055
|
+
// ../../packages/core/src/schemas/checkpoint.ts
|
|
16056
|
+
var checkpointStatusSchema = external_exports.enum([
|
|
16057
|
+
"init",
|
|
16058
|
+
"proceeding",
|
|
16059
|
+
"completed",
|
|
16060
|
+
"stoppedByInteractiveTool",
|
|
16061
|
+
"stoppedByDelegate",
|
|
16062
|
+
"stoppedByExceededMaxSteps",
|
|
16063
|
+
"stoppedByError",
|
|
16064
|
+
"stoppedByCancellation"
|
|
16065
|
+
]);
|
|
16066
|
+
var delegationTargetSchema = external_exports.object({
|
|
16067
|
+
expert: external_exports.object({
|
|
16068
|
+
key: external_exports.string(),
|
|
16069
|
+
name: external_exports.string(),
|
|
16070
|
+
version: external_exports.string()
|
|
16071
|
+
}),
|
|
16072
|
+
toolCallId: external_exports.string(),
|
|
16073
|
+
toolName: external_exports.string(),
|
|
16074
|
+
query: external_exports.string()
|
|
16075
|
+
});
|
|
16076
|
+
var checkpointSchema = external_exports.object({
|
|
16077
|
+
id: external_exports.string(),
|
|
16078
|
+
jobId: external_exports.string(),
|
|
16079
|
+
runId: external_exports.string(),
|
|
16080
|
+
status: checkpointStatusSchema,
|
|
16081
|
+
stepNumber: external_exports.number(),
|
|
16082
|
+
messages: external_exports.array(messageSchema),
|
|
16083
|
+
expert: external_exports.object({
|
|
16084
|
+
key: external_exports.string(),
|
|
16085
|
+
name: external_exports.string(),
|
|
16086
|
+
version: external_exports.string()
|
|
16087
|
+
}),
|
|
16088
|
+
delegateTo: external_exports.array(delegationTargetSchema).optional(),
|
|
16089
|
+
delegatedBy: external_exports.object({
|
|
16090
|
+
expert: external_exports.object({
|
|
16091
|
+
key: external_exports.string(),
|
|
16092
|
+
name: external_exports.string(),
|
|
16093
|
+
version: external_exports.string()
|
|
16094
|
+
}),
|
|
16095
|
+
toolCallId: external_exports.string(),
|
|
16096
|
+
toolName: external_exports.string(),
|
|
16097
|
+
checkpointId: external_exports.string(),
|
|
16098
|
+
runId: external_exports.string()
|
|
16099
|
+
}).optional(),
|
|
16100
|
+
usage: usageSchema,
|
|
16101
|
+
contextWindow: external_exports.number().optional(),
|
|
16102
|
+
contextWindowUsage: external_exports.number().optional(),
|
|
16103
|
+
pendingToolCalls: external_exports.array(toolCallSchema).optional(),
|
|
16104
|
+
partialToolResults: external_exports.array(toolResultSchema).optional(),
|
|
16105
|
+
metadata: external_exports.object({}).passthrough().optional(),
|
|
16106
|
+
error: external_exports.object({
|
|
16107
|
+
name: external_exports.string(),
|
|
16108
|
+
message: external_exports.string(),
|
|
16109
|
+
statusCode: external_exports.number().optional(),
|
|
16110
|
+
isRetryable: external_exports.boolean()
|
|
16111
|
+
}).optional(),
|
|
16112
|
+
retryCount: external_exports.number().optional()
|
|
16113
|
+
});
|
|
16114
|
+
|
|
16115
|
+
// ../../packages/core/src/schemas/provider-tools.ts
|
|
16116
|
+
external_exports.enum(["webSearch", "webFetch", "codeExecution"]);
|
|
16117
|
+
var builtinAnthropicSkillSchema = external_exports.object({
|
|
16118
|
+
type: external_exports.literal("builtin"),
|
|
16119
|
+
skillId: external_exports.enum(["pdf", "docx", "pptx", "xlsx"])
|
|
16120
|
+
});
|
|
16121
|
+
var customAnthropicSkillSchema = external_exports.object({
|
|
16122
|
+
type: external_exports.literal("custom"),
|
|
16123
|
+
name: external_exports.string().min(1),
|
|
16124
|
+
definition: external_exports.string().min(1)
|
|
16125
|
+
});
|
|
16126
|
+
var anthropicProviderSkillSchema = external_exports.discriminatedUnion("type", [
|
|
16127
|
+
builtinAnthropicSkillSchema,
|
|
16128
|
+
customAnthropicSkillSchema
|
|
16129
|
+
]);
|
|
16130
|
+
external_exports.enum([
|
|
16131
|
+
"webSearch",
|
|
16132
|
+
"fileSearch",
|
|
16133
|
+
"codeInterpreter",
|
|
16134
|
+
"imageGeneration"
|
|
16135
|
+
]);
|
|
16136
|
+
external_exports.enum([
|
|
16137
|
+
"googleSearch",
|
|
16138
|
+
"codeExecution",
|
|
16139
|
+
"urlContext",
|
|
16140
|
+
"fileSearch",
|
|
16141
|
+
"googleMaps"
|
|
16142
|
+
]);
|
|
16143
|
+
external_exports.enum([
|
|
16144
|
+
"webSearchPreview",
|
|
16145
|
+
"fileSearch",
|
|
16146
|
+
"codeInterpreter",
|
|
16147
|
+
"imageGeneration"
|
|
16148
|
+
]);
|
|
16149
|
+
external_exports.enum([
|
|
16150
|
+
"codeExecution",
|
|
16151
|
+
"urlContext",
|
|
16152
|
+
"googleSearch",
|
|
16153
|
+
"enterpriseWebSearch",
|
|
16154
|
+
"googleMaps"
|
|
16155
|
+
]);
|
|
16156
|
+
var webSearchOptionsSchema = external_exports.object({
|
|
16157
|
+
maxUses: external_exports.number().int().positive().optional(),
|
|
16158
|
+
allowedDomains: external_exports.array(external_exports.string()).optional()
|
|
16159
|
+
});
|
|
16160
|
+
var webFetchOptionsSchema = external_exports.object({
|
|
16161
|
+
maxUses: external_exports.number().int().positive().optional()
|
|
16162
|
+
});
|
|
16163
|
+
var fileSearchOptionsSchema = external_exports.object({
|
|
16164
|
+
vectorStoreIds: external_exports.array(external_exports.string()).optional(),
|
|
16165
|
+
maxNumResults: external_exports.number().int().positive().optional()
|
|
16166
|
+
});
|
|
16167
|
+
var providerToolOptionsSchema = external_exports.object({
|
|
16168
|
+
webSearch: webSearchOptionsSchema.optional(),
|
|
16169
|
+
webFetch: webFetchOptionsSchema.optional(),
|
|
16170
|
+
fileSearch: fileSearchOptionsSchema.optional()
|
|
16171
|
+
}).optional();
|
|
16172
|
+
|
|
16173
|
+
// ../../packages/core/src/schemas/runtime-version.ts
|
|
16174
|
+
var runtimeVersionSchema = external_exports.string().regex(/^v\d+\.\d+$/, 'Runtime version must be in format "vX.Y" (e.g., "v1.0")').transform((v) => v);
|
|
16175
|
+
|
|
16176
|
+
// ../../packages/core/src/schemas/skill.ts
|
|
16177
|
+
function isPrivateOrLocalIP(hostname3) {
|
|
16178
|
+
if (hostname3 === "localhost" || hostname3 === "127.0.0.1" || hostname3 === "::1" || hostname3 === "0.0.0.0") {
|
|
16179
|
+
return true;
|
|
16180
|
+
}
|
|
16181
|
+
const ipv4Match = hostname3.match(/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/);
|
|
16182
|
+
if (ipv4Match) {
|
|
16183
|
+
const a = Number(ipv4Match[1]);
|
|
16184
|
+
const b = Number(ipv4Match[2]);
|
|
16185
|
+
if (a === 10) return true;
|
|
16186
|
+
if (a === 172 && b >= 16 && b <= 31) return true;
|
|
16187
|
+
if (a === 192 && b === 168) return true;
|
|
16188
|
+
if (a === 169 && b === 254) return true;
|
|
16189
|
+
if (a === 127) return true;
|
|
16190
|
+
}
|
|
16191
|
+
if (hostname3.includes(":")) {
|
|
16192
|
+
if (hostname3.startsWith("fe80:") || hostname3.startsWith("fc") || hostname3.startsWith("fd")) {
|
|
16193
|
+
return true;
|
|
16194
|
+
}
|
|
16195
|
+
}
|
|
16196
|
+
if (hostname3.startsWith("::ffff:")) {
|
|
16197
|
+
const ipv4Part = hostname3.slice(7);
|
|
16198
|
+
if (isPrivateOrLocalIP(ipv4Part)) {
|
|
16199
|
+
return true;
|
|
16200
|
+
}
|
|
16201
|
+
}
|
|
16202
|
+
return false;
|
|
16203
|
+
}
|
|
16204
|
+
var sseEndpointSchema = external_exports.string().url().refine(
|
|
16205
|
+
(url2) => {
|
|
16206
|
+
try {
|
|
16207
|
+
const parsed = new URL(url2);
|
|
16208
|
+
if (parsed.protocol !== "https:") return false;
|
|
16209
|
+
if (isPrivateOrLocalIP(parsed.hostname)) return false;
|
|
16210
|
+
return true;
|
|
16211
|
+
} catch {
|
|
16212
|
+
return false;
|
|
16213
|
+
}
|
|
16214
|
+
},
|
|
16215
|
+
{ message: "Endpoint must be a public HTTPS URL" }
|
|
16216
|
+
);
|
|
16217
|
+
var mcpStdioSkillSchema = external_exports.object({
|
|
16218
|
+
type: external_exports.literal("mcpStdioSkill"),
|
|
16219
|
+
name: external_exports.string(),
|
|
16220
|
+
description: external_exports.string().optional(),
|
|
15875
16221
|
rule: external_exports.string().optional(),
|
|
15876
16222
|
pick: external_exports.array(external_exports.string()).optional().default([]),
|
|
15877
16223
|
omit: external_exports.array(external_exports.string()).optional().default([]),
|
|
@@ -15915,6 +16261,72 @@ var skillSchema = external_exports.discriminatedUnion("type", [
|
|
|
15915
16261
|
interactiveSkillSchema
|
|
15916
16262
|
]);
|
|
15917
16263
|
|
|
16264
|
+
// ../../packages/core/src/schemas/expert.ts
|
|
16265
|
+
var expertSchema = external_exports.object({
|
|
16266
|
+
key: external_exports.string().regex(expertKeyRegex).min(1),
|
|
16267
|
+
name: external_exports.string().regex(expertNameRegex).min(1).max(maxExpertNameLength),
|
|
16268
|
+
version: external_exports.string().regex(expertVersionRegex),
|
|
16269
|
+
description: external_exports.string().max(1024 * 2).optional(),
|
|
16270
|
+
instruction: external_exports.string().min(1).max(1024 * 20),
|
|
16271
|
+
skills: external_exports.record(
|
|
16272
|
+
external_exports.string(),
|
|
16273
|
+
external_exports.discriminatedUnion("type", [
|
|
16274
|
+
mcpStdioSkillSchema.omit({ name: true }),
|
|
16275
|
+
mcpSseSkillSchema.omit({ name: true }),
|
|
16276
|
+
interactiveSkillSchema.omit({ name: true })
|
|
16277
|
+
])
|
|
16278
|
+
).optional().default({
|
|
16279
|
+
"@perstack/base": {
|
|
16280
|
+
type: "mcpStdioSkill",
|
|
16281
|
+
description: "Base skill",
|
|
16282
|
+
command: "npx",
|
|
16283
|
+
args: ["-y", "@perstack/base"],
|
|
16284
|
+
pick: [],
|
|
16285
|
+
omit: [],
|
|
16286
|
+
requiredEnv: [],
|
|
16287
|
+
lazyInit: false
|
|
16288
|
+
}
|
|
16289
|
+
}).transform((skills) => {
|
|
16290
|
+
return Object.fromEntries(
|
|
16291
|
+
Object.entries(skills).map(([key, skillWithoutName]) => [
|
|
16292
|
+
key,
|
|
16293
|
+
external_exports.discriminatedUnion("type", [
|
|
16294
|
+
mcpStdioSkillSchema,
|
|
16295
|
+
mcpSseSkillSchema,
|
|
16296
|
+
interactiveSkillSchema
|
|
16297
|
+
]).parse({ ...skillWithoutName, name: key })
|
|
16298
|
+
])
|
|
16299
|
+
);
|
|
16300
|
+
}),
|
|
16301
|
+
delegates: external_exports.array(external_exports.string().regex(expertKeyRegex).min(1)).optional().default([]),
|
|
16302
|
+
tags: external_exports.array(external_exports.string().regex(tagNameRegex).min(1)).optional().default([]),
|
|
16303
|
+
minRuntimeVersion: runtimeVersionSchema.default("v1.0"),
|
|
16304
|
+
providerTools: external_exports.array(external_exports.string()).optional(),
|
|
16305
|
+
providerSkills: external_exports.array(anthropicProviderSkillSchema).optional(),
|
|
16306
|
+
providerToolOptions: providerToolOptionsSchema
|
|
16307
|
+
});
|
|
16308
|
+
|
|
16309
|
+
// ../../packages/core/src/schemas/job.ts
|
|
16310
|
+
var jobStatusSchema = external_exports.enum([
|
|
16311
|
+
"running",
|
|
16312
|
+
"completed",
|
|
16313
|
+
"stoppedByMaxSteps",
|
|
16314
|
+
"stoppedByInteractiveTool",
|
|
16315
|
+
"stoppedByError",
|
|
16316
|
+
"stoppedByCancellation"
|
|
16317
|
+
]);
|
|
16318
|
+
var jobSchema = external_exports.object({
|
|
16319
|
+
id: external_exports.string(),
|
|
16320
|
+
status: jobStatusSchema,
|
|
16321
|
+
coordinatorExpertKey: external_exports.string(),
|
|
16322
|
+
runtimeVersion: runtimeVersionSchema,
|
|
16323
|
+
totalSteps: external_exports.number(),
|
|
16324
|
+
maxSteps: external_exports.number().optional(),
|
|
16325
|
+
usage: usageSchema,
|
|
16326
|
+
startedAt: external_exports.number(),
|
|
16327
|
+
finishedAt: external_exports.number().optional()
|
|
16328
|
+
});
|
|
16329
|
+
|
|
15918
16330
|
// ../../packages/core/src/schemas/lockfile.ts
|
|
15919
16331
|
var lockfileToolDefinitionSchema = external_exports.object({
|
|
15920
16332
|
skillName: external_exports.string(),
|
|
@@ -16018,73 +16430,12 @@ var providerConfigSchema = external_exports.discriminatedUnion("providerName", [
|
|
|
16018
16430
|
deepseekProviderConfigSchema
|
|
16019
16431
|
]);
|
|
16020
16432
|
|
|
16021
|
-
// ../../packages/core/src/schemas/
|
|
16022
|
-
|
|
16023
|
-
var
|
|
16024
|
-
|
|
16025
|
-
|
|
16026
|
-
|
|
16027
|
-
var customAnthropicSkillSchema = external_exports.object({
|
|
16028
|
-
type: external_exports.literal("custom"),
|
|
16029
|
-
name: external_exports.string().min(1),
|
|
16030
|
-
definition: external_exports.string().min(1)
|
|
16031
|
-
});
|
|
16032
|
-
var anthropicProviderSkillSchema = external_exports.discriminatedUnion("type", [
|
|
16033
|
-
builtinAnthropicSkillSchema,
|
|
16034
|
-
customAnthropicSkillSchema
|
|
16035
|
-
]);
|
|
16036
|
-
external_exports.enum([
|
|
16037
|
-
"webSearch",
|
|
16038
|
-
"fileSearch",
|
|
16039
|
-
"codeInterpreter",
|
|
16040
|
-
"imageGeneration"
|
|
16041
|
-
]);
|
|
16042
|
-
external_exports.enum([
|
|
16043
|
-
"googleSearch",
|
|
16044
|
-
"codeExecution",
|
|
16045
|
-
"urlContext",
|
|
16046
|
-
"fileSearch",
|
|
16047
|
-
"googleMaps"
|
|
16048
|
-
]);
|
|
16049
|
-
external_exports.enum([
|
|
16050
|
-
"webSearchPreview",
|
|
16051
|
-
"fileSearch",
|
|
16052
|
-
"codeInterpreter",
|
|
16053
|
-
"imageGeneration"
|
|
16054
|
-
]);
|
|
16055
|
-
external_exports.enum([
|
|
16056
|
-
"codeExecution",
|
|
16057
|
-
"urlContext",
|
|
16058
|
-
"googleSearch",
|
|
16059
|
-
"enterpriseWebSearch",
|
|
16060
|
-
"googleMaps"
|
|
16061
|
-
]);
|
|
16062
|
-
var webSearchOptionsSchema = external_exports.object({
|
|
16063
|
-
maxUses: external_exports.number().int().positive().optional(),
|
|
16064
|
-
allowedDomains: external_exports.array(external_exports.string()).optional()
|
|
16065
|
-
});
|
|
16066
|
-
var webFetchOptionsSchema = external_exports.object({
|
|
16067
|
-
maxUses: external_exports.number().int().positive().optional()
|
|
16068
|
-
});
|
|
16069
|
-
var fileSearchOptionsSchema = external_exports.object({
|
|
16070
|
-
vectorStoreIds: external_exports.array(external_exports.string()).optional(),
|
|
16071
|
-
maxNumResults: external_exports.number().int().positive().optional()
|
|
16072
|
-
});
|
|
16073
|
-
var providerToolOptionsSchema = external_exports.object({
|
|
16074
|
-
webSearch: webSearchOptionsSchema.optional(),
|
|
16075
|
-
webFetch: webFetchOptionsSchema.optional(),
|
|
16076
|
-
fileSearch: fileSearchOptionsSchema.optional()
|
|
16077
|
-
}).optional();
|
|
16078
|
-
|
|
16079
|
-
// ../../packages/core/src/schemas/runtime-version.ts
|
|
16080
|
-
var runtimeVersionSchema = external_exports.string().regex(/^v\d+\.\d+$/, 'Runtime version must be in format "vX.Y" (e.g., "v1.0")').transform((v) => v);
|
|
16081
|
-
|
|
16082
|
-
// ../../packages/core/src/schemas/perstack-toml.ts
|
|
16083
|
-
var defaultReasoningBudget = "low";
|
|
16084
|
-
var reasoningBudgetSchema = external_exports.union([
|
|
16085
|
-
external_exports.enum(["none", "minimal", "low", "medium", "high"]),
|
|
16086
|
-
external_exports.number().int().nonnegative()
|
|
16087
|
-
// 0 disables reasoning (same as "none")
|
|
16433
|
+
// ../../packages/core/src/schemas/perstack-toml.ts
|
|
16434
|
+
var defaultReasoningBudget = "low";
|
|
16435
|
+
var reasoningBudgetSchema = external_exports.union([
|
|
16436
|
+
external_exports.enum(["none", "minimal", "low", "medium", "high"]),
|
|
16437
|
+
external_exports.number().int().nonnegative()
|
|
16438
|
+
// 0 disables reasoning (same as "none")
|
|
16088
16439
|
]);
|
|
16089
16440
|
var domainPatternRegex = /^(\*\.)?[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)*$/;
|
|
16090
16441
|
var punycodeRegex = /(?:^|\.)(xn--)/i;
|
|
@@ -16294,579 +16645,179 @@ var runCommandInputSchema = external_exports.object({
|
|
|
16294
16645
|
expertKey: external_exports.string(),
|
|
16295
16646
|
query: external_exports.string(),
|
|
16296
16647
|
options: commandOptionsSchema
|
|
16297
|
-
});
|
|
16298
|
-
var startCommandInputSchema = external_exports.object({
|
|
16299
|
-
expertKey: external_exports.string().optional(),
|
|
16300
|
-
query: external_exports.string().optional(),
|
|
16301
|
-
options: commandOptionsSchema
|
|
16302
|
-
});
|
|
16303
|
-
|
|
16304
|
-
// ../../packages/core/src/schemas/
|
|
16305
|
-
var
|
|
16306
|
-
|
|
16307
|
-
|
|
16308
|
-
|
|
16309
|
-
|
|
16310
|
-
|
|
16311
|
-
|
|
16312
|
-
|
|
16313
|
-
|
|
16314
|
-
|
|
16315
|
-
|
|
16316
|
-
|
|
16317
|
-
|
|
16318
|
-
|
|
16319
|
-
|
|
16320
|
-
|
|
16321
|
-
|
|
16322
|
-
|
|
16323
|
-
|
|
16324
|
-
|
|
16325
|
-
var checkpointSchema = external_exports.object({
|
|
16326
|
-
id: external_exports.string(),
|
|
16327
|
-
jobId: external_exports.string(),
|
|
16328
|
-
runId: external_exports.string(),
|
|
16329
|
-
status: checkpointStatusSchema,
|
|
16330
|
-
stepNumber: external_exports.number(),
|
|
16331
|
-
messages: external_exports.array(messageSchema),
|
|
16332
|
-
expert: external_exports.object({
|
|
16333
|
-
key: external_exports.string(),
|
|
16334
|
-
name: external_exports.string(),
|
|
16335
|
-
version: external_exports.string()
|
|
16336
|
-
}),
|
|
16337
|
-
delegateTo: external_exports.array(delegationTargetSchema).optional(),
|
|
16338
|
-
delegatedBy: external_exports.object({
|
|
16339
|
-
expert: external_exports.object({
|
|
16340
|
-
key: external_exports.string(),
|
|
16341
|
-
name: external_exports.string(),
|
|
16342
|
-
version: external_exports.string()
|
|
16343
|
-
}),
|
|
16344
|
-
toolCallId: external_exports.string(),
|
|
16345
|
-
toolName: external_exports.string(),
|
|
16346
|
-
checkpointId: external_exports.string(),
|
|
16347
|
-
runId: external_exports.string()
|
|
16348
|
-
}).optional(),
|
|
16349
|
-
usage: usageSchema,
|
|
16350
|
-
contextWindow: external_exports.number().optional(),
|
|
16351
|
-
contextWindowUsage: external_exports.number().optional(),
|
|
16352
|
-
pendingToolCalls: external_exports.array(toolCallSchema).optional(),
|
|
16353
|
-
partialToolResults: external_exports.array(toolResultSchema).optional(),
|
|
16354
|
-
metadata: external_exports.object({}).passthrough().optional(),
|
|
16355
|
-
error: external_exports.object({
|
|
16356
|
-
name: external_exports.string(),
|
|
16357
|
-
message: external_exports.string(),
|
|
16358
|
-
statusCode: external_exports.number().optional(),
|
|
16359
|
-
isRetryable: external_exports.boolean()
|
|
16360
|
-
}).optional(),
|
|
16361
|
-
retryCount: external_exports.number().optional()
|
|
16362
|
-
});
|
|
16363
|
-
|
|
16364
|
-
// ../../packages/core/src/schemas/expert.ts
|
|
16365
|
-
var expertSchema = external_exports.object({
|
|
16366
|
-
key: external_exports.string().regex(expertKeyRegex).min(1),
|
|
16367
|
-
name: external_exports.string().regex(expertNameRegex).min(1).max(maxExpertNameLength),
|
|
16368
|
-
version: external_exports.string().regex(expertVersionRegex),
|
|
16369
|
-
description: external_exports.string().max(1024 * 2).optional(),
|
|
16370
|
-
instruction: external_exports.string().min(1).max(1024 * 20),
|
|
16371
|
-
skills: external_exports.record(
|
|
16372
|
-
external_exports.string(),
|
|
16373
|
-
external_exports.discriminatedUnion("type", [
|
|
16374
|
-
mcpStdioSkillSchema.omit({ name: true }),
|
|
16375
|
-
mcpSseSkillSchema.omit({ name: true }),
|
|
16376
|
-
interactiveSkillSchema.omit({ name: true })
|
|
16377
|
-
])
|
|
16378
|
-
).optional().default({
|
|
16379
|
-
"@perstack/base": {
|
|
16380
|
-
type: "mcpStdioSkill",
|
|
16381
|
-
description: "Base skill",
|
|
16382
|
-
command: "npx",
|
|
16383
|
-
args: ["-y", "@perstack/base"],
|
|
16384
|
-
pick: [],
|
|
16385
|
-
omit: [],
|
|
16386
|
-
requiredEnv: [],
|
|
16387
|
-
lazyInit: false
|
|
16388
|
-
}
|
|
16389
|
-
}).transform((skills) => {
|
|
16390
|
-
return Object.fromEntries(
|
|
16391
|
-
Object.entries(skills).map(([key, skillWithoutName]) => [
|
|
16392
|
-
key,
|
|
16393
|
-
external_exports.discriminatedUnion("type", [
|
|
16394
|
-
mcpStdioSkillSchema,
|
|
16395
|
-
mcpSseSkillSchema,
|
|
16396
|
-
interactiveSkillSchema
|
|
16397
|
-
]).parse({ ...skillWithoutName, name: key })
|
|
16398
|
-
])
|
|
16399
|
-
);
|
|
16400
|
-
}),
|
|
16401
|
-
delegates: external_exports.array(external_exports.string().regex(expertKeyRegex).min(1)).optional().default([]),
|
|
16402
|
-
tags: external_exports.array(external_exports.string().regex(tagNameRegex).min(1)).optional().default([]),
|
|
16403
|
-
minRuntimeVersion: runtimeVersionSchema.default("v1.0"),
|
|
16404
|
-
providerTools: external_exports.array(external_exports.string()).optional(),
|
|
16405
|
-
providerSkills: external_exports.array(anthropicProviderSkillSchema).optional(),
|
|
16406
|
-
providerToolOptions: providerToolOptionsSchema
|
|
16407
|
-
});
|
|
16408
|
-
|
|
16409
|
-
// ../../packages/core/src/schemas/runtime.ts
|
|
16410
|
-
var runSettingSchema = external_exports.object({
|
|
16411
|
-
model: external_exports.string(),
|
|
16412
|
-
providerConfig: providerConfigSchema,
|
|
16413
|
-
jobId: external_exports.string(),
|
|
16414
|
-
runId: external_exports.string(),
|
|
16415
|
-
expertKey: external_exports.string().min(1).regex(expertKeyRegex),
|
|
16416
|
-
input: external_exports.object({
|
|
16417
|
-
text: external_exports.string().optional(),
|
|
16418
|
-
interactiveToolCallResult: external_exports.object({
|
|
16419
|
-
toolCallId: external_exports.string(),
|
|
16420
|
-
toolName: external_exports.string(),
|
|
16421
|
-
skillName: external_exports.string(),
|
|
16422
|
-
text: external_exports.string()
|
|
16423
|
-
}).optional()
|
|
16424
|
-
}),
|
|
16425
|
-
experts: external_exports.record(external_exports.string(), expertSchema),
|
|
16426
|
-
reasoningBudget: reasoningBudgetSchema.default(defaultReasoningBudget),
|
|
16427
|
-
maxSteps: external_exports.number().min(1).optional().default(defaultMaxSteps),
|
|
16428
|
-
maxRetries: external_exports.number().min(0),
|
|
16429
|
-
timeout: external_exports.number().min(0),
|
|
16430
|
-
startedAt: external_exports.number(),
|
|
16431
|
-
updatedAt: external_exports.number(),
|
|
16432
|
-
perstackApiBaseUrl: external_exports.string().url(),
|
|
16433
|
-
perstackApiKey: external_exports.string().optional(),
|
|
16434
|
-
perstackBaseSkillCommand: external_exports.array(external_exports.string()).optional(),
|
|
16435
|
-
env: external_exports.record(external_exports.string(), external_exports.string()),
|
|
16436
|
-
proxyUrl: external_exports.string().optional(),
|
|
16437
|
-
verbose: external_exports.boolean().optional()
|
|
16438
|
-
});
|
|
16439
|
-
var runParamsSchema = external_exports.object({
|
|
16440
|
-
setting: external_exports.object({
|
|
16441
|
-
model: external_exports.string(),
|
|
16442
|
-
providerConfig: providerConfigSchema,
|
|
16443
|
-
jobId: external_exports.string().optional().default(() => createId()),
|
|
16444
|
-
runId: external_exports.string().optional().default(() => createId()),
|
|
16445
|
-
expertKey: external_exports.string().min(1).regex(expertKeyRegex),
|
|
16446
|
-
input: external_exports.object({
|
|
16447
|
-
text: external_exports.string().optional(),
|
|
16448
|
-
interactiveToolCallResult: external_exports.object({
|
|
16449
|
-
toolCallId: external_exports.string(),
|
|
16450
|
-
toolName: external_exports.string(),
|
|
16451
|
-
skillName: external_exports.string(),
|
|
16452
|
-
text: external_exports.string()
|
|
16453
|
-
}).optional()
|
|
16454
|
-
}),
|
|
16455
|
-
experts: external_exports.record(external_exports.string().min(1).regex(expertKeyRegex), expertSchema.omit({ key: true })).optional().default({}).transform(
|
|
16456
|
-
(experts) => Object.fromEntries(
|
|
16457
|
-
Object.entries(experts).map(([key, expertWithoutKey]) => [
|
|
16458
|
-
key,
|
|
16459
|
-
expertSchema.parse({
|
|
16460
|
-
...expertWithoutKey,
|
|
16461
|
-
key
|
|
16462
|
-
})
|
|
16463
|
-
])
|
|
16464
|
-
)
|
|
16465
|
-
),
|
|
16466
|
-
reasoningBudget: reasoningBudgetSchema.optional().default(defaultReasoningBudget),
|
|
16467
|
-
maxSteps: external_exports.number().min(1).optional().default(defaultMaxSteps),
|
|
16468
|
-
maxRetries: external_exports.number().min(0).optional().default(defaultMaxRetries),
|
|
16469
|
-
timeout: external_exports.number().min(0).optional().default(defaultTimeout),
|
|
16470
|
-
startedAt: external_exports.number().optional().default(Date.now()),
|
|
16471
|
-
updatedAt: external_exports.number().optional().default(Date.now()),
|
|
16472
|
-
perstackApiBaseUrl: external_exports.url().optional().default(defaultPerstackApiBaseUrl),
|
|
16473
|
-
perstackApiKey: external_exports.string().optional(),
|
|
16474
|
-
perstackBaseSkillCommand: external_exports.array(external_exports.string()).optional(),
|
|
16475
|
-
env: external_exports.record(external_exports.string(), external_exports.string()).optional().default({}),
|
|
16476
|
-
proxyUrl: external_exports.string().optional(),
|
|
16477
|
-
verbose: external_exports.boolean().optional()
|
|
16478
|
-
}),
|
|
16479
|
-
checkpoint: checkpointSchema.optional()
|
|
16480
|
-
});
|
|
16481
|
-
function createEvent(type) {
|
|
16482
|
-
return (setting, checkpoint, data) => {
|
|
16483
|
-
return {
|
|
16484
|
-
type,
|
|
16485
|
-
id: createId(),
|
|
16486
|
-
expertKey: checkpoint.expert.key,
|
|
16487
|
-
timestamp: Date.now(),
|
|
16488
|
-
jobId: setting.jobId,
|
|
16489
|
-
runId: setting.runId,
|
|
16490
|
-
stepNumber: checkpoint.stepNumber,
|
|
16491
|
-
...data
|
|
16492
|
-
};
|
|
16493
|
-
};
|
|
16494
|
-
}
|
|
16495
|
-
function createStreamingEvent(type, setting, checkpoint, data) {
|
|
16496
|
-
return {
|
|
16497
|
-
type,
|
|
16498
|
-
id: createId(),
|
|
16499
|
-
expertKey: checkpoint.expert.key,
|
|
16500
|
-
timestamp: Date.now(),
|
|
16501
|
-
jobId: setting.jobId,
|
|
16502
|
-
runId: setting.runId,
|
|
16503
|
-
stepNumber: checkpoint.stepNumber,
|
|
16504
|
-
...data
|
|
16505
|
-
};
|
|
16506
|
-
}
|
|
16507
|
-
var startRun = createEvent("startRun");
|
|
16508
|
-
var resumeFromStop = createEvent("resumeFromStop");
|
|
16509
|
-
var proceedToInteractiveTools = createEvent("proceedToInteractiveTools");
|
|
16510
|
-
var startGeneration = createEvent("startGeneration");
|
|
16511
|
-
var retry = createEvent("retry");
|
|
16512
|
-
var callTools = createEvent("callTools");
|
|
16513
|
-
var finishMcpTools = createEvent("finishMcpTools");
|
|
16514
|
-
var skipDelegates = createEvent("skipDelegates");
|
|
16515
|
-
var resolveToolResults = createEvent("resolveToolResults");
|
|
16516
|
-
var attemptCompletion = createEvent("attemptCompletion");
|
|
16517
|
-
var finishToolCall = createEvent("finishToolCall");
|
|
16518
|
-
var completeRun = createEvent("completeRun");
|
|
16519
|
-
var stopRunByInteractiveTool = createEvent("stopRunByInteractiveTool");
|
|
16520
|
-
var stopRunByDelegate = createEvent("stopRunByDelegate");
|
|
16521
|
-
var stopRunByExceededMaxSteps = createEvent("stopRunByExceededMaxSteps");
|
|
16522
|
-
var stopRunByError = createEvent("stopRunByError");
|
|
16523
|
-
var continueToNextStep = createEvent("continueToNextStep");
|
|
16524
|
-
function createRuntimeEvent(type, jobId, runId, data) {
|
|
16525
|
-
return {
|
|
16526
|
-
type,
|
|
16527
|
-
id: createId(),
|
|
16528
|
-
timestamp: Date.now(),
|
|
16529
|
-
jobId,
|
|
16530
|
-
runId,
|
|
16531
|
-
...data
|
|
16532
|
-
};
|
|
16533
|
-
}
|
|
16534
|
-
var EXPERT_STATE_EVENT_TYPES = /* @__PURE__ */ new Set([
|
|
16535
|
-
"startRun",
|
|
16536
|
-
"resumeFromStop",
|
|
16537
|
-
"proceedToInteractiveTools",
|
|
16538
|
-
"startGeneration",
|
|
16539
|
-
"retry",
|
|
16540
|
-
"callTools",
|
|
16541
|
-
"finishMcpTools",
|
|
16542
|
-
"skipDelegates",
|
|
16543
|
-
"resolveToolResults",
|
|
16544
|
-
"attemptCompletion",
|
|
16545
|
-
"finishToolCall",
|
|
16546
|
-
"resumeToolCalls",
|
|
16547
|
-
"continueToNextStep",
|
|
16548
|
-
"stopRunByInteractiveTool",
|
|
16549
|
-
"stopRunByDelegate",
|
|
16550
|
-
"stopRunByExceededMaxSteps",
|
|
16551
|
-
"stopRunByError",
|
|
16552
|
-
"completeRun"
|
|
16553
|
-
]);
|
|
16554
|
-
var STREAMING_EVENT_TYPES = /* @__PURE__ */ new Set([
|
|
16555
|
-
"startStreamingReasoning",
|
|
16556
|
-
"streamReasoning",
|
|
16557
|
-
"completeStreamingReasoning",
|
|
16558
|
-
"startStreamingRunResult",
|
|
16559
|
-
"streamRunResult",
|
|
16560
|
-
"completeStreamingRunResult"
|
|
16561
|
-
]);
|
|
16562
|
-
var RUNTIME_EVENT_TYPES = /* @__PURE__ */ new Set([
|
|
16563
|
-
"initializeRuntime",
|
|
16564
|
-
"skillStarting",
|
|
16565
|
-
"skillConnected",
|
|
16566
|
-
"skillStderr",
|
|
16567
|
-
"skillDisconnected"
|
|
16568
|
-
]);
|
|
16569
|
-
function isValidEventType(type) {
|
|
16570
|
-
return EXPERT_STATE_EVENT_TYPES.has(type) || STREAMING_EVENT_TYPES.has(type);
|
|
16571
|
-
}
|
|
16572
|
-
function isValidRuntimeEventType(type) {
|
|
16573
|
-
return RUNTIME_EVENT_TYPES.has(type);
|
|
16574
|
-
}
|
|
16575
|
-
|
|
16576
|
-
// ../../packages/core/src/utils/env-filter.ts
|
|
16577
|
-
var SAFE_ENV_VARS = [
|
|
16578
|
-
// System
|
|
16579
|
-
"PATH",
|
|
16580
|
-
"HOME",
|
|
16581
|
-
"SHELL",
|
|
16582
|
-
"TERM",
|
|
16583
|
-
"NODE_PATH",
|
|
16584
|
-
// Proxy
|
|
16585
|
-
"HTTP_PROXY",
|
|
16586
|
-
"HTTPS_PROXY",
|
|
16587
|
-
"http_proxy",
|
|
16588
|
-
"https_proxy",
|
|
16589
|
-
"NO_PROXY",
|
|
16590
|
-
"no_proxy",
|
|
16591
|
-
"PERSTACK_PROXY_URL",
|
|
16592
|
-
"NPM_CONFIG_PROXY",
|
|
16593
|
-
"NPM_CONFIG_HTTPS_PROXY"
|
|
16594
|
-
];
|
|
16595
|
-
var PROTECTED_ENV_VARS = /* @__PURE__ */ new Set([
|
|
16596
|
-
"PATH",
|
|
16597
|
-
"HOME",
|
|
16598
|
-
"SHELL",
|
|
16599
|
-
"NODE_PATH",
|
|
16600
|
-
"LD_PRELOAD",
|
|
16601
|
-
"LD_LIBRARY_PATH",
|
|
16602
|
-
"DYLD_INSERT_LIBRARIES",
|
|
16603
|
-
"DYLD_LIBRARY_PATH",
|
|
16604
|
-
"NODE_OPTIONS",
|
|
16605
|
-
"PYTHONPATH",
|
|
16606
|
-
"PERL5LIB",
|
|
16607
|
-
"RUBYLIB"
|
|
16608
|
-
]);
|
|
16609
|
-
function getFilteredEnv(additional) {
|
|
16610
|
-
const filtered = {};
|
|
16611
|
-
for (const key of SAFE_ENV_VARS) {
|
|
16612
|
-
if (process.env[key]) {
|
|
16613
|
-
filtered[key] = process.env[key];
|
|
16614
|
-
}
|
|
16615
|
-
}
|
|
16616
|
-
if (additional) {
|
|
16617
|
-
for (const [key, value] of Object.entries(additional)) {
|
|
16618
|
-
if (!PROTECTED_ENV_VARS.has(key.toUpperCase())) {
|
|
16619
|
-
filtered[key] = value;
|
|
16620
|
-
}
|
|
16621
|
-
}
|
|
16622
|
-
}
|
|
16623
|
-
return filtered;
|
|
16624
|
-
}
|
|
16625
|
-
|
|
16626
|
-
// ../../packages/core/src/utils/event-filter.ts
|
|
16627
|
-
function validateEventFilter(filter) {
|
|
16628
|
-
const invalid = filter.filter((type) => !isValidEventType(type) && !isValidRuntimeEventType(type));
|
|
16629
|
-
if (invalid.length > 0) {
|
|
16630
|
-
throw new Error(
|
|
16631
|
-
`Invalid event type(s): ${invalid.join(", ")}. Valid event types are: startRun, completeRun, stopRunByError, callTools, etc. See documentation for full list.`
|
|
16632
|
-
);
|
|
16633
|
-
}
|
|
16634
|
-
return filter;
|
|
16635
|
-
}
|
|
16636
|
-
function createFilteredEventListener(listener, allowedTypes) {
|
|
16637
|
-
return (event) => {
|
|
16638
|
-
if (allowedTypes.has(event.type)) {
|
|
16639
|
-
listener(event);
|
|
16640
|
-
}
|
|
16641
|
-
};
|
|
16642
|
-
}
|
|
16643
|
-
|
|
16644
|
-
// ../../packages/core/src/utils/zod-error.ts
|
|
16645
|
-
function formatZodError(error48) {
|
|
16646
|
-
const issues = error48.issues.map((issue2) => {
|
|
16647
|
-
const path = issue2.path.length > 0 ? `${issue2.path.join(".")}: ` : "";
|
|
16648
|
-
return ` - ${path}${issue2.message}`;
|
|
16649
|
-
});
|
|
16650
|
-
return `Validation failed:
|
|
16651
|
-
${issues.join("\n")}`;
|
|
16652
|
-
}
|
|
16653
|
-
function parseWithFriendlyError(schema, data, context) {
|
|
16654
|
-
const result = schema.safeParse(data);
|
|
16655
|
-
if (result.success) {
|
|
16656
|
-
return result.data;
|
|
16657
|
-
}
|
|
16658
|
-
const prefix = context ? `${context}: ` : "";
|
|
16659
|
-
throw new Error(`${prefix}${formatZodError(result.error)}`);
|
|
16660
|
-
}
|
|
16661
|
-
|
|
16662
|
-
// ../../packages/core/src/known-models/index.ts
|
|
16663
|
-
var knownModels = [
|
|
16664
|
-
{
|
|
16665
|
-
provider: "anthropic",
|
|
16666
|
-
models: [
|
|
16667
|
-
// https://docs.claude.com/en/docs/about-claude/models/overview#model-comparison-table
|
|
16668
|
-
{
|
|
16669
|
-
name: "claude-opus-4-5",
|
|
16670
|
-
contextWindow: 2e5,
|
|
16671
|
-
maxOutputTokens: 32e3
|
|
16672
|
-
},
|
|
16673
|
-
{
|
|
16674
|
-
name: "claude-opus-4-1",
|
|
16675
|
-
contextWindow: 2e5,
|
|
16676
|
-
maxOutputTokens: 32e3
|
|
16677
|
-
},
|
|
16678
|
-
{
|
|
16679
|
-
name: "claude-opus-4-20250514",
|
|
16680
|
-
contextWindow: 2e5,
|
|
16681
|
-
maxOutputTokens: 32e3
|
|
16682
|
-
},
|
|
16683
|
-
{
|
|
16684
|
-
name: "claude-sonnet-4-5",
|
|
16685
|
-
contextWindow: 2e5,
|
|
16686
|
-
maxOutputTokens: 64e3
|
|
16687
|
-
},
|
|
16688
|
-
{
|
|
16689
|
-
name: "claude-sonnet-4-20250514",
|
|
16690
|
-
contextWindow: 2e5,
|
|
16691
|
-
maxOutputTokens: 64e3
|
|
16692
|
-
},
|
|
16693
|
-
{
|
|
16694
|
-
name: "claude-3-7-sonnet-20250219",
|
|
16695
|
-
contextWindow: 2e5,
|
|
16696
|
-
maxOutputTokens: 64e3
|
|
16697
|
-
},
|
|
16698
|
-
{
|
|
16699
|
-
name: "claude-haiku-4-5",
|
|
16700
|
-
contextWindow: 2e5,
|
|
16701
|
-
maxOutputTokens: 8192
|
|
16702
|
-
},
|
|
16703
|
-
{
|
|
16704
|
-
name: "claude-3-5-haiku-latest",
|
|
16705
|
-
contextWindow: 2e5,
|
|
16706
|
-
maxOutputTokens: 8192
|
|
16707
|
-
}
|
|
16708
|
-
]
|
|
16709
|
-
},
|
|
16710
|
-
{
|
|
16711
|
-
provider: "google",
|
|
16712
|
-
models: [
|
|
16713
|
-
// https://ai.google.dev/gemini-api/docs/models#gemini-3-pro
|
|
16714
|
-
{
|
|
16715
|
-
name: "gemini-3-pro-preview",
|
|
16716
|
-
contextWindow: 1048576,
|
|
16717
|
-
maxOutputTokens: 65536
|
|
16718
|
-
},
|
|
16719
|
-
// https://ai.google.dev/gemini-api/docs/models#gemini-2.5-pro
|
|
16720
|
-
{
|
|
16721
|
-
name: "gemini-2.5-pro",
|
|
16722
|
-
contextWindow: 1048576,
|
|
16723
|
-
maxOutputTokens: 65536
|
|
16724
|
-
},
|
|
16725
|
-
// https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash
|
|
16726
|
-
{
|
|
16727
|
-
name: "gemini-2.5-flash",
|
|
16728
|
-
contextWindow: 1048576,
|
|
16729
|
-
maxOutputTokens: 65536
|
|
16730
|
-
},
|
|
16731
|
-
// https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-lite
|
|
16732
|
-
{
|
|
16733
|
-
name: "gemini-2.5-flash-lite",
|
|
16734
|
-
contextWindow: 1048576,
|
|
16735
|
-
maxOutputTokens: 65536
|
|
16736
|
-
}
|
|
16737
|
-
]
|
|
16738
|
-
},
|
|
16739
|
-
{
|
|
16740
|
-
provider: "openai",
|
|
16741
|
-
models: [
|
|
16742
|
-
// https://platform.openai.com/docs/models/gpt-5
|
|
16743
|
-
{
|
|
16744
|
-
name: "gpt-5",
|
|
16745
|
-
contextWindow: 4e5,
|
|
16746
|
-
maxOutputTokens: 128e3
|
|
16747
|
-
},
|
|
16748
|
-
// https://platform.openai.com/docs/models/gpt-5-mini
|
|
16749
|
-
{
|
|
16750
|
-
name: "gpt-5-mini",
|
|
16751
|
-
contextWindow: 4e5,
|
|
16752
|
-
maxOutputTokens: 128e3
|
|
16753
|
-
},
|
|
16754
|
-
// https://platform.openai.com/docs/models/gpt-5-nano
|
|
16755
|
-
{
|
|
16756
|
-
name: "gpt-5-nano",
|
|
16757
|
-
contextWindow: 4e5,
|
|
16758
|
-
maxOutputTokens: 128e3
|
|
16759
|
-
},
|
|
16760
|
-
// https://platform.openai.com/docs/models/gpt-5-chat-latest
|
|
16761
|
-
{
|
|
16762
|
-
name: "gpt-5-chat-latest",
|
|
16763
|
-
contextWindow: 128e3,
|
|
16764
|
-
maxOutputTokens: 16384
|
|
16765
|
-
},
|
|
16766
|
-
// https://platform.openai.com/docs/models/o4-mini
|
|
16767
|
-
{
|
|
16768
|
-
name: "o4-mini",
|
|
16769
|
-
contextWindow: 2e5,
|
|
16770
|
-
maxOutputTokens: 1e5
|
|
16771
|
-
},
|
|
16772
|
-
// https://platform.openai.com/docs/models/o3
|
|
16773
|
-
{
|
|
16774
|
-
name: "o3",
|
|
16775
|
-
contextWindow: 2e5,
|
|
16776
|
-
maxOutputTokens: 1e4
|
|
16777
|
-
},
|
|
16778
|
-
// https://platform.openai.com/docs/models/o3-mini
|
|
16779
|
-
{
|
|
16780
|
-
name: "o3-mini",
|
|
16781
|
-
contextWindow: 2e5,
|
|
16782
|
-
maxOutputTokens: 1e4
|
|
16783
|
-
},
|
|
16784
|
-
// https://platform.openai.com/docs/models/gpt-4.1
|
|
16785
|
-
{
|
|
16786
|
-
name: "gpt-4.1",
|
|
16787
|
-
contextWindow: 1047576,
|
|
16788
|
-
maxOutputTokens: 32768
|
|
16789
|
-
}
|
|
16790
|
-
]
|
|
16791
|
-
},
|
|
16792
|
-
{
|
|
16793
|
-
provider: "deepseek",
|
|
16794
|
-
models: [
|
|
16795
|
-
{
|
|
16796
|
-
name: "deepseek-chat",
|
|
16797
|
-
contextWindow: 128e3,
|
|
16798
|
-
maxOutputTokens: 8192
|
|
16799
|
-
},
|
|
16800
|
-
{
|
|
16801
|
-
name: "deepseek-reasoner",
|
|
16802
|
-
contextWindow: 128e3,
|
|
16803
|
-
maxOutputTokens: 64e3
|
|
16804
|
-
}
|
|
16805
|
-
]
|
|
16806
|
-
},
|
|
16807
|
-
{
|
|
16808
|
-
provider: "ollama",
|
|
16809
|
-
models: [
|
|
16810
|
-
// https://platform.openai.com/docs/models/gpt-oss-20b
|
|
16811
|
-
{
|
|
16812
|
-
name: "gpt-oss:20b",
|
|
16813
|
-
contextWindow: 131072,
|
|
16814
|
-
maxOutputTokens: 131072
|
|
16815
|
-
},
|
|
16816
|
-
// https://platform.openai.com/docs/models/gpt-oss-120b
|
|
16817
|
-
{
|
|
16818
|
-
name: "gpt-oss:120b",
|
|
16819
|
-
contextWindow: 131072,
|
|
16820
|
-
maxOutputTokens: 131072
|
|
16821
|
-
},
|
|
16822
|
-
// https://ai.google.dev/gemma/docs/core/model_card_3
|
|
16823
|
-
{
|
|
16824
|
-
name: "gemma3:1b",
|
|
16825
|
-
contextWindow: 32e3,
|
|
16826
|
-
maxOutputTokens: 32e3
|
|
16827
|
-
},
|
|
16828
|
-
// https://ai.google.dev/gemma/docs/core/model_card_3
|
|
16829
|
-
{
|
|
16830
|
-
name: "gemma3:4b",
|
|
16831
|
-
contextWindow: 128e3,
|
|
16832
|
-
maxOutputTokens: 128e3
|
|
16833
|
-
},
|
|
16834
|
-
// https://ai.google.dev/gemma/docs/core/model_card_3
|
|
16835
|
-
{
|
|
16836
|
-
name: "gemma3:12b",
|
|
16837
|
-
contextWindow: 128e3,
|
|
16838
|
-
maxOutputTokens: 128e3
|
|
16839
|
-
},
|
|
16840
|
-
// https://ai.google.dev/gemma/docs/core/model_card_3
|
|
16841
|
-
{
|
|
16842
|
-
name: "gemma3:27b",
|
|
16843
|
-
contextWindow: 128e3,
|
|
16844
|
-
maxOutputTokens: 128e3
|
|
16845
|
-
}
|
|
16846
|
-
]
|
|
16847
|
-
}
|
|
16848
|
-
];
|
|
16849
|
-
|
|
16850
|
-
// ../../packages/core/src/schemas/job.ts
|
|
16851
|
-
var jobStatusSchema = external_exports.enum([
|
|
16852
|
-
"running",
|
|
16853
|
-
"completed",
|
|
16854
|
-
"stoppedByMaxSteps",
|
|
16855
|
-
"stoppedByInteractiveTool",
|
|
16856
|
-
"stoppedByError",
|
|
16857
|
-
"stoppedByCancellation"
|
|
16858
|
-
]);
|
|
16859
|
-
var jobSchema = external_exports.object({
|
|
16860
|
-
id: external_exports.string(),
|
|
16861
|
-
status: jobStatusSchema,
|
|
16862
|
-
coordinatorExpertKey: external_exports.string(),
|
|
16863
|
-
runtimeVersion: runtimeVersionSchema,
|
|
16864
|
-
totalSteps: external_exports.number(),
|
|
16865
|
-
maxSteps: external_exports.number().optional(),
|
|
16866
|
-
usage: usageSchema,
|
|
16648
|
+
});
|
|
16649
|
+
var startCommandInputSchema = external_exports.object({
|
|
16650
|
+
expertKey: external_exports.string().optional(),
|
|
16651
|
+
query: external_exports.string().optional(),
|
|
16652
|
+
options: commandOptionsSchema
|
|
16653
|
+
});
|
|
16654
|
+
|
|
16655
|
+
// ../../packages/core/src/schemas/runtime.ts
|
|
16656
|
+
var runSettingSchema = external_exports.object({
|
|
16657
|
+
model: external_exports.string(),
|
|
16658
|
+
providerConfig: providerConfigSchema,
|
|
16659
|
+
jobId: external_exports.string(),
|
|
16660
|
+
runId: external_exports.string(),
|
|
16661
|
+
expertKey: external_exports.string().min(1).regex(expertKeyRegex),
|
|
16662
|
+
input: external_exports.object({
|
|
16663
|
+
text: external_exports.string().optional(),
|
|
16664
|
+
interactiveToolCallResult: external_exports.object({
|
|
16665
|
+
toolCallId: external_exports.string(),
|
|
16666
|
+
toolName: external_exports.string(),
|
|
16667
|
+
skillName: external_exports.string(),
|
|
16668
|
+
text: external_exports.string()
|
|
16669
|
+
}).optional()
|
|
16670
|
+
}),
|
|
16671
|
+
experts: external_exports.record(external_exports.string(), expertSchema),
|
|
16672
|
+
reasoningBudget: reasoningBudgetSchema.default(defaultReasoningBudget),
|
|
16673
|
+
maxSteps: external_exports.number().min(1).optional().default(defaultMaxSteps),
|
|
16674
|
+
maxRetries: external_exports.number().min(0),
|
|
16675
|
+
timeout: external_exports.number().min(0),
|
|
16867
16676
|
startedAt: external_exports.number(),
|
|
16868
|
-
|
|
16677
|
+
updatedAt: external_exports.number(),
|
|
16678
|
+
perstackApiBaseUrl: external_exports.string().url(),
|
|
16679
|
+
perstackApiKey: external_exports.string().optional(),
|
|
16680
|
+
perstackBaseSkillCommand: external_exports.array(external_exports.string()).optional(),
|
|
16681
|
+
env: external_exports.record(external_exports.string(), external_exports.string()),
|
|
16682
|
+
proxyUrl: external_exports.string().optional(),
|
|
16683
|
+
verbose: external_exports.boolean().optional()
|
|
16684
|
+
});
|
|
16685
|
+
var runParamsSchema = external_exports.object({
|
|
16686
|
+
setting: external_exports.object({
|
|
16687
|
+
model: external_exports.string(),
|
|
16688
|
+
providerConfig: providerConfigSchema,
|
|
16689
|
+
jobId: external_exports.string().optional().default(() => createId()),
|
|
16690
|
+
runId: external_exports.string().optional().default(() => createId()),
|
|
16691
|
+
expertKey: external_exports.string().min(1).regex(expertKeyRegex),
|
|
16692
|
+
input: external_exports.object({
|
|
16693
|
+
text: external_exports.string().optional(),
|
|
16694
|
+
interactiveToolCallResult: external_exports.object({
|
|
16695
|
+
toolCallId: external_exports.string(),
|
|
16696
|
+
toolName: external_exports.string(),
|
|
16697
|
+
skillName: external_exports.string(),
|
|
16698
|
+
text: external_exports.string()
|
|
16699
|
+
}).optional()
|
|
16700
|
+
}),
|
|
16701
|
+
experts: external_exports.record(external_exports.string().min(1).regex(expertKeyRegex), expertSchema.omit({ key: true })).optional().default({}).transform(
|
|
16702
|
+
(experts) => Object.fromEntries(
|
|
16703
|
+
Object.entries(experts).map(([key, expertWithoutKey]) => [
|
|
16704
|
+
key,
|
|
16705
|
+
expertSchema.parse({
|
|
16706
|
+
...expertWithoutKey,
|
|
16707
|
+
key
|
|
16708
|
+
})
|
|
16709
|
+
])
|
|
16710
|
+
)
|
|
16711
|
+
),
|
|
16712
|
+
reasoningBudget: reasoningBudgetSchema.optional().default(defaultReasoningBudget),
|
|
16713
|
+
maxSteps: external_exports.number().min(1).optional().default(defaultMaxSteps),
|
|
16714
|
+
maxRetries: external_exports.number().min(0).optional().default(defaultMaxRetries),
|
|
16715
|
+
timeout: external_exports.number().min(0).optional().default(defaultTimeout),
|
|
16716
|
+
startedAt: external_exports.number().optional().default(Date.now()),
|
|
16717
|
+
updatedAt: external_exports.number().optional().default(Date.now()),
|
|
16718
|
+
perstackApiBaseUrl: external_exports.url().optional().default(defaultPerstackApiBaseUrl),
|
|
16719
|
+
perstackApiKey: external_exports.string().optional(),
|
|
16720
|
+
perstackBaseSkillCommand: external_exports.array(external_exports.string()).optional(),
|
|
16721
|
+
env: external_exports.record(external_exports.string(), external_exports.string()).optional().default({}),
|
|
16722
|
+
proxyUrl: external_exports.string().optional(),
|
|
16723
|
+
verbose: external_exports.boolean().optional()
|
|
16724
|
+
}),
|
|
16725
|
+
checkpoint: checkpointSchema.optional()
|
|
16869
16726
|
});
|
|
16727
|
+
function createEvent(type) {
|
|
16728
|
+
return (setting, checkpoint, data) => {
|
|
16729
|
+
return {
|
|
16730
|
+
type,
|
|
16731
|
+
id: createId(),
|
|
16732
|
+
expertKey: checkpoint.expert.key,
|
|
16733
|
+
timestamp: Date.now(),
|
|
16734
|
+
jobId: setting.jobId,
|
|
16735
|
+
runId: setting.runId,
|
|
16736
|
+
stepNumber: checkpoint.stepNumber,
|
|
16737
|
+
...data
|
|
16738
|
+
};
|
|
16739
|
+
};
|
|
16740
|
+
}
|
|
16741
|
+
function createStreamingEvent(type, setting, checkpoint, data) {
|
|
16742
|
+
return {
|
|
16743
|
+
type,
|
|
16744
|
+
id: createId(),
|
|
16745
|
+
expertKey: checkpoint.expert.key,
|
|
16746
|
+
timestamp: Date.now(),
|
|
16747
|
+
jobId: setting.jobId,
|
|
16748
|
+
runId: setting.runId,
|
|
16749
|
+
stepNumber: checkpoint.stepNumber,
|
|
16750
|
+
...data
|
|
16751
|
+
};
|
|
16752
|
+
}
|
|
16753
|
+
var startRun = createEvent("startRun");
|
|
16754
|
+
var resumeFromStop = createEvent("resumeFromStop");
|
|
16755
|
+
var proceedToInteractiveTools = createEvent("proceedToInteractiveTools");
|
|
16756
|
+
var startGeneration = createEvent("startGeneration");
|
|
16757
|
+
var retry = createEvent("retry");
|
|
16758
|
+
var callTools = createEvent("callTools");
|
|
16759
|
+
var finishMcpTools = createEvent("finishMcpTools");
|
|
16760
|
+
var skipDelegates = createEvent("skipDelegates");
|
|
16761
|
+
var resolveToolResults = createEvent("resolveToolResults");
|
|
16762
|
+
var attemptCompletion = createEvent("attemptCompletion");
|
|
16763
|
+
var finishToolCall = createEvent("finishToolCall");
|
|
16764
|
+
var completeRun = createEvent("completeRun");
|
|
16765
|
+
var stopRunByInteractiveTool = createEvent("stopRunByInteractiveTool");
|
|
16766
|
+
var stopRunByDelegate = createEvent("stopRunByDelegate");
|
|
16767
|
+
var stopRunByExceededMaxSteps = createEvent("stopRunByExceededMaxSteps");
|
|
16768
|
+
var stopRunByError = createEvent("stopRunByError");
|
|
16769
|
+
var continueToNextStep = createEvent("continueToNextStep");
|
|
16770
|
+
function createRuntimeEvent(type, jobId, runId, data) {
|
|
16771
|
+
return {
|
|
16772
|
+
type,
|
|
16773
|
+
id: createId(),
|
|
16774
|
+
timestamp: Date.now(),
|
|
16775
|
+
jobId,
|
|
16776
|
+
runId,
|
|
16777
|
+
...data
|
|
16778
|
+
};
|
|
16779
|
+
}
|
|
16780
|
+
var EXPERT_STATE_EVENT_TYPES = /* @__PURE__ */ new Set([
|
|
16781
|
+
"startRun",
|
|
16782
|
+
"resumeFromStop",
|
|
16783
|
+
"proceedToInteractiveTools",
|
|
16784
|
+
"startGeneration",
|
|
16785
|
+
"retry",
|
|
16786
|
+
"callTools",
|
|
16787
|
+
"finishMcpTools",
|
|
16788
|
+
"skipDelegates",
|
|
16789
|
+
"resolveToolResults",
|
|
16790
|
+
"attemptCompletion",
|
|
16791
|
+
"finishToolCall",
|
|
16792
|
+
"resumeToolCalls",
|
|
16793
|
+
"continueToNextStep",
|
|
16794
|
+
"stopRunByInteractiveTool",
|
|
16795
|
+
"stopRunByDelegate",
|
|
16796
|
+
"stopRunByExceededMaxSteps",
|
|
16797
|
+
"stopRunByError",
|
|
16798
|
+
"completeRun"
|
|
16799
|
+
]);
|
|
16800
|
+
var STREAMING_EVENT_TYPES = /* @__PURE__ */ new Set([
|
|
16801
|
+
"startStreamingReasoning",
|
|
16802
|
+
"streamReasoning",
|
|
16803
|
+
"completeStreamingReasoning",
|
|
16804
|
+
"startStreamingRunResult",
|
|
16805
|
+
"streamRunResult",
|
|
16806
|
+
"completeStreamingRunResult"
|
|
16807
|
+
]);
|
|
16808
|
+
var RUNTIME_EVENT_TYPES = /* @__PURE__ */ new Set([
|
|
16809
|
+
"initializeRuntime",
|
|
16810
|
+
"skillStarting",
|
|
16811
|
+
"skillConnected",
|
|
16812
|
+
"skillStderr",
|
|
16813
|
+
"skillDisconnected"
|
|
16814
|
+
]);
|
|
16815
|
+
function isValidEventType(type) {
|
|
16816
|
+
return EXPERT_STATE_EVENT_TYPES.has(type) || STREAMING_EVENT_TYPES.has(type);
|
|
16817
|
+
}
|
|
16818
|
+
function isValidRuntimeEventType(type) {
|
|
16819
|
+
return RUNTIME_EVENT_TYPES.has(type);
|
|
16820
|
+
}
|
|
16870
16821
|
|
|
16871
16822
|
// ../../packages/core/src/schemas/step.ts
|
|
16872
16823
|
external_exports.object({
|
|
@@ -17165,12 +17116,98 @@ function parseListDirectoryFromResult(result) {
|
|
|
17165
17116
|
return void 0;
|
|
17166
17117
|
}
|
|
17167
17118
|
}
|
|
17119
|
+
|
|
17120
|
+
// ../../packages/core/src/utils/env-filter.ts
|
|
17121
|
+
var SAFE_ENV_VARS = [
|
|
17122
|
+
// System
|
|
17123
|
+
"PATH",
|
|
17124
|
+
"HOME",
|
|
17125
|
+
"SHELL",
|
|
17126
|
+
"TERM",
|
|
17127
|
+
"NODE_PATH",
|
|
17128
|
+
// Proxy
|
|
17129
|
+
"HTTP_PROXY",
|
|
17130
|
+
"HTTPS_PROXY",
|
|
17131
|
+
"http_proxy",
|
|
17132
|
+
"https_proxy",
|
|
17133
|
+
"NO_PROXY",
|
|
17134
|
+
"no_proxy",
|
|
17135
|
+
"PERSTACK_PROXY_URL",
|
|
17136
|
+
"NPM_CONFIG_PROXY",
|
|
17137
|
+
"NPM_CONFIG_HTTPS_PROXY"
|
|
17138
|
+
];
|
|
17139
|
+
var PROTECTED_ENV_VARS = /* @__PURE__ */ new Set([
|
|
17140
|
+
"PATH",
|
|
17141
|
+
"HOME",
|
|
17142
|
+
"SHELL",
|
|
17143
|
+
"NODE_PATH",
|
|
17144
|
+
"LD_PRELOAD",
|
|
17145
|
+
"LD_LIBRARY_PATH",
|
|
17146
|
+
"DYLD_INSERT_LIBRARIES",
|
|
17147
|
+
"DYLD_LIBRARY_PATH",
|
|
17148
|
+
"NODE_OPTIONS",
|
|
17149
|
+
"PYTHONPATH",
|
|
17150
|
+
"PERL5LIB",
|
|
17151
|
+
"RUBYLIB"
|
|
17152
|
+
]);
|
|
17153
|
+
function getFilteredEnv(additional) {
|
|
17154
|
+
const filtered = {};
|
|
17155
|
+
for (const key of SAFE_ENV_VARS) {
|
|
17156
|
+
if (process.env[key]) {
|
|
17157
|
+
filtered[key] = process.env[key];
|
|
17158
|
+
}
|
|
17159
|
+
}
|
|
17160
|
+
if (additional) {
|
|
17161
|
+
for (const [key, value] of Object.entries(additional)) {
|
|
17162
|
+
if (!PROTECTED_ENV_VARS.has(key.toUpperCase())) {
|
|
17163
|
+
filtered[key] = value;
|
|
17164
|
+
}
|
|
17165
|
+
}
|
|
17166
|
+
}
|
|
17167
|
+
return filtered;
|
|
17168
|
+
}
|
|
17169
|
+
|
|
17170
|
+
// ../../packages/core/src/utils/event-filter.ts
|
|
17171
|
+
function validateEventFilter(filter) {
|
|
17172
|
+
const invalid = filter.filter((type) => !isValidEventType(type) && !isValidRuntimeEventType(type));
|
|
17173
|
+
if (invalid.length > 0) {
|
|
17174
|
+
throw new PerstackError(
|
|
17175
|
+
`Invalid event type(s): ${invalid.join(", ")}. Valid event types are: startRun, completeRun, stopRunByError, callTools, etc. See documentation for full list.`
|
|
17176
|
+
);
|
|
17177
|
+
}
|
|
17178
|
+
return filter;
|
|
17179
|
+
}
|
|
17180
|
+
function createFilteredEventListener(listener, allowedTypes) {
|
|
17181
|
+
return (event) => {
|
|
17182
|
+
if (allowedTypes.has(event.type)) {
|
|
17183
|
+
listener(event);
|
|
17184
|
+
}
|
|
17185
|
+
};
|
|
17186
|
+
}
|
|
17187
|
+
|
|
17188
|
+
// ../../packages/core/src/utils/zod-error.ts
|
|
17189
|
+
function formatZodError(error48) {
|
|
17190
|
+
const issues = error48.issues.map((issue2) => {
|
|
17191
|
+
const path = issue2.path.length > 0 ? `${issue2.path.join(".")}: ` : "";
|
|
17192
|
+
return ` - ${path}${issue2.message}`;
|
|
17193
|
+
});
|
|
17194
|
+
return `Validation failed:
|
|
17195
|
+
${issues.join("\n")}`;
|
|
17196
|
+
}
|
|
17197
|
+
function parseWithFriendlyError(schema, data, context) {
|
|
17198
|
+
const result = schema.safeParse(data);
|
|
17199
|
+
if (result.success) {
|
|
17200
|
+
return result.data;
|
|
17201
|
+
}
|
|
17202
|
+
const prefix = context ? `${context}: ` : "";
|
|
17203
|
+
throw new PerstackError(`${prefix}${formatZodError(result.error)}`);
|
|
17204
|
+
}
|
|
17168
17205
|
/*! Bundled license information:
|
|
17169
17206
|
|
|
17170
17207
|
@noble/hashes/utils.js:
|
|
17171
17208
|
(*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
17172
17209
|
*/
|
|
17173
17210
|
|
|
17174
|
-
export { $ZodObject, $ZodType, $constructor, BASE_SKILL_PREFIX, NEVER, ZodIssueCode, ZodOptional, _enum2 as _enum, _null3 as _null, activityOrGroupSchema, any, array, attemptCompletion, boolean2 as boolean, callTools, checkpointSchema, clone2 as clone, coerce_exports, completeRun, continueToNextStep, createBaseToolActivity, createFilteredEventListener, createGeneralToolActivity, createId, createRuntimeEvent, createStreamingEvent, custom, defaultMaxRetries, defaultPerstackApiBaseUrl, defaultTimeout, defineLazy, discriminatedUnion, expertSchema, external_exports, finishMcpTools, finishToolCall, getFilteredEnv, instructionMessageSchema, intersection, iso_exports, jobSchema, knownModels, literal, lockfileSchema, looseObject, messageSchema, normalizeParams, number2 as number, object, optional, parse, parseAsync, parseWithFriendlyError, perstackConfigSchema, preprocess, proceedToInteractiveTools, record, resolveToolResults, resumeFromStop, retry, runCommandInputSchema, runParamsSchema, runSettingSchema, safeParse, safeParseAsync, safeParseAsync2, skipDelegates, startCommandInputSchema, startGeneration, startRun, stopRunByDelegate, stopRunByError, stopRunByExceededMaxSteps, stopRunByInteractiveTool, string2 as string, toJSONSchema, toolCallSchema, toolMessageSchema, toolResultSchema, union, unknown, url, usageSchema, userMessageSchema, validateEventFilter };
|
|
17175
|
-
//# sourceMappingURL=chunk-
|
|
17176
|
-
//# sourceMappingURL=chunk-
|
|
17211
|
+
export { $ZodObject, $ZodType, $constructor, BASE_SKILL_PREFIX, NEVER, PerstackError, ZodIssueCode, ZodOptional, _enum2 as _enum, _null3 as _null, activityOrGroupSchema, any, array, attemptCompletion, boolean2 as boolean, callTools, checkpointSchema, clone2 as clone, coerce_exports, completeRun, continueToNextStep, createBaseToolActivity, createFilteredEventListener, createGeneralToolActivity, createId, createRuntimeEvent, createStreamingEvent, custom, defaultMaxRetries, defaultPerstackApiBaseUrl, defaultTimeout, defineLazy, discriminatedUnion, expertSchema, external_exports, finishMcpTools, finishToolCall, getFilteredEnv, instructionMessageSchema, intersection, iso_exports, jobSchema, knownModels, literal, lockfileSchema, looseObject, messageSchema, normalizeParams, number2 as number, object, optional, parse, parseAsync, parseWithFriendlyError, perstackConfigSchema, preprocess, proceedToInteractiveTools, record, resolveToolResults, resumeFromStop, retry, runCommandInputSchema, runParamsSchema, runSettingSchema, safeParse, safeParseAsync, safeParseAsync2, skipDelegates, startCommandInputSchema, startGeneration, startRun, stopRunByDelegate, stopRunByError, stopRunByExceededMaxSteps, stopRunByInteractiveTool, string2 as string, toJSONSchema, toolCallSchema, toolMessageSchema, toolResultSchema, union, unknown, url, usageSchema, userMessageSchema, validateEventFilter };
|
|
17212
|
+
//# sourceMappingURL=chunk-6IYHM4GX.js.map
|
|
17213
|
+
//# sourceMappingURL=chunk-6IYHM4GX.js.map
|