@eigenpal/cli 0.16.3 → 0.16.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/cli.js +586 -117
- package/dist/docs-bundle.json +43 -8
- package/dist/skill/reference/step-types.md +368 -0
- package/dist/skill/reference/workflow-yaml.md +5 -2
- package/package.json +1 -1
|
@@ -3002,6 +3002,156 @@ Output schema:
|
|
|
3002
3002
|
```
|
|
3003
3003
|
|
|
3004
3004
|
|
|
3005
|
+
#### `ai.search-files` — Search Files
|
|
3006
|
+
|
|
3007
|
+
Investigate a ZIP archive with a question and return an answer plus file citations. Read-only: the step opens files in the archive and never writes back. ZIP is the only accepted format in this version. Optionally scope the search to a folder prefix and cap how many files and investigation turns may run.
|
|
3008
|
+
|
|
3009
|
+
**Behavior and examples:** `eigenpal docs read steps/ai/search-files`
|
|
3010
|
+
|
|
3011
|
+
**Durable retry:** Provider request retries are separate; the workflow engine does not durably retry this step.
|
|
3012
|
+
|
|
3013
|
+
**Config** (in `step.with`):
|
|
3014
|
+
|
|
3015
|
+
| Field | Type | Required | Default | Description |
|
|
3016
|
+
| --- | --- | --- | --- | --- |
|
|
3017
|
+
| `archive` | string | yes | | Template expression or file reference for the ZIP archive to inspect. ZIP is the only accepted format in this version. |
|
|
3018
|
+
| `query` | string | yes | | Natural-language question to answer from files inside the archive. |
|
|
3019
|
+
| `root` | string | no | | Optional folder prefix inside the archive. When set, only files under this path are in scope. |
|
|
3020
|
+
| `provider` | string | no | | Provider ID from eigenpal.config.yaml. Falls back to the tenant default LLM provider when omitted. |
|
|
3021
|
+
| `model` | string | no | | Model override (advanced). |
|
|
3022
|
+
| `reasoningEffort` | `"none"` \| `"minimal"` \| `"low"` \| `"medium"` \| `"high"` \| `"xhigh"` \| `"max"` | no | | Reasoning effort for models that support it. Omit to use the selected model's default. |
|
|
3023
|
+
| `maxIterations` | integer | no | `12` | Maximum investigation turns. Default 12, capped at 50. |
|
|
3024
|
+
| `maxFiles` | integer | no | `50` | Maximum files the step may open. Default 50, capped at 200. |
|
|
3025
|
+
|
|
3026
|
+
**Output:** `object`
|
|
3027
|
+
|
|
3028
|
+
| Field | Type | Required | Default | Description |
|
|
3029
|
+
| --- | --- | --- | --- | --- |
|
|
3030
|
+
| `answer` | string | yes | | The investigation answer. Citations point at inspected files; the answer text itself is model-generated. |
|
|
3031
|
+
| `citations` | array<object> | yes | | Citations to files the step inspected. Excerpts, when present, are copied from inspected text. |
|
|
3032
|
+
| `filesInspected` | array<string> | yes | | Archive-relative paths of files the step opened during investigation. |
|
|
3033
|
+
|
|
3034
|
+
##### Complete machine-readable schemas
|
|
3035
|
+
|
|
3036
|
+
Config schema:
|
|
3037
|
+
|
|
3038
|
+
```json
|
|
3039
|
+
{
|
|
3040
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3041
|
+
"type": "object",
|
|
3042
|
+
"properties": {
|
|
3043
|
+
"archive": {
|
|
3044
|
+
"type": "string",
|
|
3045
|
+
"minLength": 1,
|
|
3046
|
+
"description": "Template expression or file reference for the ZIP archive to inspect. ZIP is the only accepted format in this version."
|
|
3047
|
+
},
|
|
3048
|
+
"query": {
|
|
3049
|
+
"type": "string",
|
|
3050
|
+
"minLength": 1,
|
|
3051
|
+
"description": "Natural-language question to answer from files inside the archive."
|
|
3052
|
+
},
|
|
3053
|
+
"root": {
|
|
3054
|
+
"description": "Optional folder prefix inside the archive. When set, only files under this path are in scope.",
|
|
3055
|
+
"type": "string"
|
|
3056
|
+
},
|
|
3057
|
+
"provider": {
|
|
3058
|
+
"description": "Provider ID from eigenpal.config.yaml. Falls back to the tenant default LLM provider when omitted.",
|
|
3059
|
+
"type": "string"
|
|
3060
|
+
},
|
|
3061
|
+
"model": {
|
|
3062
|
+
"description": "Model override (advanced).",
|
|
3063
|
+
"type": "string"
|
|
3064
|
+
},
|
|
3065
|
+
"reasoningEffort": {
|
|
3066
|
+
"description": "Reasoning effort for models that support it. Omit to use the selected model's default.",
|
|
3067
|
+
"type": "string",
|
|
3068
|
+
"enum": [
|
|
3069
|
+
"none",
|
|
3070
|
+
"minimal",
|
|
3071
|
+
"low",
|
|
3072
|
+
"medium",
|
|
3073
|
+
"high",
|
|
3074
|
+
"xhigh",
|
|
3075
|
+
"max"
|
|
3076
|
+
]
|
|
3077
|
+
},
|
|
3078
|
+
"maxIterations": {
|
|
3079
|
+
"description": "Maximum investigation turns. Default 12, capped at 50.",
|
|
3080
|
+
"default": 12,
|
|
3081
|
+
"type": "integer",
|
|
3082
|
+
"minimum": 1,
|
|
3083
|
+
"maximum": 50
|
|
3084
|
+
},
|
|
3085
|
+
"maxFiles": {
|
|
3086
|
+
"description": "Maximum files the step may open. Default 50, capped at 200.",
|
|
3087
|
+
"default": 50,
|
|
3088
|
+
"type": "integer",
|
|
3089
|
+
"minimum": 1,
|
|
3090
|
+
"maximum": 200
|
|
3091
|
+
}
|
|
3092
|
+
},
|
|
3093
|
+
"required": [
|
|
3094
|
+
"archive",
|
|
3095
|
+
"query"
|
|
3096
|
+
],
|
|
3097
|
+
"additionalProperties": false
|
|
3098
|
+
}
|
|
3099
|
+
```
|
|
3100
|
+
|
|
3101
|
+
|
|
3102
|
+
Output schema:
|
|
3103
|
+
|
|
3104
|
+
```json
|
|
3105
|
+
{
|
|
3106
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3107
|
+
"type": "object",
|
|
3108
|
+
"properties": {
|
|
3109
|
+
"answer": {
|
|
3110
|
+
"type": "string",
|
|
3111
|
+
"minLength": 1,
|
|
3112
|
+
"description": "The investigation answer. Citations point at inspected files; the answer text itself is model-generated."
|
|
3113
|
+
},
|
|
3114
|
+
"citations": {
|
|
3115
|
+
"type": "array",
|
|
3116
|
+
"items": {
|
|
3117
|
+
"type": "object",
|
|
3118
|
+
"properties": {
|
|
3119
|
+
"path": {
|
|
3120
|
+
"type": "string",
|
|
3121
|
+
"minLength": 1,
|
|
3122
|
+
"description": "Archive-relative path of a file the step inspected and cited."
|
|
3123
|
+
},
|
|
3124
|
+
"excerpt": {
|
|
3125
|
+
"description": "Optional excerpt copied from the inspected file text. Omitted when no verbatim excerpt was supplied.",
|
|
3126
|
+
"type": "string",
|
|
3127
|
+
"maxLength": 2000
|
|
3128
|
+
}
|
|
3129
|
+
},
|
|
3130
|
+
"required": [
|
|
3131
|
+
"path"
|
|
3132
|
+
],
|
|
3133
|
+
"additionalProperties": false
|
|
3134
|
+
},
|
|
3135
|
+
"description": "Citations to files the step inspected. Excerpts, when present, are copied from inspected text."
|
|
3136
|
+
},
|
|
3137
|
+
"filesInspected": {
|
|
3138
|
+
"type": "array",
|
|
3139
|
+
"items": {
|
|
3140
|
+
"type": "string"
|
|
3141
|
+
},
|
|
3142
|
+
"description": "Archive-relative paths of files the step opened during investigation."
|
|
3143
|
+
}
|
|
3144
|
+
},
|
|
3145
|
+
"required": [
|
|
3146
|
+
"answer",
|
|
3147
|
+
"citations",
|
|
3148
|
+
"filesInspected"
|
|
3149
|
+
],
|
|
3150
|
+
"additionalProperties": false
|
|
3151
|
+
}
|
|
3152
|
+
```
|
|
3153
|
+
|
|
3154
|
+
|
|
3005
3155
|
### Transform steps — deterministic data transforms
|
|
3006
3156
|
|
|
3007
3157
|
#### `transform.set` — Set Value
|
|
@@ -4717,6 +4867,224 @@ Output schema:
|
|
|
4717
4867
|
```
|
|
4718
4868
|
|
|
4719
4869
|
|
|
4870
|
+
#### `transform.archive-list` — List Archive
|
|
4871
|
+
|
|
4872
|
+
List files inside a ZIP archive. Returns sorted normalized paths with compressed and uncompressed sizes. Optionally filter by folder prefix or substring, then page with offset and limit. ZIP is the only accepted format in this version. Pair with foreach or parallel_map and transform.archive-extract to open individual files.
|
|
4873
|
+
|
|
4874
|
+
**Behavior and examples:** `eigenpal docs read steps/transform/archive-list`
|
|
4875
|
+
|
|
4876
|
+
**Durable retry:** Transforms, including those that write files, are not durably retried.
|
|
4877
|
+
|
|
4878
|
+
**Config** (in `step.with`):
|
|
4879
|
+
|
|
4880
|
+
| Field | Type | Required | Default | Description |
|
|
4881
|
+
| --- | --- | --- | --- | --- |
|
|
4882
|
+
| `archive` | string | yes | | Template expression or file reference for the ZIP archive to list. ZIP is the only accepted format in this version. |
|
|
4883
|
+
| `prefix` | string | no | | Optional folder prefix inside the archive after path normalization (for example invoices or invoices/). |
|
|
4884
|
+
| `search` | string | no | | Optional case-insensitive substring match on the normalized archive path. |
|
|
4885
|
+
| `offset` | integer | no | | Number of matching entries to skip after sorting. Default 0. |
|
|
4886
|
+
| `limit` | integer | no | | Maximum matching entries to return after sorting. Capped at 10000. Omit to return every matching entry up to that cap. |
|
|
4887
|
+
|
|
4888
|
+
**Output:** `object`
|
|
4889
|
+
|
|
4890
|
+
| Field | Type | Required | Default | Description |
|
|
4891
|
+
| --- | --- | --- | --- | --- |
|
|
4892
|
+
| `entries` | array<object> | yes | | Matching files, sorted by normalized path. Directories and junk paths are omitted. |
|
|
4893
|
+
| `total` | integer | yes | | Number of matching entries before offset/limit pagination. |
|
|
4894
|
+
|
|
4895
|
+
##### Complete machine-readable schemas
|
|
4896
|
+
|
|
4897
|
+
Config schema:
|
|
4898
|
+
|
|
4899
|
+
```json
|
|
4900
|
+
{
|
|
4901
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4902
|
+
"type": "object",
|
|
4903
|
+
"properties": {
|
|
4904
|
+
"archive": {
|
|
4905
|
+
"type": "string",
|
|
4906
|
+
"minLength": 1,
|
|
4907
|
+
"description": "Template expression or file reference for the ZIP archive to list. ZIP is the only accepted format in this version."
|
|
4908
|
+
},
|
|
4909
|
+
"prefix": {
|
|
4910
|
+
"description": "Optional folder prefix inside the archive after path normalization (for example invoices or invoices/).",
|
|
4911
|
+
"type": "string"
|
|
4912
|
+
},
|
|
4913
|
+
"search": {
|
|
4914
|
+
"description": "Optional case-insensitive substring match on the normalized archive path.",
|
|
4915
|
+
"type": "string"
|
|
4916
|
+
},
|
|
4917
|
+
"offset": {
|
|
4918
|
+
"description": "Number of matching entries to skip after sorting. Default 0.",
|
|
4919
|
+
"type": "integer",
|
|
4920
|
+
"minimum": 0,
|
|
4921
|
+
"maximum": 9007199254740991
|
|
4922
|
+
},
|
|
4923
|
+
"limit": {
|
|
4924
|
+
"description": "Maximum matching entries to return after sorting. Capped at 10000. Omit to return every matching entry up to that cap.",
|
|
4925
|
+
"type": "integer",
|
|
4926
|
+
"minimum": 1,
|
|
4927
|
+
"maximum": 10000
|
|
4928
|
+
}
|
|
4929
|
+
},
|
|
4930
|
+
"required": [
|
|
4931
|
+
"archive"
|
|
4932
|
+
],
|
|
4933
|
+
"additionalProperties": false
|
|
4934
|
+
}
|
|
4935
|
+
```
|
|
4936
|
+
|
|
4937
|
+
|
|
4938
|
+
Output schema:
|
|
4939
|
+
|
|
4940
|
+
```json
|
|
4941
|
+
{
|
|
4942
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4943
|
+
"type": "object",
|
|
4944
|
+
"properties": {
|
|
4945
|
+
"entries": {
|
|
4946
|
+
"type": "array",
|
|
4947
|
+
"items": {
|
|
4948
|
+
"type": "object",
|
|
4949
|
+
"properties": {
|
|
4950
|
+
"path": {
|
|
4951
|
+
"type": "string",
|
|
4952
|
+
"description": "Normalized archive-relative path"
|
|
4953
|
+
},
|
|
4954
|
+
"compressedSize": {
|
|
4955
|
+
"type": "integer",
|
|
4956
|
+
"minimum": 0,
|
|
4957
|
+
"maximum": 9007199254740991,
|
|
4958
|
+
"description": "Declared compressed size in bytes"
|
|
4959
|
+
},
|
|
4960
|
+
"uncompressedSize": {
|
|
4961
|
+
"type": "integer",
|
|
4962
|
+
"minimum": 0,
|
|
4963
|
+
"maximum": 9007199254740991,
|
|
4964
|
+
"description": "Declared uncompressed size in bytes"
|
|
4965
|
+
}
|
|
4966
|
+
},
|
|
4967
|
+
"required": [
|
|
4968
|
+
"path",
|
|
4969
|
+
"compressedSize",
|
|
4970
|
+
"uncompressedSize"
|
|
4971
|
+
],
|
|
4972
|
+
"additionalProperties": false
|
|
4973
|
+
},
|
|
4974
|
+
"description": "Matching files, sorted by normalized path. Directories and junk paths are omitted."
|
|
4975
|
+
},
|
|
4976
|
+
"total": {
|
|
4977
|
+
"type": "integer",
|
|
4978
|
+
"minimum": 0,
|
|
4979
|
+
"maximum": 9007199254740991,
|
|
4980
|
+
"description": "Number of matching entries before offset/limit pagination."
|
|
4981
|
+
}
|
|
4982
|
+
},
|
|
4983
|
+
"required": [
|
|
4984
|
+
"entries",
|
|
4985
|
+
"total"
|
|
4986
|
+
],
|
|
4987
|
+
"additionalProperties": false
|
|
4988
|
+
}
|
|
4989
|
+
```
|
|
4990
|
+
|
|
4991
|
+
|
|
4992
|
+
#### `transform.archive-extract` — Extract Archive File
|
|
4993
|
+
|
|
4994
|
+
Extract exactly one file from a ZIP archive and store it as a run output file. Downstream steps can pass {{ steps.extract.output }} into Parse, Vision, or another archive step. Nested ZIPs are stored as ZIP files, not unpacked. Each extraction is capped at 64 MiB. ZIP is the only accepted format in this version.
|
|
4995
|
+
|
|
4996
|
+
**Behavior and examples:** `eigenpal docs read steps/transform/archive-extract`
|
|
4997
|
+
|
|
4998
|
+
**Durable retry:** Transforms, including those that write files, are not durably retried.
|
|
4999
|
+
|
|
5000
|
+
**Config** (in `step.with`):
|
|
5001
|
+
|
|
5002
|
+
| Field | Type | Required | Default | Description |
|
|
5003
|
+
| --- | --- | --- | --- | --- |
|
|
5004
|
+
| `archive` | string | yes | | Template expression or file reference for the ZIP archive. ZIP is the only accepted format in this version. |
|
|
5005
|
+
| `path` | string | yes | | Archive-relative path of the single file to extract, for example {{ item.path }} from a prior archive-list step. |
|
|
5006
|
+
|
|
5007
|
+
**Output:** `object`
|
|
5008
|
+
|
|
5009
|
+
| Field | Type | Required | Default | Description |
|
|
5010
|
+
| --- | --- | --- | --- | --- |
|
|
5011
|
+
| `fileId` | string | yes | | File ID from the files table |
|
|
5012
|
+
| `path` | string | yes | | Normalized archive-relative path that was extracted |
|
|
5013
|
+
| `filename` | string | yes | | Basename of the extracted file |
|
|
5014
|
+
| `mimeType` | string | yes | | Detected MIME type of the extracted file |
|
|
5015
|
+
| `size` | integer | yes | | Uncompressed size in bytes |
|
|
5016
|
+
|
|
5017
|
+
##### Complete machine-readable schemas
|
|
5018
|
+
|
|
5019
|
+
Config schema:
|
|
5020
|
+
|
|
5021
|
+
```json
|
|
5022
|
+
{
|
|
5023
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
5024
|
+
"type": "object",
|
|
5025
|
+
"properties": {
|
|
5026
|
+
"archive": {
|
|
5027
|
+
"type": "string",
|
|
5028
|
+
"minLength": 1,
|
|
5029
|
+
"description": "Template expression or file reference for the ZIP archive. ZIP is the only accepted format in this version."
|
|
5030
|
+
},
|
|
5031
|
+
"path": {
|
|
5032
|
+
"type": "string",
|
|
5033
|
+
"minLength": 1,
|
|
5034
|
+
"description": "Archive-relative path of the single file to extract, for example {{ item.path }} from a prior archive-list step."
|
|
5035
|
+
}
|
|
5036
|
+
},
|
|
5037
|
+
"required": [
|
|
5038
|
+
"archive",
|
|
5039
|
+
"path"
|
|
5040
|
+
],
|
|
5041
|
+
"additionalProperties": false
|
|
5042
|
+
}
|
|
5043
|
+
```
|
|
5044
|
+
|
|
5045
|
+
|
|
5046
|
+
Output schema:
|
|
5047
|
+
|
|
5048
|
+
```json
|
|
5049
|
+
{
|
|
5050
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
5051
|
+
"type": "object",
|
|
5052
|
+
"properties": {
|
|
5053
|
+
"fileId": {
|
|
5054
|
+
"type": "string",
|
|
5055
|
+
"description": "File ID from the files table"
|
|
5056
|
+
},
|
|
5057
|
+
"path": {
|
|
5058
|
+
"type": "string",
|
|
5059
|
+
"description": "Normalized archive-relative path that was extracted"
|
|
5060
|
+
},
|
|
5061
|
+
"filename": {
|
|
5062
|
+
"type": "string",
|
|
5063
|
+
"description": "Basename of the extracted file"
|
|
5064
|
+
},
|
|
5065
|
+
"mimeType": {
|
|
5066
|
+
"type": "string",
|
|
5067
|
+
"description": "Detected MIME type of the extracted file"
|
|
5068
|
+
},
|
|
5069
|
+
"size": {
|
|
5070
|
+
"type": "integer",
|
|
5071
|
+
"minimum": 0,
|
|
5072
|
+
"maximum": 9007199254740991,
|
|
5073
|
+
"description": "Uncompressed size in bytes"
|
|
5074
|
+
}
|
|
5075
|
+
},
|
|
5076
|
+
"required": [
|
|
5077
|
+
"fileId",
|
|
5078
|
+
"path",
|
|
5079
|
+
"filename",
|
|
5080
|
+
"mimeType",
|
|
5081
|
+
"size"
|
|
5082
|
+
],
|
|
5083
|
+
"additionalProperties": false
|
|
5084
|
+
}
|
|
5085
|
+
```
|
|
5086
|
+
|
|
5087
|
+
|
|
4720
5088
|
### Action steps — external side effects
|
|
4721
5089
|
|
|
4722
5090
|
#### `action.http` — HTTP Request
|
|
@@ -1008,7 +1008,8 @@ This JSON Schema is generated from the same Zod schema used to parse workflow YA
|
|
|
1008
1008
|
"ai.segment",
|
|
1009
1009
|
"ai.classify",
|
|
1010
1010
|
"ai.classify-pages",
|
|
1011
|
-
"ai.vision"
|
|
1011
|
+
"ai.vision",
|
|
1012
|
+
"ai.search-files"
|
|
1012
1013
|
]
|
|
1013
1014
|
},
|
|
1014
1015
|
"name": {
|
|
@@ -1116,7 +1117,9 @@ This JSON Schema is generated from the same Zod schema used to parse workflow YA
|
|
|
1116
1117
|
"transform.json-to-xlsx",
|
|
1117
1118
|
"transform.script",
|
|
1118
1119
|
"transform.text-chunker",
|
|
1119
|
-
"transform.regex-extract"
|
|
1120
|
+
"transform.regex-extract",
|
|
1121
|
+
"transform.archive-list",
|
|
1122
|
+
"transform.archive-extract"
|
|
1120
1123
|
]
|
|
1121
1124
|
},
|
|
1122
1125
|
"name": {
|