Repository navigation
Integrate CLI quote, configuration and webhook source changes - #58
Merged
Merged
Conversation
The guide and jobs docs said what job create returns but not how a sender uses signing_secret: the X-OpenProse-Delivery header and HMAC-SHA256 over deliveryId + "\n" + rawBody. Add both with an openssl + curl recipe and the response codes, and correct endpointUrl to endpoint_url in the guide and schemas README. Regenerate the pinned guide cases. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…p-098-packaged-sdk # Conflicts: # cli/protocol/OWNERSHIP.md
# Conflicts: # cli/protocol/OWNERSHIP.md
…ckaged-sdk # Conflicts: # cli/protocol/OWNERSHIP.md # cli/rust/crates/prose-cli/src/main.rs
…ckaged-sdk # Conflicts: # cli/bun/test/cli.test.ts
# Conflicts: # cli/protocol/OWNERSHIP.md
GET /triggers keeps max_triggers as the legacy free ceiling and reports
the account's limit in trigger_limit: limited with max, unlimited, or
unavailable. job list and service triage showed max_triggers, so a paid
account read "Jobs: N of 5 allowed", and job_limit copied a key the
service never sends. job_limit now mirrors trigger_limit ({kind, max?});
max_jobs and triage jobs.max are the account's max when limited and null
otherwise; triage gains jobs.limit; the human line says "of M allowed",
"(unlimited)" or "(limit unavailable; try again)". An unknown kind reads
as unavailable, and an older service without trigger_limit reads as
limited at max_triggers.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add cases for a webhook spec whose binding keys fail the local schema check and for binding keys without program_ref, where the service's 400 passes through. The job create plan's quote now sends job_type (the spec's type), so a service that reads it prices the model a job of that type runs on when the spec names none; docs note the difference on a service that does not. Tidy remaining hold wording in case descriptions, the run quote synopsis and the changelog. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The service now prices a program itself: GET /run/quote?program_ref= for a saved program and POST /run/quote with the POST /run body. The run submit plan posts its exact submission body; run quote FILE posts the program and run quote --from names it (resolved and checked as run submit does); the job create plan names its pinned program_ref. Explicit options still override the program's own settings, and the CLI still never inspects program text. run quote reports the service's basis (each input with its source), and program_not_found maps to SERVICE_RESOURCE_NOT_FOUND. sync_service_interactions.py accepts the service's public interaction projection (interactions/2, no principals table); the catalog is re-vendored from it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The service reports basis.model.source job_default when a job's type picks the model; run quote passes it through. The job create plan's quote keeps job_type next to program_ref. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
job contract attach gains --model, --reasoning-effort, --repo, --commit-output, --input, --inputs-file, --environment, --file, --clear-repo, --clear-commit-output, --clear-input, --clear-files and --replace for webhook jobs; other job types refuse them after the job is read. Re-attaching a bound program changes only the options given: on a service that reports each binding's environment it re-binds the same reference with just the changed fields (null clears); on an older service it merges the saved settings and warns that stored files and environment may be dropped. --replace onto another revision is a full replace that carries the saved settings and environment (stored files must be given again with --file); --replace onto a program that is already bound is refused. The attach plan quotes the hold for the binding as it will run, with the job's type. job contract list reports each binding's saved settings, effective model, revision and bind time. Interrupts during a plan's advisory quote now stop the command. run quote's help is reworded briefly to keep the published manifest within its size budget, and the contracts response schema names program_ref. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Address a second review of job contract attach. The job is always read first: another job type, and a plain re-attach of a bound webhook program, send only program_ref. On a service that does not report stored files and environment, re-binding a bound webhook program is refused unless the files and environment are given or --allow-reset accepts the reset; --replace needs --file, --clear-files or --allow-reset when the old binding has stored files. The stderr notes and the live hint are gone in favour of these refusals. --commit-output takes OWNER/NAME (the service picks the branch), a new --repo no longer drops a saved commit output silently, --repo naming the saved repository keeps its branch, and --file names follow the names the service stores. The published manifest size budget is raised to 106,496 bytes for the new options. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add shared cases for the --file count limit, non-UTF-8 file content, the service's 409 for a --replace target that is already bound, and a service refusal to change a live binding. A bound program on a merging service now gets a bare program_ref when no setting changes (only --allow-reset or a same-ref --replace), the webhook-only refusal names --allow-reset, both ports check --commit-output against --repo before reading files, and the --allow-reset help mentions --replace. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
model list printed an "Also accepted (not recommended)" section and kept hidden entries in result.catalog. Hidden models are accepted but not shown in any interface, so the listing now skips them like deprecated models. Acceptance is unchanged: a named hidden model still passes the local --model check and reaches the service. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t-url' into codex/imp-110-cli-integration
…codex/imp-110-cli-integration # Conflicts: # cli/conformance/cases/service/framework/service-guide-human.json
…' into codex/imp-110-cli-integration
…odex/imp-110-cli-integration # Conflicts: # cli/conformance/cases/service/framework/service-guide-human.json
… codex/imp-110-cli-integration
…codex/imp-110-cli-integration # Conflicts: # cli/CHANGELOG.md
… codex/imp-110-cli-integration # Conflicts: # cli/CHANGELOG.md # cli/rust/crates/prose-runner-core/src/service/jobs.rs
…ex/imp-110-cli-integration # Conflicts: # cli/CHANGELOG.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Integrate the pending CLI source stack (#49 and #51–#57): webhook documentation, parameterized/program-aware holds, persistent user configuration, packaged SDK defaults, entitlement-based job limits, webhook contract settings and hidden-model filtering. Preserve both Bun and Rust implementations and their shared public contracts.
Resolve shared guide fixtures by regenerating them from the combined guide; retain both entitlement and contract-settings Rust checks and all changelog entries.
Validation: combined service-help generation check and whitespace checks pass. Pinned-toolchain provider-free admission passed the completed Rust, Bun, architecture, shared-contract and generation gates; the remaining run was stopped at the founder’s explicit request to skip CI waits and prepare a clean overnight workspace. Full combined admission is not claimed. No provider calls, release publication or hosted-service mutation is included.