Module: Igniter::Extensions::Contracts
- Defined in:
- lib/igniter/extensions/contracts.rb,
lib/igniter/extensions/contracts/mcp_pack.rb,
lib/igniter/extensions/contracts/saga_pack.rb,
lib/igniter/extensions/contracts/audit_pack.rb,
lib/igniter/extensions/contracts/debug_pack.rb,
lib/igniter/extensions/contracts/audit/event.rb,
lib/igniter/extensions/contracts/branch_pack.rb,
lib/igniter/extensions/contracts/lookup_pack.rb,
lib/igniter/extensions/contracts/saga/result.rb,
lib/igniter/extensions/contracts/saga/runner.rb,
lib/igniter/extensions/contracts/compose_pack.rb,
lib/igniter/extensions/contracts/creator_pack.rb,
lib/igniter/extensions/contracts/debug/report.rb,
lib/igniter/extensions/contracts/journal_pack.rb,
lib/igniter/extensions/contracts/audit/builder.rb,
lib/igniter/extensions/contracts/commerce_pack.rb,
lib/igniter/extensions/contracts/creator/scope.rb,
lib/igniter/extensions/contracts/dataflow/diff.rb,
lib/igniter/extensions/contracts/dataflow_pack.rb,
lib/igniter/extensions/contracts/reactive/plan.rb,
lib/igniter/extensions/contracts/reactive_pack.rb,
lib/igniter/extensions/contracts/aggregate_pack.rb,
lib/igniter/extensions/contracts/audit/snapshot.rb,
lib/igniter/extensions/contracts/creator/report.rb,
lib/igniter/extensions/contracts/creator/wizard.rb,
lib/igniter/extensions/contracts/creator/writer.rb,
lib/igniter/extensions/contracts/reactive/event.rb,
lib/igniter/extensions/contracts/saga/formatter.rb,
lib/igniter/extensions/contracts/collection_pack.rb,
lib/igniter/extensions/contracts/creator/profile.rb,
lib/igniter/extensions/contracts/dataflow/result.rb,
lib/igniter/extensions/contracts/invariants_pack.rb,
lib/igniter/extensions/contracts/mcp/tool_result.rb,
lib/igniter/extensions/contracts/provenance_pack.rb,
lib/igniter/extensions/contracts/reactive/engine.rb,
lib/igniter/extensions/contracts/creator/scaffold.rb,
lib/igniter/extensions/contracts/creator/workflow.rb,
lib/igniter/extensions/contracts/dataflow/builder.rb,
lib/igniter/extensions/contracts/dataflow/session.rb,
lib/igniter/extensions/contracts/debug/pack_audit.rb,
lib/igniter/extensions/contracts/incremental_pack.rb,
lib/igniter/extensions/contracts/invariants/error.rb,
lib/igniter/extensions/contracts/invariants/suite.rb,
lib/igniter/extensions/contracts/reactive/builder.rb,
lib/igniter/extensions/contracts/reactive/matcher.rb,
lib/igniter/extensions/contracts/capabilities_pack.rb,
lib/igniter/extensions/contracts/differential_pack.rb,
lib/igniter/extensions/contracts/invariants/report.rb,
lib/igniter/extensions/contracts/mcp/tool_argument.rb,
lib/igniter/extensions/contracts/saga/compensation.rb,
lib/igniter/extensions/contracts/capabilities/error.rb,
lib/igniter/extensions/contracts/creator/write_step.rb,
lib/igniter/extensions/contracts/incremental/result.rb,
lib/igniter/extensions/contracts/invariants/builder.rb,
lib/igniter/extensions/contracts/provenance/builder.rb,
lib/igniter/extensions/contracts/provenance/lineage.rb,
lib/igniter/extensions/contracts/capabilities/policy.rb,
lib/igniter/extensions/contracts/capabilities/report.rb,
lib/igniter/extensions/contracts/debug/pack_snapshot.rb,
lib/igniter/extensions/contracts/differential/report.rb,
lib/igniter/extensions/contracts/differential/runner.rb,
lib/igniter/extensions/contracts/incremental/session.rb,
lib/igniter/extensions/contracts/language/scale_pack.rb,
lib/igniter/extensions/contracts/mcp/creator_session.rb,
lib/igniter/extensions/contracts/mcp/tool_definition.rb,
lib/igniter/extensions/contracts/creator/write_result.rb,
lib/igniter/extensions/contracts/dataflow/item_result.rb,
lib/igniter/extensions/contracts/invariants/invariant.rb,
lib/igniter/extensions/contracts/invariants/violation.rb,
lib/igniter/extensions/contracts/creator/workflow_step.rb,
lib/igniter/extensions/contracts/execution_report_pack.rb,
lib/igniter/extensions/contracts/incremental/formatter.rb,
lib/igniter/extensions/contracts/language/formula_pack.rb,
lib/igniter/extensions/contracts/provenance/node_trace.rb,
lib/igniter/extensions/contracts/reactive/subscription.rb,
lib/igniter/extensions/contracts/saga/compensation_set.rb,
lib/igniter/extensions/contracts/capabilities/violation.rb,
lib/igniter/extensions/contracts/dataflow/window_filter.rb,
lib/igniter/extensions/contracts/debug/profile_snapshot.rb,
lib/igniter/extensions/contracts/differential/formatter.rb,
lib/igniter/extensions/contracts/incremental/node_state.rb,
lib/igniter/extensions/contracts/content_addressing_pack.rb,
lib/igniter/extensions/contracts/differential/divergence.rb,
lib/igniter/extensions/contracts/invariants/cases_report.rb,
lib/igniter/extensions/contracts/language/piecewise_pack.rb,
lib/igniter/extensions/contracts/capabilities/declaration.rb,
lib/igniter/extensions/contracts/content_addressing/cache.rb,
lib/igniter/extensions/contracts/dataflow/aggregate_state.rb,
lib/igniter/extensions/contracts/reactive/dispatch_result.rb,
lib/igniter/extensions/contracts/saga/compensation_record.rb,
lib/igniter/extensions/contracts/provenance/text_formatter.rb,
lib/igniter/extensions/contracts/dataflow/collection_result.rb,
lib/igniter/extensions/contracts/dataflow/aggregate_operators.rb,
lib/igniter/extensions/contracts/content_addressing/content_key.rb,
lib/igniter/extensions/contracts/content_addressing/declaration.rb
Defined Under Namespace
Modules: AggregatePack, Audit, AuditPack, BranchPack, Capabilities, CapabilitiesPack, CollectionPack, CommercePack, ComposePack, ContentAddressing, ContentAddressingPack, Creator, CreatorPack, Dataflow, DataflowPack, Debug, DebugPack, Differential, DifferentialPack, ExecutionReportPack, Incremental, IncrementalPack, Invariants, InvariantsPack, JournalPack, Language, LookupPack, Mcp, McpPack, Provenance, ProvenancePack, Reactive, ReactivePack, Saga, SagaPack
Constant Summary
collapse
- DEFAULT_PACKS =
[
ExecutionReportPack,
LookupPack
].freeze
- AVAILABLE_PACKS =
(
DEFAULT_PACKS +
[AggregatePack, AuditPack, BranchPack, CapabilitiesPack, CollectionPack, CommercePack, ComposePack,
ContentAddressingPack, CreatorPack, DataflowPack, DebugPack, DifferentialPack, IncrementalPack,
InvariantsPack, JournalPack, Language::FormulaPack, Language::PiecewisePack, Language::ScalePack,
McpPack, ProvenancePack, ReactivePack, SagaPack]
).freeze
- PRESETS =
{
default: DEFAULT_PACKS,
commerce: [ExecutionReportPack, CommercePack]
}.freeze
Class Method Summary
collapse
-
.audit_pack(pack, target = nil) ⇒ Object
-
.audit_report(environment, inputs: nil, compiled_graph: nil, &block) ⇒ Object
-
.audit_snapshot(result) ⇒ Object
-
.available_packs ⇒ Object
-
.build_compensations(&block) ⇒ Object
-
.build_dataflow_session(environment, source:, key:, window: nil, context: [], &block) ⇒ Object
-
.build_incremental_session(environment, compiled_graph: nil, &block) ⇒ Object
-
.build_invariants(&block) ⇒ Object
-
.build_preset_profile(name) ⇒ Object
-
.build_profile(*packs) ⇒ Object
-
.build_reactions(&block) ⇒ Object
-
.capabilities_for(compiled_graph, node_name) ⇒ Object
-
.capability_policy(denied: [], required: [], on_undeclared: :ignore) ⇒ Object
-
.capability_report(compiled_graph, profile: nil, policy: nil) ⇒ Object
-
.check_capabilities!(compiled_graph, policy:, profile: nil) ⇒ Object
-
.check_invariants(target, invariants:) ⇒ Object
-
.compare_differential(inputs:, primary_environment: nil, primary_compiled_graph: nil, primary_result: nil, candidate_environment: nil, candidate_compiled_graph: nil, candidate_result: nil, tolerance: nil, primary_name: "primary", candidate_name: "candidate") ⇒ Object
-
.content_addressed(callable: nil, fingerprint: nil, capabilities: [:pure], cache: ContentAddressingPack.cache, &block) ⇒ Object
-
.content_cache ⇒ Object
-
.content_key(inputs:, fingerprint: nil, callable: nil) ⇒ Object
-
.creator_profiles ⇒ Object
-
.creator_report(name:, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil, scope: :monorepo_package, pack: nil, target: nil) ⇒ Object
-
.creator_scopes ⇒ Object
-
.creator_wizard(name: nil, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil, scope: nil, root: nil, mode: :skip_existing, pack: nil, target: nil) ⇒ Object
-
.creator_workflow(name:, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil, scope: :monorepo_package, pack: nil, target: nil) ⇒ Object
-
.creator_writer(name:, root:, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil, scope: :monorepo_package, pack: nil, target: nil, mode: :skip_existing) ⇒ Object
-
.debug_pack(pack_or_name, target) ⇒ Object
-
.debug_profile(target) ⇒ Object
-
.debug_report(environment, inputs: nil, compiled_graph: nil, &block) ⇒ Object
-
.debug_snapshot(result, profile:) ⇒ Object
-
.declare_capabilities(*capabilities, callable: nil, &block) ⇒ Object
-
.default_packs ⇒ Object
-
.dispatch_reactive(target, reactions:) ⇒ Object
-
.explain(result, output_name) ⇒ Object
-
.lineage(result, output_name) ⇒ Object
-
.mcp_call(tool_name, target: nil, **arguments, &block) ⇒ Object
-
.mcp_creator_session(target: nil, **arguments) ⇒ Object
-
.mcp_tools ⇒ Object
-
.packs_for(name) ⇒ Object
-
.presets ⇒ Object
-
.profile_capabilities(profile_or_environment) ⇒ Object
-
.pure_callable(callable: nil, &block) ⇒ Object
-
.pure_content_callable(callable: nil, fingerprint: nil, cache: ContentAddressingPack.cache, &block) ⇒ Object
-
.required_capabilities(compiled_graph) ⇒ Object
-
.reset_content_cache! ⇒ Object
-
.run_incremental_reactive(session, inputs:, reactions:) ⇒ Object
-
.run_invariants(environment, inputs:, invariants:, compiled_graph: nil, &block) ⇒ Object
-
.run_reactive(environment, inputs:, reactions:, compiled_graph: nil, &block) ⇒ Object
-
.run_saga(environment, inputs:, compensations:, compiled_graph: nil, &block) ⇒ Object
-
.scaffold_pack(name:, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil, scope: :monorepo_package) ⇒ Object
-
.shadow_differential(**arguments) ⇒ Object
-
.validate_invariants!(target, invariants:) ⇒ Object
-
.verify_invariant_cases(environment, cases:, invariants:, compiled_graph: nil, &block) ⇒ Object
-
.with(*packs) ⇒ Object
-
.with_preset(name) ⇒ Object
-
.write_pack_scaffold(name:, root:, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil, scope: :monorepo_package, pack: nil, target: nil, mode: :skip_existing) ⇒ Object
Class Method Details
.audit_pack(pack, target = nil) ⇒ Object
268
269
270
271
272
273
274
275
276
277
278
|
# File 'lib/igniter/extensions/contracts.rb', line 268
def audit_pack(pack, target = nil)
profile =
case target
when nil
nil
else
target.respond_to?(:profile) ? target.profile : target
end
DebugPack.audit(pack, profile: profile)
end
|
.audit_report(environment, inputs: nil, compiled_graph: nil, &block) ⇒ Object
156
157
158
|
# File 'lib/igniter/extensions/contracts.rb', line 156
def audit_report(environment, inputs: nil, compiled_graph: nil, &block)
AuditPack.report(environment, inputs: inputs, compiled_graph: compiled_graph, &block)
end
|
.audit_snapshot(result) ⇒ Object
152
153
154
|
# File 'lib/igniter/extensions/contracts.rb', line 152
def audit_snapshot(result)
AuditPack.snapshot(result)
end
|
.available_packs ⇒ Object
55
56
57
|
# File 'lib/igniter/extensions/contracts.rb', line 55
def available_packs
AVAILABLE_PACKS
end
|
.build_compensations(&block) ⇒ Object
93
94
95
|
# File 'lib/igniter/extensions/contracts.rb', line 93
def build_compensations(&block)
SagaPack.build(&block)
end
|
.build_dataflow_session(environment, source:, key:, window: nil, context: [], &block) ⇒ Object
111
112
113
114
115
116
117
118
119
120
|
# File 'lib/igniter/extensions/contracts.rb', line 111
def build_dataflow_session(environment, source:, key:, window: nil, context: [], &block)
DataflowPack.session(
environment,
source: source,
key: key,
window: window,
context: context,
&block
)
end
|
.build_incremental_session(environment, compiled_graph: nil, &block) ⇒ Object
107
108
109
|
# File 'lib/igniter/extensions/contracts.rb', line 107
def build_incremental_session(environment, compiled_graph: nil, &block)
IncrementalPack.session(environment, compiled_graph: compiled_graph, &block)
end
|
.build_invariants(&block) ⇒ Object
176
177
178
|
# File 'lib/igniter/extensions/contracts.rb', line 176
def build_invariants(&block)
InvariantsPack.build(&block)
end
|
.build_preset_profile(name) ⇒ Object
77
78
79
|
# File 'lib/igniter/extensions/contracts.rb', line 77
def build_preset_profile(name)
build_profile(*packs_for(name))
end
|
.build_profile(*packs) ⇒ Object
69
70
71
|
# File 'lib/igniter/extensions/contracts.rb', line 69
def build_profile(*packs)
Igniter::Contracts.build_profile(*normalize_packs(packs))
end
|
.build_reactions(&block) ⇒ Object
160
161
162
|
# File 'lib/igniter/extensions/contracts.rb', line 160
def build_reactions(&block)
ReactivePack.build(&block)
end
|
.capabilities_for(compiled_graph, node_name) ⇒ Object
214
215
216
|
# File 'lib/igniter/extensions/contracts.rb', line 214
def capabilities_for(compiled_graph, node_name)
CapabilitiesPack.capabilities_for(compiled_graph, node_name)
end
|
.capability_policy(denied: [], required: [], on_undeclared: :ignore) ⇒ Object
206
207
208
|
# File 'lib/igniter/extensions/contracts.rb', line 206
def capability_policy(denied: [], required: [], on_undeclared: :ignore)
CapabilitiesPack.policy(denied: denied, required: required, on_undeclared: on_undeclared)
end
|
.capability_report(compiled_graph, profile: nil, policy: nil) ⇒ Object
223
224
225
|
# File 'lib/igniter/extensions/contracts.rb', line 223
def capability_report(compiled_graph, profile: nil, policy: nil)
CapabilitiesPack.report(compiled_graph, profile: profile, policy: policy)
end
|
.check_capabilities!(compiled_graph, policy:, profile: nil) ⇒ Object
227
228
229
|
# File 'lib/igniter/extensions/contracts.rb', line 227
def check_capabilities!(compiled_graph, policy:, profile: nil)
CapabilitiesPack.check!(compiled_graph, profile: profile, policy: policy)
end
|
.check_invariants(target, invariants:) ⇒ Object
180
181
182
|
# File 'lib/igniter/extensions/contracts.rb', line 180
def check_invariants(target, invariants:)
InvariantsPack.check(target, invariants: invariants)
end
|
.compare_differential(inputs:, primary_environment: nil, primary_compiled_graph: nil, primary_result: nil, candidate_environment: nil, candidate_compiled_graph: nil, candidate_result: nil, tolerance: nil, primary_name: "primary", candidate_name: "candidate") ⇒ Object
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
# File 'lib/igniter/extensions/contracts.rb', line 122
def compare_differential(
inputs:,
primary_environment: nil,
primary_compiled_graph: nil,
primary_result: nil,
candidate_environment: nil,
candidate_compiled_graph: nil,
candidate_result: nil,
tolerance: nil,
primary_name: "primary",
candidate_name: "candidate"
)
DifferentialPack.compare(
inputs: inputs,
primary_environment: primary_environment,
primary_compiled_graph: primary_compiled_graph,
primary_result: primary_result,
candidate_environment: candidate_environment,
candidate_compiled_graph: candidate_compiled_graph,
candidate_result: candidate_result,
tolerance: tolerance,
primary_name: primary_name,
candidate_name: candidate_name
)
end
|
.content_addressed(callable: nil, fingerprint: nil, capabilities: [:pure], cache: ContentAddressingPack.cache, &block) ⇒ Object
231
232
233
234
235
236
237
238
239
240
|
# File 'lib/igniter/extensions/contracts.rb', line 231
def content_addressed(callable: nil, fingerprint: nil, capabilities: [:pure],
cache: ContentAddressingPack.cache, &block)
ContentAddressingPack.content_addressed(
callable: callable,
fingerprint: fingerprint,
capabilities: capabilities,
cache: cache,
&block
)
end
|
.content_key(inputs:, fingerprint: nil, callable: nil) ⇒ Object
246
247
248
|
# File 'lib/igniter/extensions/contracts.rb', line 246
def content_key(inputs:, fingerprint: nil, callable: nil)
ContentAddressingPack.content_key(fingerprint: fingerprint, callable: callable, inputs: inputs)
end
|
.creator_profiles ⇒ Object
.creator_report(name:, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil, scope: :monorepo_package, pack: nil, target: nil) ⇒ Object
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
|
# File 'lib/igniter/extensions/contracts.rb', line 300
def creator_report(name:, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil,
scope: :monorepo_package, pack: nil, target: nil)
runtime_profile =
case target
when nil
nil
else
target.respond_to?(:profile) ? target.profile : target
end
CreatorPack.report(
name: name,
kind: kind,
namespace: namespace,
profile: profile,
capabilities: capabilities,
scope: scope,
pack: pack,
target_profile: runtime_profile
)
end
|
.creator_wizard(name: nil, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil, scope: nil, root: nil, mode: :skip_existing, pack: nil, target: nil) ⇒ Object
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
|
# File 'lib/igniter/extensions/contracts.rb', line 344
def creator_wizard(name: nil, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil,
scope: nil, root: nil, mode: :skip_existing, pack: nil, target: nil)
runtime_profile =
case target
when nil
nil
else
target.respond_to?(:profile) ? target.profile : target
end
CreatorPack.wizard(
name: name,
kind: kind,
namespace: namespace,
profile: profile,
capabilities: capabilities,
scope: scope,
root: root,
mode: mode,
pack: pack,
target_profile: runtime_profile
)
end
|
.creator_workflow(name:, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil, scope: :monorepo_package, pack: nil, target: nil) ⇒ Object
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
|
# File 'lib/igniter/extensions/contracts.rb', line 322
def creator_workflow(name:, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil,
scope: :monorepo_package, pack: nil, target: nil)
runtime_profile =
case target
when nil
nil
else
target.respond_to?(:profile) ? target.profile : target
end
CreatorPack.workflow(
name: name,
kind: kind,
namespace: namespace,
profile: profile,
capabilities: capabilities,
scope: scope,
pack: pack,
target_profile: runtime_profile
)
end
|
.creator_writer(name:, root:, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil, scope: :monorepo_package, pack: nil, target: nil, mode: :skip_existing) ⇒ Object
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
|
# File 'lib/igniter/extensions/contracts.rb', line 368
def creator_writer(name:, root:, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil,
scope: :monorepo_package, pack: nil, target: nil, mode: :skip_existing)
runtime_profile =
case target
when nil
nil
else
target.respond_to?(:profile) ? target.profile : target
end
CreatorPack.writer(
name: name,
kind: kind,
namespace: namespace,
profile: profile,
capabilities: capabilities,
scope: scope,
pack: pack,
target_profile: runtime_profile,
root: root,
mode: mode
)
end
|
.debug_pack(pack_or_name, target) ⇒ Object
263
264
265
266
|
# File 'lib/igniter/extensions/contracts.rb', line 263
def debug_pack(pack_or_name, target)
profile = target.respond_to?(:profile) ? target.profile : target
DebugPack.pack_snapshot(pack_or_name, profile: profile)
end
|
.debug_profile(target) ⇒ Object
258
259
260
261
|
# File 'lib/igniter/extensions/contracts.rb', line 258
def debug_profile(target)
profile = target.respond_to?(:profile) ? target.profile : target
DebugPack.profile_snapshot(profile)
end
|
.debug_report(environment, inputs: nil, compiled_graph: nil, &block) ⇒ Object
432
433
434
|
# File 'lib/igniter/extensions/contracts.rb', line 432
def debug_report(environment, inputs: nil, compiled_graph: nil, &block)
DebugPack.report(environment, inputs: inputs, compiled_graph: compiled_graph, &block)
end
|
.debug_snapshot(result, profile:) ⇒ Object
428
429
430
|
# File 'lib/igniter/extensions/contracts.rb', line 428
def debug_snapshot(result, profile:)
DebugPack.snapshot(result, profile: profile)
end
|
.declare_capabilities(*capabilities, callable: nil, &block) ⇒ Object
198
199
200
|
# File 'lib/igniter/extensions/contracts.rb', line 198
def declare_capabilities(*capabilities, callable: nil, &block)
CapabilitiesPack.declare(*capabilities, callable: callable, &block)
end
|
.default_packs ⇒ Object
51
52
53
|
# File 'lib/igniter/extensions/contracts.rb', line 51
def default_packs
DEFAULT_PACKS
end
|
.dispatch_reactive(target, reactions:) ⇒ Object
164
165
166
|
# File 'lib/igniter/extensions/contracts.rb', line 164
def dispatch_reactive(target, reactions:)
ReactivePack.dispatch(target, reactions: reactions)
end
|
.explain(result, output_name) ⇒ Object
89
90
91
|
# File 'lib/igniter/extensions/contracts.rb', line 89
def explain(result, output_name)
ProvenancePack.explain(result, output_name)
end
|
.lineage(result, output_name) ⇒ Object
85
86
87
|
# File 'lib/igniter/extensions/contracts.rb', line 85
def lineage(result, output_name)
ProvenancePack.lineage(result, output_name)
end
|
.mcp_call(tool_name, target: nil, **arguments, &block) ⇒ Object
420
421
422
|
# File 'lib/igniter/extensions/contracts.rb', line 420
def mcp_call(tool_name, target: nil, **arguments, &block)
McpPack.call(tool_name, target: target, **arguments, &block)
end
|
.mcp_creator_session(target: nil, **arguments) ⇒ Object
424
425
426
|
# File 'lib/igniter/extensions/contracts.rb', line 424
def mcp_creator_session(target: nil, **arguments)
mcp_call(:creator_session_start, target: target, **arguments)
end
|
416
417
418
|
# File 'lib/igniter/extensions/contracts.rb', line 416
def mcp_tools
McpPack.tool_catalog
end
|
.packs_for(name) ⇒ Object
63
64
65
66
67
|
# File 'lib/igniter/extensions/contracts.rb', line 63
def packs_for(name)
presets.fetch(name.to_sym)
rescue KeyError
raise ArgumentError, "unknown contracts preset #{name}"
end
|
.presets ⇒ Object
59
60
61
|
# File 'lib/igniter/extensions/contracts.rb', line 59
def presets
PRESETS
end
|
.profile_capabilities(profile_or_environment) ⇒ Object
218
219
220
221
|
# File 'lib/igniter/extensions/contracts.rb', line 218
def profile_capabilities(profile_or_environment)
profile = profile_or_environment.respond_to?(:profile) ? profile_or_environment.profile : profile_or_environment
CapabilitiesPack.profile_capabilities(profile)
end
|
.pure_callable(callable: nil, &block) ⇒ Object
202
203
204
|
# File 'lib/igniter/extensions/contracts.rb', line 202
def pure_callable(callable: nil, &block)
CapabilitiesPack.pure(callable: callable, &block)
end
|
.pure_content_callable(callable: nil, fingerprint: nil, cache: ContentAddressingPack.cache, &block) ⇒ Object
242
243
244
|
# File 'lib/igniter/extensions/contracts.rb', line 242
def pure_content_callable(callable: nil, fingerprint: nil, cache: ContentAddressingPack.cache, &block)
ContentAddressingPack.pure(callable: callable, fingerprint: fingerprint, cache: cache, &block)
end
|
.required_capabilities(compiled_graph) ⇒ Object
.reset_content_cache! ⇒ Object
.run_incremental_reactive(session, inputs:, reactions:) ⇒ Object
172
173
174
|
# File 'lib/igniter/extensions/contracts.rb', line 172
def run_incremental_reactive(session, inputs:, reactions:)
ReactivePack.run_incremental(session, inputs: inputs, reactions: reactions)
end
|
.run_invariants(environment, inputs:, invariants:, compiled_graph: nil, &block) ⇒ Object
188
189
190
191
|
# File 'lib/igniter/extensions/contracts.rb', line 188
def run_invariants(environment, inputs:, invariants:, compiled_graph: nil, &block)
InvariantsPack.run(environment, inputs: inputs, invariants: invariants, compiled_graph: compiled_graph,
&block)
end
|
.run_reactive(environment, inputs:, reactions:, compiled_graph: nil, &block) ⇒ Object
168
169
170
|
# File 'lib/igniter/extensions/contracts.rb', line 168
def run_reactive(environment, inputs:, reactions:, compiled_graph: nil, &block)
ReactivePack.run(environment, inputs: inputs, reactions: reactions, compiled_graph: compiled_graph, &block)
end
|
.run_saga(environment, inputs:, compensations:, compiled_graph: nil, &block) ⇒ Object
97
98
99
100
101
102
103
104
105
|
# File 'lib/igniter/extensions/contracts.rb', line 97
def run_saga(environment, inputs:, compensations:, compiled_graph: nil, &block)
SagaPack.run(
environment,
inputs: inputs,
compensations: compensations,
compiled_graph: compiled_graph,
&block
)
end
|
.scaffold_pack(name:, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil, scope: :monorepo_package) ⇒ Object
288
289
290
291
292
293
294
295
296
297
298
|
# File 'lib/igniter/extensions/contracts.rb', line 288
def scaffold_pack(name:, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil,
scope: :monorepo_package)
CreatorPack.scaffold(
name: name,
kind: kind,
namespace: namespace,
profile: profile,
capabilities: capabilities,
scope: scope
)
end
|
.shadow_differential(**arguments) ⇒ Object
148
149
150
|
# File 'lib/igniter/extensions/contracts.rb', line 148
def shadow_differential(**arguments)
DifferentialPack.shadow(**arguments)
end
|
.validate_invariants!(target, invariants:) ⇒ Object
184
185
186
|
# File 'lib/igniter/extensions/contracts.rb', line 184
def validate_invariants!(target, invariants:)
InvariantsPack.validate!(target, invariants: invariants)
end
|
.verify_invariant_cases(environment, cases:, invariants:, compiled_graph: nil, &block) ⇒ Object
193
194
195
196
|
# File 'lib/igniter/extensions/contracts.rb', line 193
def verify_invariant_cases(environment, cases:, invariants:, compiled_graph: nil, &block)
InvariantsPack.verify_cases(environment,
cases: cases, invariants: invariants, compiled_graph: compiled_graph, &block)
end
|
.with(*packs) ⇒ Object
73
74
75
|
# File 'lib/igniter/extensions/contracts.rb', line 73
def with(*packs)
Igniter::Contracts.with(*normalize_packs(packs))
end
|
.with_preset(name) ⇒ Object
81
82
83
|
# File 'lib/igniter/extensions/contracts.rb', line 81
def with_preset(name)
with(*packs_for(name))
end
|
.write_pack_scaffold(name:, root:, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil, capabilities: nil, scope: :monorepo_package, pack: nil, target: nil, mode: :skip_existing) ⇒ Object
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
|
# File 'lib/igniter/extensions/contracts.rb', line 392
def write_pack_scaffold(name:, root:, kind: nil, namespace: "MyCompany::IgniterPacks", profile: nil,
capabilities: nil, scope: :monorepo_package, pack: nil, target: nil, mode: :skip_existing)
runtime_profile =
case target
when nil
nil
else
target.respond_to?(:profile) ? target.profile : target
end
CreatorPack.write(
name: name,
kind: kind,
namespace: namespace,
profile: profile,
capabilities: capabilities,
scope: scope,
pack: pack,
target_profile: runtime_profile,
root: root,
mode: mode
)
end
|