Commit Graph

125 Commits

Author SHA1 Message Date
Peter Steinberger 3378e07d50 refactor(plugin-sdk): promote shared runtime primitives (#126193)
* refactor(plugin-sdk): promote shared runtime primitives

* test(codex): keep one attempt tools owner
2026-08-19 01:10:18 -07:00
Peter Steinberger cad77fb39c refactor: consolidate remaining coercion helpers (#122020) 2026-08-11 10:22:01 -07:00
Peter Steinberger b4a26783f7 refactor(test): consolidate duplicated requireRecord and provider HTTP mock helpers (#119982)
* refactor(test): consolidate duplicated test helpers

* test: remove stale record guard import

* fix(test): remove orphaned record guards

* refactor(test): keep record requirement messages exhaustively typed

* fix(test): keep packages/ai record guard package-local
2026-08-06 14:48:01 -07:00
Peter Steinberger 08b9c4c3e1 refactor(lobster): consolidate embedded workflow execution (#119630) 2026-08-05 07:22:43 -07:00
Peter Steinberger e798a76662 refactor(schemas): use TypeBox native enums 2026-07-14 04:25:58 -07:00
Peter Steinberger 76834210f8 fix(lobster): restore literal dep reference for runtime contract
70ab6b324d dropped the last literal "@clawdbot/lobster" mention from the
runner while keeping the join-built dynamic import, so the unused-direct-
dependency contract started failing on main. Document the join trick with
the literal package path so the contract sees the dependency again.
2026-07-13 14:55:36 -07:00
Peter Steinberger 70ab6b324d refactor(lobster): use canonical core export 2026-07-13 14:39:18 -07:00
Peter Steinberger 477499c9c0 refactor(lobster): drop stale Ajv cache shim (#106179) 2026-07-13 01:31:16 -07:00
Peter Steinberger 774d5249cc test: eliminate unchecked TypeScript casts (#105804) 2026-07-12 18:08:26 -07:00
LiLan0125 8cb9263692 fix(lobster): keep ordinary run/resume on default flow fields (#102036)
* fix(lobster): keep default flow fields on runner path

* fix(lobster): reject incomplete managed resume revisions

* fix(lobster): preserve explicit empty managed flow state

* fix(lobster): preserve cross-mode validation

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-07 23:04:01 -07:00
Dallin Romney bfffa950d7 refactor(plugin-sdk): consolidate tool result helpers (#99740)
* refactor(plugin-sdk): consolidate tool result helpers

* docs(plugin-sdk): tighten tool result guidance

* refactor(feishu): use tool results directly
2026-07-04 16:50:44 -07:00
openclaw-clownfish[bot] c5db07eddc fix(lobster): surface workflow path errors
Surface missing bare Lobster workflow file paths instead of silently falling through to inline pipeline parsing.

The runner now treats plain workflow file inputs as file paths, keeps inline commands with file-like arguments as pipelines, and preserves existing workflow file paths that contain spaces. Regression coverage covers missing bare workflow paths, inline false positives, and spaced workflow filenames.

Fixes #68101.

Based on and credits #68106 by @vvitovec. This replacement branch carries the focused fix forward because #68106 is dirty against current main and could not be repaired on the fork branch with available bot permissions.

Validation:
- node scripts/run-vitest.mjs extensions/lobster/src/lobster-runner.test.ts
- autoreview clean: no accepted/actionable findings after the spaced-path fix
- GitHub checks: 127 pass, 0 fail, 0 pending

Co-authored-by: Viktor Vítovec <230458341+vvitovec@users.noreply.github.com>
2026-06-14 12:18:33 +08:00
Peter Steinberger 4fa5092cdc docs: document small extension sources 2026-06-04 21:02:07 -04:00
Peter Steinberger 27dde7a4d6 chore(lint): enable stricter error rules 2026-06-01 01:12:21 +01:00
Feelw00 01193dea26 fix: make task persistence failures explicit
Preserve task and TaskFlow durability by persisting before in-memory registry mutation and surfacing explicit persistence failures instead of reporting fake success.

Adds non-throwing try-create runtime helpers while keeping existing throwing public create APIs compatible. Maintainer follow-up keeps task/TaskFlow sync repair bounded, prevents split task/delivery-state writes, and keeps CI green on the current base.

Thanks @Feelw00.
2026-06-01 00:12:28 +01:00
Peter Steinberger 3aae25358e fix: validate lobster numeric options 2026-05-28 21:06:23 -04:00
Peter Steinberger 3548cff14b refactor: migrate validators to TypeBox (#86639)
* refactor: migrate validators to typebox

* fix: preserve json schema resource refs

* chore: clean schema preflight recursion

* refactor: remove lobster ajv shim

* fix: support schema array refs

* fix: validate schema dependencies

* fix: preserve schema contract checks

* fix: support same-document schema refs

* fix: preserve untyped map defaults

* fix: preserve schema default semantics

* test: avoid thenable schema literals

* test: build conditional schema key

* fix: defer resource id refs to typebox

* fix: reject invalid schema enum metadata

* fix: preserve default branch semantics

* fix: resolve schema resource refs

* fix: narrow conditional default fallback

* fix: preserve uri format validation

* fix: preserve validator compatibility

* test: avoid ajv cache lint violation

* fix: preserve typebox validation diagnostics

* fix: validate defaulted conditional schemas

* fix: normalize mcp draft schemas

* fix: preserve tuple schema defaults

* fix: resolve relative schema refs

* fix: scope typebox format semantics

* fix: align conditional format defaults

* fix: decode schema pointer refs

* fix: filter grouped secretref diagnostics

* fix: preserve default conditional compatibility

* fix: preserve nullable schema compatibility

* fix: settle defaults before conditionals

* fix: preserve default validation invariants

* fix: validate dynamic schema refs

* fix: reject malformed nullable schemas
2026-05-26 08:45:28 +01:00
Peter Steinberger 4f4d108639 chore(lint): remove underscore-dangle allow list (#83542)
* chore(lint): reduce underscore-dangle exceptions

* chore(lint): reduce more underscore exceptions

* chore(lint): remove underscore-dangle allow list

* fix(lint): repair underscore cleanup regressions

* test(lint): track version define suppression
2026-05-18 14:56:06 +01:00
Peter Steinberger 9e2a30c353 test: tighten lobster tool assertions 2026-05-09 20:37:57 +01:00
Peter Steinberger 425c4ff9ea test: tighten lobster runner assertions 2026-05-09 20:36:07 +01:00
Peter Steinberger 9ef37d1907 test: tighten assertions and harness coverage 2026-05-08 05:28:12 +01:00
Peter Steinberger 1ef85c7d4c test: make suites safe without isolation (#78834)
* test: make suites safe without isolation

* fix: narrow auth profile credential types

* test: inject channel module loader factory locally
2026-05-07 08:43:29 +01:00
Peter Steinberger 4981ec7061 refactor: trim lobster helper exports 2026-05-01 20:16:48 +01:00
Peter Steinberger 15649228d4 refactor: trim extension helper shims 2026-05-01 14:39:03 +01:00
Peter Steinberger e26357fee8 refactor: prune stale extension types 2026-05-01 10:34:04 +01:00
Peter Steinberger b60eb1711a refactor(plugin-sdk): add managed task flow runtime 2026-04-28 05:32:40 +01:00
Peter Steinberger f34b41f198 refactor: split plugin sdk test helpers 2026-04-28 01:14:19 +01:00
Peter Steinberger 90b6665ded refactor: move plugin api test helper to sdk 2026-04-28 00:24:54 +01:00
Peter Steinberger 110fa97f2a fix: repair release validation follow-up checks 2026-04-27 02:09:40 +01:00
Vincent Koc 67d00826b2 fix(gateway): bound Lobster Ajv schema compilation 2026-04-26 17:57:59 -07:00
Peter Steinberger 1de4aff06d fix: cover Windows pnpm and Lobster install regressions 2026-04-26 08:14:28 +01:00
Peter Steinberger b2472d6560 build: migrate schema deps to typebox 2026-04-23 04:59:42 +01:00
Peter Steinberger 1a3bde17a6 fix: support Lobster approvalId TaskFlow resumes (#69559) 2026-04-21 05:32:13 +01:00
kirkluokun 905da8bd6b fix(lobster): forward approvalId alongside resumeToken in tool envelope
@clawdbot/lobster/core returns both resumeToken and approvalId when a
workflow step needs approval, but the lobster plugin was dropping
approvalId in three places: normalizeEnvelope, the tool schema, and the
embedded-runner resume branch.

Agents forced to round-trip the ~155-byte base64url resumeToken across
tool calls are one stray truncation away from "Invalid token". The
8-hex approvalId is a disk-indexed alias (~/.lobster/state/approval_*
.json) — stable and escape-safe.

Changes are additive: token-based resume keeps working unchanged,
callers just gain an approvalId path.
2026-04-21 05:32:13 +01:00
Peter Steinberger 66385670e4 refactor: reduce unnecessary dynamic imports 2026-04-18 16:15:33 +01:00
Mariano 1490e2b1d3 Lobster: import published core runtime (#64755)
* Lobster: import published core runtime

* Changelog: add Lobster core runtime note

* Lobster: type embedded core runtime

* Lobster: keep package-boundary tsconfig narrow
2026-04-13 20:38:46 +02:00
Peter Steinberger 95e397a266 refactor: dedupe repeated test helpers 2026-04-08 09:58:22 +01:00
Peter Steinberger b6970865b6 refactor: dedupe path lowercase helpers 2026-04-07 22:57:52 +01:00
Peter Steinberger 09c6528bc7 test: speed up provider tool tests 2026-04-07 14:15:42 +01:00
Peter Steinberger 54cd8ed25b refactor: dedupe extension error formatting 2026-04-07 05:06:54 +01:00
Peter Steinberger 3700f3a22c refactor: dedupe lobster managed flow tool handling 2026-04-06 22:21:01 +01:00
Vincent Koc 87bcfe796f fix(check): tighten lobster and webhook mutation types 2026-04-06 21:03:50 +01:00
Peter Steinberger f2bbf2b8e7 refactor: dedupe lobster runtime helpers 2026-04-06 20:45:31 +01:00
Peter Steinberger 95df6d9332 refactor: dedupe lobster managed flow formatting 2026-04-06 20:45:31 +01:00
Vincent Koc 6067f2d9ad chore(plugins): drop dead channel test any suppressions 2026-04-06 15:45:18 +01:00
Peter Steinberger af62a2c2e4 style: fix extension lint violations 2026-04-06 14:53:55 +01:00
Mariano b167df78aa Lobster: harden embedded runtime integration (#61566)
Merged via squash.

Prepared head SHA: a6f48309fd
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-04-06 03:52:24 +02:00
Peter Steinberger 0affaf15ac refactor: narrow bundled channel entry surfaces 2026-04-06 01:26:02 +01:00
Peter Steinberger 4cf9d5ff90 fix: restore green checks 2026-04-06 01:10:16 +01:00
Peter Steinberger fdc2f421e4 fix: restore pnpm check type safety 2026-04-06 01:04:34 +01:00