Skip to content

Program-side EXEC CICS WEB / INVOKE SERVICE / TRANSFORM (#3512) - #3561

Merged
squid-protocol merged 3 commits into
mainfrom
feat/cics-web-commands-3512
Sep 25, 2026
Merged

squid-protocol merged 3 commits into
mainfrom
feat/cics-web-commands-3512

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Engine (core/cics_resources.py): three new kinds in the one cics_resource_data
table, verb = the command's first two words:

WEB WEB OPEN / CONVERSE / SEND / RECEIVE / CLOSE, WEB READ / WRITE
HTTPHEADER; name the URIMAP, else HOST (OPEN) or PATH, or the header;
qualifier CLIENT (OPEN / CONVERSE / CLOSE or SESSTOKEN coded) or
SERVER -- a SERVER SEND / RECEIVE is a hand-written HTTP provider
SERVICE INVOKE SERVICE / WEBSERVICE; name the service, qualifier the CHANNEL
TRANSFORM DATATOXML / XMLTODATA / DATATOJSON / JSONTODATA; name the
XMLTRANSFORM / JSONTRANSFRM, qualifier the CHANNEL

WEB EXTRACT / PARSE / browse and READ FORMFIELD / QUERYPARM name nothing: no row.

Reader: GalaxyIR.api_surface() gains invocations (each INVOKE joined to the
requester step whose WSBIND file is named after the service, and to a CSD
WEBSERVICE of that name), invoked_by on every service, and http (per
program and side: command count and resolved endpoints).

Proof: zECS (the pinned hand-written HTTP key/value service) carries 30 WEB
commands. The answer key's independent reader drafts the same 61 rows the engine
emits; a blind re-census of the whole resources suite (7 files, 80 facts incl.
HLASM tasks/UOW) agreed on all but three WEB CONVERSE record clauses -- the brief
said "the first of INTO / FROM / SET", meant as precedence, read as source order;
ruled key_correct, and the brief now states the precedence. CICS resources stays
cross_verified on zECS, 31 -> 61 facts. No public corpus found codes INVOKE or
TRANSFORM (the whole data pool was searched), so those are unit-tested only.

Golden masters: only CICS Resources rows added (WEB rows for 3 zECS and 4
Z-SMS-Gateway programs). zECS completeness pin: ECS001 ("Sample CICS program
initiated via a terminal") issues only WEB commands, so it read as a batch
program; it is now a CICS program whose transaction the repo does not define
(transactions 9/9 -> 9/10, batch entry 0/1 -> 0/0).

Closes #3512

Verification

  • tests/core_engine/test_cics_resources.py (+6: provider, client session, no-row commands, INVOKE, TRANSFORM, PL/I); test_galaxy_ir invoke/requester/CSD/http join.
  • Ledger clean; refraction --ci OK (6 corpora); golden masters PASS both legs; ruff/mypy audits clean; full suite 11424 passed (the one failure, the zECS completeness pin, is updated above and re-run green).

🤖 Generated with Claude Code

https://claude.ai/code/session_017ZsVaAkb86P5r5JXDC2Y9g

…rce rows (#3512)

Engine (core/cics_resources.py): three new kinds in the one cics_resource_data
table, verb = the command's first two words:

  WEB        WEB OPEN / CONVERSE / SEND / RECEIVE / CLOSE, WEB READ / WRITE
             HTTPHEADER; name the URIMAP, else HOST (OPEN) or PATH, or the header;
             qualifier CLIENT (OPEN / CONVERSE / CLOSE or SESSTOKEN coded) or
             SERVER -- a SERVER SEND / RECEIVE is a hand-written HTTP provider
  SERVICE    INVOKE SERVICE / WEBSERVICE; name the service, qualifier the CHANNEL
  TRANSFORM  DATATOXML / XMLTODATA / DATATOJSON / JSONTODATA; name the
             XMLTRANSFORM / JSONTRANSFRM, qualifier the CHANNEL

WEB EXTRACT / PARSE / browse and READ FORMFIELD / QUERYPARM name nothing: no row.

Reader: GalaxyIR.api_surface() gains `invocations` (each INVOKE joined to the
requester step whose WSBIND file is named after the service, and to a CSD
WEBSERVICE of that name), `invoked_by` on every service, and `http` (per
program and side: command count and resolved endpoints).

Proof: zECS (the pinned hand-written HTTP key/value service) carries 30 WEB
commands. The answer key's independent reader drafts the same 61 rows the engine
emits; a blind re-census of the whole resources suite (7 files, 80 facts incl.
HLASM tasks/UOW) agreed on all but three WEB CONVERSE record clauses -- the brief
said "the first of INTO / FROM / SET", meant as precedence, read as source order;
ruled key_correct, and the brief now states the precedence. CICS resources stays
cross_verified on zECS, 31 -> 61 facts. No public corpus found codes INVOKE or
TRANSFORM (the whole data pool was searched), so those are unit-tested only.

Golden masters: only CICS Resources rows added (WEB rows for 3 zECS and 4
Z-SMS-Gateway programs). zECS completeness pin: ECS001 ("Sample CICS program
initiated via a terminal") issues only WEB commands, so it read as a batch
program; it is now a CICS program whose transaction the repo does not define
(transactions 9/9 -> 9/10, batch entry 0/1 -> 0/0).

Closes #3512

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017ZsVaAkb86P5r5JXDC2Y9g
@github-actions

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

squid-protocol and others added 2 commits September 24, 2026 21:43
#3549's golden section 7 recorded the crucible's completeness before WEB
commands drew rows. With them, the crucible's WEB-only programs (zECS ECS001,
Z-SMS-Gateway) read as CICS programs, not batch: batch entry 289 -> 285,
transactions 180 -> 185 (158 reached), score 61.4% -> 61.3%. Section 7 only,
identical on both legs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017ZsVaAkb86P5r5JXDC2Y9g
@squid-protocol
squid-protocol merged commit d5d6e26 into main Sep 25, 2026
31 checks passed
@squid-protocol
squid-protocol deleted the feat/cics-web-commands-3512 branch September 25, 2026 10:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CICS coverage: program-side EXEC CICS WEB / INVOKE SERVICE / TRANSFORM

1 participant