Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,12 @@ python -m pip install --upgrade fsq-agent
fsq ui
```

In **Settings**, configure the FSQ LLM Provider and explicitly select a model.
Choose **Quick Test** for exploration using the automatic `~/.fsq/quick-test/` Workspace, or **FSQ Case Manager** for Workspace/Case management, history, and Strict Replay. Both share **Settings**, where you configure the FSQ LLM Provider and explicitly select a model.

**First test.**
1. Create or select a Workspace, and configure its platform and target as needed.
2. In **Test Runner**, select the exact target.
3. Describe a verifiable result, review the test setup, and start the test. Review the result first and, if FSQ returns a Case, review it unchanged before separately requesting any replay.
1. Select the platform and, where applicable, the device or browser.
2. Describe what to do and verify. For Web, provide a URL or a clear search goal, for example: `Search FSQ on GitHub and find its official website.` You do not need to know the result URL beforehand.
3. Select **Start Quick Test**. The model identifies the application; FSQ validates the resolved target and environment before exploration. Unresolved intent, zero/multiple lookup results, and preparation failures stop the request without a follow-up dialogue. Target availability does not prove the model understood the application correctly.
4. Review the result and evidence using **Open report**, or choose **New test**. Quick Test does not save Cases; in Case Manager, review any generated Case unchanged before separately requesting replay.

![FSQ Test Runner for describing a test goal](docs/media/01-describe-goal.png)

Expand Down
10 changes: 5 additions & 5 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,12 +67,12 @@ python -m pip install --upgrade fsq-agent
fsq ui
```

在 **Settings** 中配置 FSQ LLM Provider,并显式选择模型。
选择 **Quick Test**,自动使用 `~/.fsq/quick-test/` Workspace 进行探索;或选择 **FSQ Case Manager** 管理 Workspace、Case、历史运行及 Strict Replay。两个入口共用 **Settings**,在其中配置 FSQ LLM Provider 并显式选择模型。

**首次测试。**
1. 创建或选择 Workspace,并按需配置其平台和目标。
2. 在 **Test Runner** 中选择准确目标。
3. 描述可验证的结果,审查测试设置,然后开始测试。先审查结果;如果 FSQ 返回了 Case,再原样审查它,然后另行决定是否请求重放。
1. 选择平台,以及适用的设备或浏览器。
2. 描述要执行的操作和预期结果。Web 可以提供网址,也可以描述明确的搜索目标,例如:`搜索 FSQ github,并且帮我找到 FSQ 的官网地址。` 无需预先知道要找到的网址。
3. 点击 **Start Quick Test**。模型识别应用,FSQ 验证解析出的目标和环境后才开始探索。意图不明确、目标查询零匹配或多匹配、准备失败时直接终止,不补问;目标可运行不等于已证明模型理解正确。
4. 通过 **Open report** 审查结果和证据,或选择 **New test**。Quick Test 不保存 Case;在 Case Manager 中应先原样审查生成的 Case,再另行决定是否重放。

![用于描述测试目标的 FSQ Test Runner](docs/media/01-describe-goal.png)

Expand Down
34 changes: 26 additions & 8 deletions SPEC.md

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion docs/cli-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,12 @@ FSQ installs `fsq` and the compatibility alias `fsq-agent`. Both invoke the same
| `fsq case test --suggest` | Execute once, then analyze persisted facts. | Yes |
| `fsq runs list/show/logs` | Query Workspace Run history without execution readiness. | Yes |
| `fsq runs export RUN_ID` | Export JSON, JUnit, standalone HTML, or an evidence bundle. | Yes |
| `fsq ui` | Start the local Control Plane. | No |
| `fsq ui` | Start the local browser entry for Quick Test or FSQ Case Manager. | No |

Except when creating an unregistered Workspace, Workspace commands use the exact current directory. They do not search ancestors or accept an alternate Workspace flag.

`fsq ui` can start from any directory. Choose **Quick Test** in the browser for exploration using the automatically prepared `~/.fsq/quick-test/` Workspace, or **FSQ Case Manager** for the complete existing workflows. Both use the same **Settings**. Entry selection does not itself start a test, and there is no separate Quick Test CLI command. See [the browser workflow](getting-started.md#open-the-control-plane).

Human output is for terminals. JSON produces one structured result. JSONL emits documented events and a terminal result where streaming applies. Invalid command requests use exit code 2; consume stable machine fields rather than human wording.

Run export works without browser interaction or a Provider:
Expand Down
14 changes: 12 additions & 2 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,12 +164,12 @@ fsq providers status

Alternatively run `fsq providers configure openai` for the official OpenAI API, `fsq providers configure deepseek` for the official DeepSeek Responses API, `fsq providers configure kimi` for the official China or Global Kimi API, or `fsq providers configure azure_openai` for an Azure deployment. Provider configuration is user-level, stored below `~/.fsq`, and shared with the local Control Plane. API-key Providers prompt privately for a key and offer eligible models; even a single model requires explicit selection.

For browser configuration, run `fsq ui` and open **Settings**:
For browser configuration, run `fsq ui`, choose **Quick Test** or **FSQ Case Manager**, and open their shared **Settings**:

1. Choose **Add configuration** or **Change provider**, then **OpenAI**, **DeepSeek**, **Google Gemini**, or **Kimi**.
2. For Kimi, explicitly choose **China** or **Global**. Enter an API key and select **Load models**. Select one offered model, then **Save changes**.
3. Select **Test connection** to send a minimal request using the saved configuration.
4. Return to **Home** to see the Provider summary, then open **Test Runner**, choose a Workspace/platform/target, and start an Explore task explicitly.
4. In **Quick Test**, return to the goal form and explicitly start a test. In **FSQ Case Manager**, return to **Home** to see the Provider summary, then open **Test Runner**, choose a Workspace/platform/target, and start an Explore task explicitly.

OpenAI always uses `https://api.openai.com/v1/` and the Responses API. Its picker offers general-purpose GPT major version 5 or later, excluding mini, nano, Codex, embedding, audio, realtime, image, search, transcription, and TTS variants. An empty list cannot be saved. Changing the key invalidates the list and selection; reload before saving. Azure instead requires a resource endpoint, **deployment name** (not necessarily an OpenAI model id), and API key.

Expand Down Expand Up @@ -219,6 +219,16 @@ fsq ui

The installed frontend is served locally on `127.0.0.1:8879` by default.

Choose **Quick Test** for exploration without Workspace setup. Configure the shared Provider in **Settings**, select a platform and the applicable device/browser, and describe the application or search subject, actions, and expected result. Web supports both a supplied URL, such as `Open https://example.com and verify that its heading is Example Domain`, and a clear address-free search goal, such as `Search FSQ on GitHub and find its official website`.

Address-free Web searches reuse the existing blank-page browser startup and Agent navigation. FSQ does not add a search-engine setting or assume the website found by a previous test. The Agent follows your goal to search and inspect pages; supplied malformed or unsupported navigation addresses are rejected rather than turned into searches. Before an address-free search can be reported as successful, it must have actual browser activity and usable HTTP(S) page observations. A model-only answer or blank-browser startup is insufficient. Page/link evidence still needs to support the requested result, including any claim that a discovered URL is official.

**Start Quick Test** prepares a dedicated registered Workspace at `~/.fsq/quick-test/` and starts exploration only after input, concrete target, and runtime checks pass. All Quick Tests share this Workspace; each run freezes its own target. The model can infer the named application's package ID, bundle ID, or executable path; explicit identifiers can also be written in the same prompt. FSQ validates that resolved identity through the selected platform without requiring a separate localized application-name mapping. It does not exhaustively rule out all same-named installed apps, and availability does not prove that the model understood your intended application correctly. Insufficient or ambiguous intent, zero/multiple results within the resolved target lookup, and discovery or model failures stop the request without clarification or automatic retry. Correct the prompt or environment and start again explicitly.

Results use the existing timeline and evidence views. **Open report** opens the persistent report, and **New test** returns to the prompt. Quick Test has no Save Case action or Strict Replay mode. Leaving or refreshing the page does not cancel an active server task, and returning recovers the active Quick Test while the same local service is running. Restarting the service does not resume execution.

Choose **FSQ Case Manager** for the complete Workspace, Case, history, and strict-replay workflows described elsewhere in this guide. The dedicated Quick Test Workspace is visible there. Existing Run report links still open the corresponding report directly.

## Next steps

- Review [platform prerequisites](platform-prerequisites.md).
Expand Down
14 changes: 12 additions & 2 deletions docs/getting-started.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,12 +141,12 @@ fsq providers status

也可以运行 `fsq providers configure openai` 连接 OpenAI 官方 API,运行 `fsq providers configure deepseek` 连接 DeepSeek 官方 Responses API,运行 `fsq providers configure kimi` 连接中国区或国际区 Kimi 官方 API,或运行 `fsq providers configure azure_openai` 连接 Azure 部署。配置保存在用户级 `~/.fsq` 下,由 CLI 和 Control Plane 共享。API Key Provider 会隐藏 Key 输入并提供可选模型;即使只有一个模型也需要显式选择。

浏览器配置流程:运行 `fsq ui`,打开 **Settings**。
浏览器配置流程:运行 `fsq ui`,选择 **Quick Test** 或 **FSQ Case Manager**,打开两者共用的 **Settings**。

1. 点击 **Add configuration** 或 **Change provider**,选择 **OpenAI**、**DeepSeek**、**Google Gemini** 或 **Kimi**。
2. 使用 Kimi 时先显式选择 **China** 或 **Global**。输入 API Key,点击 **Load models**,选择模型,再点击 **Save changes**。
3. 点击 **Test connection**,使用已保存配置发送最小请求。
4. 回到 **Home** 查看 Provider 摘要,再到 **Test Runner** 选择 Workspace、平台和目标,显式启动 Explore。
4. 在 **Quick Test** 中回到目标表单并显式开始测试。在 **FSQ Case Manager** 中回到 **Home** 查看 Provider 摘要,再到 **Test Runner** 选择 Workspace、平台和目标,显式启动 Explore。

OpenAI 固定使用 `https://api.openai.com/v1/` 和 Responses API,不支持自定义端点。模型列表仅展示 GPT 主版本 5 或更高的通用模型,排除 mini、nano、Codex、embedding、audio、realtime、image、search、transcription、TTS 等变体。空列表不能保存;修改 Key 后必须重新加载并选择模型。Azure 则需要资源端点、**deployment name(部署名,不一定是 OpenAI model id)** 和 API Key。

Expand Down Expand Up @@ -195,6 +195,16 @@ fsq ui

安装后的前端默认在本地 `127.0.0.1:8879` 提供服务。

选择 **Quick Test**,无需手动设置 Workspace 即可进行探索测试。先在 **Settings** 配置共享 Provider,选择平台及适用的设备或浏览器,再描述应用或搜索对象、操作和预期结果。Web 既支持提供网址,例如 `打开 https://example.com,确认页面标题为 Example Domain`,也支持不提供网址的明确搜索目标,例如 `搜索 FSQ github,并且帮我找到 FSQ 的官网地址`。

无网址的 Web 搜索复用现有空白页启动和 Agent 导航,不增加搜索引擎设置,也不沿用上一次测试的网站。Agent 按目标搜索并查看页面;用户提供的畸形或不支持的导航地址仍会报错,不会转成搜索来绕过校验。此类搜索必须有实际浏览器操作及可用的 HTTP(S) 页面观察证据,才能判定成功;仅凭模型回答或只启动空白浏览器不够。页面或链接证据仍需支持请求的结果,包括“所发现网址是官网”的判断。

**Start Quick Test** 会在 `~/.fsq/quick-test/` 准备专用注册 Workspace,只有输入、具体目标和运行环境检查全部通过才进入探索。所有 Quick Test 共用此 Workspace,每次运行冻结自己的目标。模型可根据应用名称推理 package ID、bundle ID 或可执行文件路径;也可在同一个 prompt 中直接写明这些标识。FSQ 通过所选平台验证解析出的标识,不要求额外取得本地化应用名称映射。它不会穷举排除所有同名应用,目标存在且可运行也不等于模型已正确理解你的意图。意图不足或不明确、具体目标查询零匹配或多匹配、发现或模型调用失败均直接终止,不补问、不自动重试。请自行修改 prompt 或修复环境后显式重新开始。

结果复用现有时间线和证据视图。**Open report** 打开持久报告,**New test** 回到目标输入。Quick Test 不提供保存 Case 或 Strict Replay。离开或刷新页面不会取消服务端活动任务;同一个本地服务仍在运行时,返回页面可恢复活动 Quick Test。重启服务不会续跑。

选择 **FSQ Case Manager**,使用本指南其他部分介绍的完整 Workspace、Case、历史和严格回放工作流。专用 Quick Test Workspace 也会显示在其中。现有 Run 报告链接仍直接打开对应报告。

## 下一步

- 阅读[平台前置条件](platform-prerequisites.md)。
Expand Down
Loading
Loading